diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..30ced78
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,27 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
+
+version: 2
+updates:
+ - package-ecosystem: "npm" # See documentation for possible values
+ directory: "/enatega-multivendor-admin" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ - package-ecosystem: "npm" # See documentation for possible values
+ directory: "/enatega-multivendor-app" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ - package-ecosystem: "npm" # See documentation for possible values
+ directory: "/enatega-multivendor-restaurant" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ - package-ecosystem: "npm" # See documentation for possible values
+ directory: "/enatega-multivendor-rider" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ - package-ecosystem: "npm" # See documentation for possible values
+ directory: "/enatega-multivendor-web" # Location of package manifests
+ schedule:
+ interval: "weekly"
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1d30c8c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.expo
+.DS_Store
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
index a6192e0..2a183f2 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2024 Martha E. Grimaldi
+Copyright (c) 2023 Ninjas Code
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 8d66a76..ceb7660 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,236 @@
-# online-food-ordering-system-in-php-with-source-code
-An online food ordering system in PHP with source code is a fully customizable food delivery application, an all-in-one solution for managing orders and deliveries. Check out our product page for more information.
+
+
+
+
+
Enatega Multi Vendor Food Delivery System
+ The food delivery and order management system for the future.
+
+
+
+
+
+
+
+ [![Static Badge](https://img.shields.io/badge/License-MIT-red)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/blob/main/LICENSE)
+ [![Stars](https://img.shields.io/github/stars/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution.svg)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/stargazers)
+ [![Forks](https://img.shields.io/github/forks/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution.svg)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/network/members)
+ ![GitHub release (latest by date)](https://img.shields.io/github/v/release/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution)
+ [![GitHub contributors](https://img.shields.io/github/contributors/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/graphs/contributors)
+ [![Open Pull Requests](https://img.shields.io/github/issues-pr-raw/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution.svg)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/pulls)
+ [![Activity](https://img.shields.io/github/last-commit/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution.svg)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/commits/main)
+ [![YouTube Channel](https://img.shields.io/badge/Watch_us-Youtube-red)](https://www.youtube.com/@ninjascode509)
+ [![Company Website](https://img.shields.io/badge/Visit_us-Website-blue)](https://enatega.com)
+ [![Closed Issues](https://img.shields.io/github/issues-closed/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution?color=success)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/issues?q=is%3Aissue+is%3Aclosed)
+[![Closed Pull Requests](https://img.shields.io/badge/Closed%20Pull%20Requests-View%20on%20GitHub-blue.svg)](https://github.com/Ninjas-Code-official/Enatega-Multivendor-Food-Delivery-Solution/pulls?q=is%3Apr+is%3Aclosed)
+
+
+
+
+
+
+
+ [![Static Badge](https://img.shields.io/badge/facebook-blue?logo=facebook&logoColor=Blue&color=%23fbfbfb)](https://www.facebook.com/enatega)
+ [![Static Badge](https://img.shields.io/badge/Instagram-blue?logo=instagram&logoColor=D815BE&color=%23fcfcfc)](https://www.instagram.com/enatega.nb/)
+ [![Static Badge](https://img.shields.io/badge/Twitter-blue?logo=Twitter&logoColor=blue&color=%23fcfcfc)](https://twitter.com/EnategaA)
+ [![Static Badge](https://img.shields.io/badge/LinkedIn-blue?logo=LinkedIn&logoColor=darkblue&color=%23fcfcfc)](https://www.linkedin.com/company/14583783/)
+
+
+
+
+
+
+
+The Enatega Multi vendor food delivery system is perfect for customers looking to deploy a readymade and easy to use food ordering platform for their own food delivery and logistics business. Just like foodpanda and ubereats, our food delivery system can incorporate multiple restaurants as well as restaurants that operate in multiple locations. With access to the admin panel and separate applications for customers and riders, you can use this solution to create your own online food ordering and order/delivery management system instantaneously.
+
+Our solution is open source but the backend and API are proprietary, and can be obtained via paid license.
+
+
+
+
+## :fast_forward: Quick Links
+
+- [:book: What is included](#heading-1)
+- [:rocket: Features](#heading-2)
+- [:wrench: Setup](#heading-3)
+- [:gear: Prerequisites](#heading-4)
+- [:computer: Technologies](#heading-5)
+- [:camera: Screenshots](#heading-6)
+- [:triangular_ruler: High Level Architecture](#heading-7)
+- [:page_with_curl: Documentation](#heading-8)
+- [:movie_camera: Demo Videos](#heading-14)
+- [:video_game: Demos](#heading-9)
+- [:busts_in_silhouette: Contributors](#heading-10)
+- [:warning: Disclaimer](#heading-12)
+- [:email: Contact Us](#heading-13)
+
+
+
+
+## :question: What is included:
+
+Our food delivery system also comes with the following:
+
+- Enatega Multi vendor Customer App
+- Enatega Multi vendor Rider App
+- Enatega Multi vendor Restaurant App
+- Customer Food Ordering Website
+- Admin Web Dashboard
+- Application ProgramInterface Server
+- Analytics Dashboard with Expo Amplitude
+- Error crash reporting with Sentry
+
+## :fire: Features:
+
+- Authentication using Google, Apple, and Facebook
+- Different sections feature for promoting restaurants
+- Push notifications and Emails to Users for account creation and order status changes
+- Real-time tracking of Rider and chat with Rider option
+- Email and Phone number verification
+- Location-based restaurants shown on Map and Home Screen
+- Multi-Language and different themes support
+- Rating and Review features for order
+- Details of restaurants include ratings and reviews, opening and closing timings, delivery timings, restaurant menu and items, restaurant location, minimum order
+- Payment Integration for both PayPal and Stripe
+- Previous order history and adding favorite restaurants
+- Adding address with Google Places suggestions and Maps integration
+- Analytics and Error reporting with Amplitude and Sentry
+- Options to add different variations of food items and adding notes to restaurant
+ Pick up and delivery option with different timings
+
+## :repeat_one: Setup:
+
+As we’ve mentioned above, the solution includes five separate modules. To setup these modules, follow the steps below:
+
+To run the module, you need to have nodejs installed on your machine. Once nodejs is installed, go to the directory and enter the following commands
+
+The required credentials and keys have been set already. You can setup your own keys and credentials
+
+The version of nodejs should be between 14.0 to 16.0
+
+
+[![Guide Badge](https://img.shields.io/badge/Do_with_guided_tutorial-blue?style=for-the-badge&logo=book-reader)](https://enatega.com/multi-vendor-doc/)
+
+
+## :information_source: Prerequisites:
+
+App Ids for Mobile App in app.json
+
+- Facebook Scheme
+- Facebook App Id
+- Facebook Display Name
+- iOS Client Id Google
+- Android Id Google
+- Amplitude Api Key
+- server url
+
+Set credentials in API in file helpers/config.js and helpers/credentials.js
+
+- Email User Name
+- Password For Email
+- Mongo User
+- Mongo Password
+- Mongo DB Name
+- Reset Password Link
+- Admin User name
+- Admin Password
+- User Id
+- Name
+
+Set credentials in Admin Dashboard in file src/index.js
+
+- Firebase Api Key
+- Auth Domain
+- Database Url
+- Project Id
+- Storage Buck
+- Messaging Sender Id
+- App Id
+
+NOTE: Email provider has been only been tested for gmail accounts
+
+## :hammer_and_wrench: Technologies:
+| Expo | React-Navigation | Apollo GraphQL | ReactJS | NodeJS | MongoDB | Firebase |
+|:-------:|:------------:|:--------------:|:-------:|:------:|:-------:|:--------:|
+| | | | | | | |
+
+|React Native | React Router | GraphQL | ExpressJS | React Strap | Amplitude |
+|:------------:|:------------:|:-------:|:---------:|:-----------:|:---------:|
+| | | | | | |
+
+## :framed_picture: Screenshots:
+
+| Rider App |
+| :----------------------: |
+| ![](./assets/rider-app.png) |
+
+| Restaurant APP |
+| :----------------------------: |
+| ![](./assets/restuarant-app-1-scaled.webp) |
+
+| Customer App |
+| :-----------------------: |
+| ![](./assets/Customer-app.png) |
+
+| Customer Web |
+| :-----------------------: |
+| ![](./assets/Web-app-scaled.webp) |
+
+| Dashboard |
+| :-----------------------: |
+| ![](./assets/dasboard-scaled.webp) |
+
+## :wrench: High Level Architecture:
+
+![](./assets/high-level.png)
+
+
+
+## :book: Documentation
+
+Find the link for the complete documentation of the Enatega Multi Vendor Solution [here](https://enatega.com/multivendor-documentation/).
+
+## :tv: Demo Videos:
+| Admin Dashboard Demo | Mobile App Demo |
+| :---------------------------: | :----------------------------: |
+| |
+
+## :iphone: Demos:
+
+| Customer App | Rider App | Restaurant App | Customer Web | Admin Dashboard |
+| :---------------------------: | :----------------------------: | :----------------------------:|:----------------------------:|:----------------------------:|
+| | | | | |
+| | | |
+
+## :people_holding_hands: Contributors:
+
+
+## :warning: Disclaimer:
+
+The frontend source code for our solution is completely open source. However, the API and backend is proprietary and can be accessed via a paid license. For further information, contact us on the channels provided below.
+
+## :mailbox_with_mail: Contact Us:
+
+[Check out the Product Page and Pricing and more for Enatega Multivendor Food Delivery Solution](https://enatega.com/?utm_source=github&utm_medium=referral&utm_campaign=github_guide&utm_id=12345678)
diff --git a/assets/Customer-app.png b/assets/Customer-app.png
new file mode 100644
index 0000000..db61879
Binary files /dev/null and b/assets/Customer-app.png differ
diff --git a/assets/LOGOS-FOR-ENATGEA-res.png b/assets/LOGOS-FOR-ENATGEA-res.png
new file mode 100644
index 0000000..76628cb
Binary files /dev/null and b/assets/LOGOS-FOR-ENATGEA-res.png differ
diff --git a/assets/React-strap.png b/assets/React-strap.png
new file mode 100644
index 0000000..4a66883
Binary files /dev/null and b/assets/React-strap.png differ
diff --git a/assets/Untitled-1-1.png b/assets/Untitled-1-1.png
new file mode 100644
index 0000000..2f6fb2f
Binary files /dev/null and b/assets/Untitled-1-1.png differ
diff --git a/assets/Web-app-scaled.webp b/assets/Web-app-scaled.webp
new file mode 100644
index 0000000..f4081da
Binary files /dev/null and b/assets/Web-app-scaled.webp differ
diff --git a/assets/admin1.png b/assets/admin1.png
new file mode 100644
index 0000000..6417630
Binary files /dev/null and b/assets/admin1.png differ
diff --git a/assets/admin2.png b/assets/admin2.png
new file mode 100644
index 0000000..601d696
Binary files /dev/null and b/assets/admin2.png differ
diff --git a/assets/admin3.png b/assets/admin3.png
new file mode 100644
index 0000000..bb87659
Binary files /dev/null and b/assets/admin3.png differ
diff --git a/assets/amplitude.png b/assets/amplitude.png
new file mode 100644
index 0000000..0e53285
Binary files /dev/null and b/assets/amplitude.png differ
diff --git a/assets/android_518705.png b/assets/android_518705.png
new file mode 100644
index 0000000..ed16bcd
Binary files /dev/null and b/assets/android_518705.png differ
diff --git a/assets/apollo.png b/assets/apollo.png
new file mode 100644
index 0000000..c36eac5
Binary files /dev/null and b/assets/apollo.png differ
diff --git a/assets/architecture.png b/assets/architecture.png
new file mode 100644
index 0000000..49af186
Binary files /dev/null and b/assets/architecture.png differ
diff --git a/assets/customer1.jpeg b/assets/customer1.jpeg
new file mode 100644
index 0000000..3438f81
Binary files /dev/null and b/assets/customer1.jpeg differ
diff --git a/assets/customer2.jpeg b/assets/customer2.jpeg
new file mode 100644
index 0000000..5799f00
Binary files /dev/null and b/assets/customer2.jpeg differ
diff --git a/assets/customer3.jpeg b/assets/customer3.jpeg
new file mode 100644
index 0000000..e8d6c16
Binary files /dev/null and b/assets/customer3.jpeg differ
diff --git a/assets/customerWeb1.png b/assets/customerWeb1.png
new file mode 100644
index 0000000..9184045
Binary files /dev/null and b/assets/customerWeb1.png differ
diff --git a/assets/customerWeb2.png b/assets/customerWeb2.png
new file mode 100644
index 0000000..f68ff94
Binary files /dev/null and b/assets/customerWeb2.png differ
diff --git a/assets/customerWeb3.png b/assets/customerWeb3.png
new file mode 100644
index 0000000..bc6aba8
Binary files /dev/null and b/assets/customerWeb3.png differ
diff --git a/assets/dasboard-scaled.webp b/assets/dasboard-scaled.webp
new file mode 100644
index 0000000..e51d143
Binary files /dev/null and b/assets/dasboard-scaled.webp differ
diff --git a/assets/expoicon.png b/assets/expoicon.png
new file mode 100644
index 0000000..dcb25cc
Binary files /dev/null and b/assets/expoicon.png differ
diff --git a/assets/express-js.png b/assets/express-js.png
new file mode 100644
index 0000000..a172b0a
Binary files /dev/null and b/assets/express-js.png differ
diff --git a/assets/final.green.final.1.jpg b/assets/final.green.final.1.jpg
new file mode 100644
index 0000000..57b57d4
Binary files /dev/null and b/assets/final.green.final.1.jpg differ
diff --git a/assets/firebase.png b/assets/firebase.png
new file mode 100644
index 0000000..16ac9a9
Binary files /dev/null and b/assets/firebase.png differ
diff --git a/assets/graphQl-1.png b/assets/graphQl-1.png
new file mode 100644
index 0000000..0eae042
Binary files /dev/null and b/assets/graphQl-1.png differ
diff --git a/assets/high-level.png b/assets/high-level.png
new file mode 100644
index 0000000..e5233c6
Binary files /dev/null and b/assets/high-level.png differ
diff --git a/assets/logooo.png b/assets/logooo.png
new file mode 100644
index 0000000..be13166
Binary files /dev/null and b/assets/logooo.png differ
diff --git a/assets/mongoDB.png b/assets/mongoDB.png
new file mode 100644
index 0000000..55a350b
Binary files /dev/null and b/assets/mongoDB.png differ
diff --git a/assets/node-js.png b/assets/node-js.png
new file mode 100644
index 0000000..6e8209d
Binary files /dev/null and b/assets/node-js.png differ
diff --git a/assets/react-js.png b/assets/react-js.png
new file mode 100644
index 0000000..e5254cd
Binary files /dev/null and b/assets/react-js.png differ
diff --git a/assets/react-native.png b/assets/react-native.png
new file mode 100644
index 0000000..0b2eb03
Binary files /dev/null and b/assets/react-native.png differ
diff --git a/assets/react-navigation.png b/assets/react-navigation.png
new file mode 100644
index 0000000..8170cf2
Binary files /dev/null and b/assets/react-navigation.png differ
diff --git a/assets/react-router-svgrepo-com.png b/assets/react-router-svgrepo-com.png
new file mode 100644
index 0000000..6e9b448
Binary files /dev/null and b/assets/react-router-svgrepo-com.png differ
diff --git a/assets/restaurant1.png b/assets/restaurant1.png
new file mode 100644
index 0000000..ef17fd1
Binary files /dev/null and b/assets/restaurant1.png differ
diff --git a/assets/restaurant2.jpeg b/assets/restaurant2.jpeg
new file mode 100644
index 0000000..8787f1c
Binary files /dev/null and b/assets/restaurant2.jpeg differ
diff --git a/assets/restaurant3.jpeg b/assets/restaurant3.jpeg
new file mode 100644
index 0000000..7e69a6c
Binary files /dev/null and b/assets/restaurant3.jpeg differ
diff --git a/assets/restuarant-app-1-scaled.webp b/assets/restuarant-app-1-scaled.webp
new file mode 100644
index 0000000..7d9de32
Binary files /dev/null and b/assets/restuarant-app-1-scaled.webp differ
diff --git a/assets/rider-app.png b/assets/rider-app.png
new file mode 100644
index 0000000..abb15c3
Binary files /dev/null and b/assets/rider-app.png differ
diff --git a/assets/rider1.jpeg b/assets/rider1.jpeg
new file mode 100644
index 0000000..78a1990
Binary files /dev/null and b/assets/rider1.jpeg differ
diff --git a/assets/rider2.jpeg b/assets/rider2.jpeg
new file mode 100644
index 0000000..212d0a9
Binary files /dev/null and b/assets/rider2.jpeg differ
diff --git a/assets/rider3.jpeg b/assets/rider3.jpeg
new file mode 100644
index 0000000..e9b55f1
Binary files /dev/null and b/assets/rider3.jpeg differ
diff --git a/assets/social_10096939.png b/assets/social_10096939.png
new file mode 100644
index 0000000..668b620
Binary files /dev/null and b/assets/social_10096939.png differ
diff --git a/assets/thumbnail.png b/assets/thumbnail.png
new file mode 100644
index 0000000..35cbbde
Binary files /dev/null and b/assets/thumbnail.png differ
diff --git a/assets/worldwide.png b/assets/worldwide.png
new file mode 100644
index 0000000..92bd431
Binary files /dev/null and b/assets/worldwide.png differ
diff --git a/contributing/contributing.md b/contributing/contributing.md
new file mode 100644
index 0000000..2cff018
--- /dev/null
+++ b/contributing/contributing.md
@@ -0,0 +1,17 @@
+### Contributing to Enatega Multi-Vendor Solution
+
+Welcome to Enatega Multi-Vendor Solution! We're excited you're here and want to contribute.
+
+### Getting Started
+
+If you would like to become an active contributor please read this document in its entireity. This will help you get started and answer any questions you may have.
+
+### How can I help?
+
+There are many ways you can help contribute to Enatega Restaurant Solution. Here are a few ideas:
+
+- Developers can make contribution to the code
+- Designers can make contribution to the design
+- Writers can make contribution to the documentation
+- Testers can make contribution to the testing
+- Translators can make contribution to the translation
diff --git a/enatega-multivendor-admin/.eslintignore b/enatega-multivendor-admin/.eslintignore
new file mode 100644
index 0000000..56630b3
--- /dev/null
+++ b/enatega-multivendor-admin/.eslintignore
@@ -0,0 +1,4 @@
+src/assets/*
+public/*
+build/*
+server/*
\ No newline at end of file
diff --git a/enatega-multivendor-admin/.eslintrc.json b/enatega-multivendor-admin/.eslintrc.json
new file mode 100644
index 0000000..2b9748d
--- /dev/null
+++ b/enatega-multivendor-admin/.eslintrc.json
@@ -0,0 +1,27 @@
+{
+ "env": {
+ "browser": true,
+ "es6": true
+ },
+ "extends": [
+ "plugin:react/recommended"
+ ],
+ "globals": {
+ "Atomics": "readonly",
+ "SharedArrayBuffer": "readonly"
+ },
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 10,
+ "sourceType": "module"
+ },
+ "plugins": [
+ "react"
+ ],
+ "rules": {
+ "space-before-function-paren": ["error", "never"],
+ "react/prop-types": 0
+ }
+}
diff --git a/enatega-multivendor-admin/.gitignore b/enatega-multivendor-admin/.gitignore
new file mode 100644
index 0000000..99ec874
--- /dev/null
+++ b/enatega-multivendor-admin/.gitignore
@@ -0,0 +1,3 @@
+node_modules
+/build
+.env
\ No newline at end of file
diff --git a/enatega-multivendor-admin/.prettierignore b/enatega-multivendor-admin/.prettierignore
new file mode 100644
index 0000000..b3eb4bd
--- /dev/null
+++ b/enatega-multivendor-admin/.prettierignore
@@ -0,0 +1,3 @@
+src/assets/*
+public/*
+build/*
\ No newline at end of file
diff --git a/enatega-multivendor-admin/.prettierrc.js b/enatega-multivendor-admin/.prettierrc.js
new file mode 100644
index 0000000..2fc75e2
--- /dev/null
+++ b/enatega-multivendor-admin/.prettierrc.js
@@ -0,0 +1 @@
+module.exports = 'prettier-config-standard'
diff --git a/enatega-multivendor-admin/LICENSE b/enatega-multivendor-admin/LICENSE
new file mode 100644
index 0000000..038a2d4
--- /dev/null
+++ b/enatega-multivendor-admin/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Creative Tim
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/enatega-multivendor-admin/package-lock.json b/enatega-multivendor-admin/package-lock.json
new file mode 100644
index 0000000..7e1fed4
--- /dev/null
+++ b/enatega-multivendor-admin/package-lock.json
@@ -0,0 +1,26812 @@
+{
+ "name": "enatega-multivendor",
+ "version": "2.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "enatega-multivendor",
+ "version": "2.0.0",
+ "dependencies": {
+ "@apollo/client": "^3.5.8",
+ "@emotion/react": "^11.9.0",
+ "@emotion/styled": "^11.8.1",
+ "@material-ui/core": "^4.12.4",
+ "@material-ui/lab": "^4.0.0-alpha.61",
+ "@mui/icons-material": "^5.8.3",
+ "@mui/material": "^5.8.3",
+ "@mui/styles": "^5.8.3",
+ "@react-google-maps/api": "^2.0.0",
+ "@sentry/react": "^6.16.1",
+ "@sentry/tracing": "^6.16.1",
+ "@tawk.to/tawk-messenger-react": "^1.0.0",
+ "@wojtekmaj/react-timerange-picker": "^3.0.0",
+ "apollo-boost": "^0.4.9",
+ "chart.js": "^3.6.0",
+ "env-cmd": "^10.1.0",
+ "firebase": "^9.4.0",
+ "graphql": "^15.0.0",
+ "husky": "^8.0.3",
+ "i18next": "^17.0.0",
+ "moment": "2.24.0",
+ "node-sass": "^8.0.0",
+ "nouislider": "13.1.1",
+ "react": "^17.0.0",
+ "react-chartjs-2": "^4.0.0",
+ "react-data-table-component": "^6.9.3",
+ "react-datetime": "2.16.3",
+ "react-dom": "^17.0.0",
+ "react-i18next": "^10.10.0",
+ "react-loader-spinner": "^4.0.0",
+ "react-notifications": "^1.7.4",
+ "react-router-dom": "5.1.2",
+ "react-scripts": "^4.0.0",
+ "source-map-explorer": "^2.5.2",
+ "styled-components": "^5.1.1",
+ "subscriptions-transport-ws": "^0.11.0",
+ "validate.js": "^0.12.0"
+ },
+ "devDependencies": {
+ "@types/googlemaps": "3.30.18",
+ "@types/markerclustererplus": "2.1.33",
+ "@types/react": "^17.0.0",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.7",
+ "prettier": "2.0.5",
+ "prettier-config-standard": "^1.0.1",
+ "typescript": "3.3.3333"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@apollo/client": {
+ "version": "3.9.5",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.5.tgz",
+ "integrity": "sha512-7y+c8MTPU+hhTwvcGVtMMGIgWduzrvG1mz5yJMRyqYbheBkkky3Lki6ADWVSBXG1lZoOtPYvB2zDgVfKb2HSsw==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@wry/caches": "^1.0.0",
+ "@wry/equality": "^0.5.6",
+ "@wry/trie": "^0.5.0",
+ "graphql-tag": "^2.12.6",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.18.0",
+ "prop-types": "^15.7.2",
+ "rehackt": "0.0.5",
+ "response-iterator": "^0.2.6",
+ "symbol-observable": "^4.0.0",
+ "ts-invariant": "^0.10.3",
+ "tslib": "^2.3.0",
+ "zen-observable-ts": "^1.2.5"
+ },
+ "peerDependencies": {
+ "graphql": "^15.0.0 || ^16.0.0",
+ "graphql-ws": "^5.5.5",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "subscriptions-transport-ws": "^0.9.0 || ^0.11.0"
+ },
+ "peerDependenciesMeta": {
+ "graphql-ws": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "subscriptions-transport-ws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/code-frame/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/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/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dependencies": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.23.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
+ "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dependencies": {
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "dependencies": {
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/highlight/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "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.23.3",
+ "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.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
+ "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz",
+ "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.23.9",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-decorators": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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-optional-chaining": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz",
+ "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
+ "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
+ "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-flow-strip-types": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-flow": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
+ "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
+ "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-numeric-separator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
+ "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.3",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-optional-chaining": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz",
+ "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz",
+ "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz",
+ "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/types": "^7.23.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
+ "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz",
+ "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz",
+ "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz",
+ "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@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-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.9",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.4",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.4",
+ "@babel/plugin-transform-classes": "^7.23.8",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.4",
+ "@babel/plugin-transform-for-of": "^7.23.6",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.4",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.9",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
+ "@babel/plugin-transform-numeric-separator": "^7.23.4",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@babel/plugin-transform-optional-chaining": "^7.23.4",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz",
+ "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-react-display-name": "^7.23.3",
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
+ "@babel/plugin-transform-react-jsx-development": "^7.22.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
+ "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "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/@cnakazawa/watch": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
+ "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
+ "dependencies": {
+ "exec-sh": "^0.3.2",
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "watch": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.1.95"
+ }
+ },
+ "node_modules/@csstools/convert-colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
+ "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/@csstools/normalize.css": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz",
+ "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg=="
+ },
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz",
+ "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.1",
+ "@emotion/memoize": "^0.8.1",
+ "@emotion/serialize": "^1.1.2",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz",
+ "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.1",
+ "@emotion/sheet": "^1.2.2",
+ "@emotion/utils": "^1.2.1",
+ "@emotion/weak-memoize": "^0.3.1",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz",
+ "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ=="
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz",
+ "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.1"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz",
+ "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.11.3",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.3.tgz",
+ "integrity": "sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.11.0",
+ "@emotion/cache": "^11.11.0",
+ "@emotion/serialize": "^1.1.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
+ "@emotion/utils": "^1.2.1",
+ "@emotion/weak-memoize": "^0.3.1",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz",
+ "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==",
+ "dependencies": {
+ "@emotion/hash": "^0.9.1",
+ "@emotion/memoize": "^0.8.1",
+ "@emotion/unitless": "^0.8.1",
+ "@emotion/utils": "^1.2.1",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz",
+ "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA=="
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz",
+ "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.11.0",
+ "@emotion/is-prop-valid": "^1.2.1",
+ "@emotion/serialize": "^1.1.2",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
+ "@emotion/utils": "^1.2.1"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "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.8.1",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
+ "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz",
+ "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz",
+ "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg=="
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz",
+ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww=="
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@firebase/analytics": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.0.tgz",
+ "integrity": "sha512-Locv8gAqx0e+GX/0SI3dzmBY5e9kjVDtD+3zCFLJ0tH2hJwuCAiL+5WkHuxKj92rqQj/rvkBUCfA1ewlX2hehg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/analytics-compat": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.6.tgz",
+ "integrity": "sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==",
+ "dependencies": {
+ "@firebase/analytics": "0.10.0",
+ "@firebase/analytics-types": "0.8.0",
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/analytics-types": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz",
+ "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw=="
+ },
+ "node_modules/@firebase/app": {
+ "version": "0.9.13",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.13.tgz",
+ "integrity": "sha512-GfiI1JxJ7ecluEmDjPzseRXk/PX31hS7+tjgBopL7XjB2hLUdR+0FTMXy2Q3/hXezypDvU6or7gVFizDESrkXw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "idb": "7.1.1",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/app-check": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.0.tgz",
+ "integrity": "sha512-dRDnhkcaC2FspMiRK/Vbp+PfsOAEP6ZElGm9iGFJ9fDqHoPs0HOPn7dwpJ51lCFi1+2/7n5pRPGhqF/F03I97g==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/app-check-compat": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.7.tgz",
+ "integrity": "sha512-cW682AxsyP1G+Z0/P7pO/WT2CzYlNxoNe5QejVarW2o5ZxeWSSPAiVEwpEpQR/bUlUmdeWThYTMvBWaopdBsqw==",
+ "dependencies": {
+ "@firebase/app-check": "0.8.0",
+ "@firebase/app-check-types": "0.5.0",
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/app-check-interop-types": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.0.tgz",
+ "integrity": "sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg=="
+ },
+ "node_modules/@firebase/app-check-types": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz",
+ "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ=="
+ },
+ "node_modules/@firebase/app-compat": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.13.tgz",
+ "integrity": "sha512-j6ANZaWjeVy5zg6X7uiqh6lM6o3n3LD1+/SJFNs9V781xyryyZWXe+tmnWNWPkP086QfJoNkWN9pMQRqSG4vMg==",
+ "dependencies": {
+ "@firebase/app": "0.9.13",
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/app-types": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz",
+ "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q=="
+ },
+ "node_modules/@firebase/auth": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.23.2.tgz",
+ "integrity": "sha512-dM9iJ0R6tI1JczuGSxXmQbXAgtYie0K4WvKcuyuSTCu9V8eEDiz4tfa1sO3txsfvwg7nOY3AjoCyMYEdqZ8hdg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/auth-compat": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.4.2.tgz",
+ "integrity": "sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==",
+ "dependencies": {
+ "@firebase/auth": "0.23.2",
+ "@firebase/auth-types": "0.12.0",
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/auth-interop-types": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz",
+ "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg=="
+ },
+ "node_modules/@firebase/auth-types": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz",
+ "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x",
+ "@firebase/util": "1.x"
+ }
+ },
+ "node_modules/@firebase/component": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.4.tgz",
+ "integrity": "sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==",
+ "dependencies": {
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/database": {
+ "version": "0.14.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.4.tgz",
+ "integrity": "sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==",
+ "dependencies": {
+ "@firebase/auth-interop-types": "0.2.1",
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "faye-websocket": "0.11.4",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/database-compat": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.4.tgz",
+ "integrity": "sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/database": "0.14.4",
+ "@firebase/database-types": "0.10.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/database-types": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.4.tgz",
+ "integrity": "sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==",
+ "dependencies": {
+ "@firebase/app-types": "0.9.0",
+ "@firebase/util": "1.9.3"
+ }
+ },
+ "node_modules/@firebase/firestore": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.13.0.tgz",
+ "integrity": "sha512-NwcnU+madJXQ4fbLkGx1bWvL612IJN/qO6bZ6dlPmyf7QRyu5azUosijdAN675r+bOOJxMtP1Bv981bHBXAbUg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "@firebase/webchannel-wrapper": "0.10.1",
+ "@grpc/grpc-js": "~1.7.0",
+ "@grpc/proto-loader": "^0.6.13",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/firestore-compat": {
+ "version": "0.3.12",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.12.tgz",
+ "integrity": "sha512-mazuNGAx5Kt9Nph0pm6ULJFp/+j7GSsx+Ncw1GrnKl+ft1CQ4q2LcUssXnjqkX2Ry0fNGqUzC1mfIUrk9bYtjQ==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/firestore": "3.13.0",
+ "@firebase/firestore-types": "2.5.1",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/firestore-types": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz",
+ "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x",
+ "@firebase/util": "1.x"
+ }
+ },
+ "node_modules/@firebase/functions": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.10.0.tgz",
+ "integrity": "sha512-2U+fMNxTYhtwSpkkR6WbBcuNMOVaI7MaH3cZ6UAeNfj7AgEwHwMIFLPpC13YNZhno219F0lfxzTAA0N62ndWzA==",
+ "dependencies": {
+ "@firebase/app-check-interop-types": "0.3.0",
+ "@firebase/auth-interop-types": "0.2.1",
+ "@firebase/component": "0.6.4",
+ "@firebase/messaging-interop-types": "0.2.0",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/functions-compat": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.5.tgz",
+ "integrity": "sha512-uD4jwgwVqdWf6uc3NRKF8cSZ0JwGqSlyhPgackyUPe+GAtnERpS4+Vr66g0b3Gge0ezG4iyHo/EXW/Hjx7QhHw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/functions": "0.10.0",
+ "@firebase/functions-types": "0.6.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/functions-types": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz",
+ "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw=="
+ },
+ "node_modules/@firebase/installations": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.4.tgz",
+ "integrity": "sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "idb": "7.0.1",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/installations-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.4.tgz",
+ "integrity": "sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/installations-types": "0.5.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/installations-types": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz",
+ "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x"
+ }
+ },
+ "node_modules/@firebase/installations/node_modules/idb": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz",
+ "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg=="
+ },
+ "node_modules/@firebase/logger": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz",
+ "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/messaging": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.4.tgz",
+ "integrity": "sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/messaging-interop-types": "0.2.0",
+ "@firebase/util": "1.9.3",
+ "idb": "7.0.1",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/messaging-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.4.tgz",
+ "integrity": "sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/messaging": "0.12.4",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/messaging-interop-types": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz",
+ "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ=="
+ },
+ "node_modules/@firebase/messaging/node_modules/idb": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz",
+ "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg=="
+ },
+ "node_modules/@firebase/performance": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.4.tgz",
+ "integrity": "sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/performance-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.4.tgz",
+ "integrity": "sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/performance": "0.6.4",
+ "@firebase/performance-types": "0.2.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/performance-types": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz",
+ "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA=="
+ },
+ "node_modules/@firebase/remote-config": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.4.tgz",
+ "integrity": "sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/remote-config-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.4.tgz",
+ "integrity": "sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/remote-config": "0.4.4",
+ "@firebase/remote-config-types": "0.3.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/remote-config-types": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz",
+ "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA=="
+ },
+ "node_modules/@firebase/storage": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.2.tgz",
+ "integrity": "sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/storage-compat": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.2.tgz",
+ "integrity": "sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/storage": "0.11.2",
+ "@firebase/storage-types": "0.8.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/storage-types": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz",
+ "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x",
+ "@firebase/util": "1.x"
+ }
+ },
+ "node_modules/@firebase/util": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.3.tgz",
+ "integrity": "sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/webchannel-wrapper": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.10.1.tgz",
+ "integrity": "sha512-Dq5rYfEpdeel0bLVN+nfD1VWmzCkK+pJbSjIawGE+RY4+NIJqhbUDDQjvV0NUK84fMfwxvtFoCtEe70HfZjFcw=="
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz",
+ "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.1"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz",
+ "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==",
+ "dependencies": {
+ "@floating-ui/core": "^1.0.0",
+ "@floating-ui/utils": "^0.2.0"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz",
+ "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz",
+ "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
+ },
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ },
+ "node_modules/@googlemaps/js-api-loader": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.2.tgz",
+ "integrity": "sha512-psGw5u0QM6humao48Hn4lrChOM2/rA43ZCm3tKK9qQsEj1/VzqkCqnvGfEOshDbBQflydfaRovbKwZMF4AyqbA==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "node_modules/@googlemaps/markerclusterer": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz",
+ "integrity": "sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "supercluster": "^8.0.1"
+ }
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz",
+ "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==",
+ "dependencies": {
+ "@grpc/proto-loader": "^0.7.0",
+ "@types/node": ">=12.12.47"
+ },
+ "engines": {
+ "node": "^8.13.0 || >=10.10.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
+ "version": "0.7.10",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz",
+ "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==",
+ "dependencies": {
+ "lodash.camelcase": "^4.3.0",
+ "long": "^5.0.0",
+ "protobufjs": "^7.2.4",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@grpc/grpc-js/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/@grpc/grpc-js/node_modules/protobufjs": {
+ "version": "7.2.6",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
+ "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
+ "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/@grpc/grpc-js/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@grpc/proto-loader": {
+ "version": "0.6.13",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz",
+ "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==",
+ "dependencies": {
+ "@types/long": "^4.0.1",
+ "lodash.camelcase": "^4.3.0",
+ "long": "^4.0.0",
+ "protobufjs": "^6.11.3",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@hapi/address": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+ "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+ "deprecated": "Moved to 'npm install @sideway/address'"
+ },
+ "node_modules/@hapi/bourne": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained"
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+ "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained"
+ },
+ "node_modules/@hapi/joi": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+ "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+ "deprecated": "Switch to 'npm install joi'",
+ "dependencies": {
+ "@hapi/address": "2.x.x",
+ "@hapi/bourne": "1.x.x",
+ "@hapi/hoek": "8.x.x",
+ "@hapi/topo": "3.x.x"
+ }
+ },
+ "node_modules/@hapi/topo": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+ "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained",
+ "dependencies": {
+ "@hapi/hoek": "^8.3.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "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/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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz",
+ "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz",
+ "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/reporters": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-changed-files": "^26.6.2",
+ "jest-config": "^26.6.3",
+ "jest-haste-map": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-resolve-dependencies": "^26.6.3",
+ "jest-runner": "^26.6.3",
+ "jest-runtime": "^26.6.3",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "jest-watcher": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "p-each-series": "^2.1.0",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz",
+ "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==",
+ "dependencies": {
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz",
+ "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@sinonjs/fake-timers": "^6.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^26.6.2",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz",
+ "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==",
+ "dependencies": {
+ "@jest/environment": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "expect": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz",
+ "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.4",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.3",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "jest-haste-map": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^4.0.1",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "optionalDependencies": {
+ "node-notifier": "^8.0.0"
+ }
+ },
+ "node_modules/@jest/reporters/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/@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/source-map": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz",
+ "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==",
+ "dependencies": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "source-map": "^0.6.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz",
+ "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz",
+ "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==",
+ "dependencies": {
+ "@jest/test-result": "^26.6.2",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^26.6.2",
+ "jest-runner": "^26.6.3",
+ "jest-runtime": "^26.6.3"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz",
+ "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^26.6.2",
+ "babel-plugin-istanbul": "^6.0.0",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-util": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "pirates": "^4.0.1",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "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=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@material-ui/core": {
+ "version": "4.12.4",
+ "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz",
+ "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==",
+ "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
+ "dependencies": {
+ "@babel/runtime": "^7.4.4",
+ "@material-ui/styles": "^4.11.5",
+ "@material-ui/system": "^4.12.2",
+ "@material-ui/types": "5.1.0",
+ "@material-ui/utils": "^4.11.3",
+ "@types/react-transition-group": "^4.2.0",
+ "clsx": "^1.0.4",
+ "hoist-non-react-statics": "^3.3.2",
+ "popper.js": "1.16.1-lts",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.8.0 || ^17.0.0",
+ "react-transition-group": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/material-ui"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.6 || ^17.0.0",
+ "react": "^16.8.0 || ^17.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@material-ui/core/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/@material-ui/lab": {
+ "version": "4.0.0-alpha.61",
+ "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz",
+ "integrity": "sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==",
+ "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
+ "dependencies": {
+ "@babel/runtime": "^7.4.4",
+ "@material-ui/utils": "^4.11.3",
+ "clsx": "^1.0.4",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.8.0 || ^17.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "@material-ui/core": "^4.12.1",
+ "@types/react": "^16.8.6 || ^17.0.0",
+ "react": "^16.8.0 || ^17.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@material-ui/lab/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/@material-ui/styles": {
+ "version": "4.11.5",
+ "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz",
+ "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==",
+ "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
+ "dependencies": {
+ "@babel/runtime": "^7.4.4",
+ "@emotion/hash": "^0.8.0",
+ "@material-ui/types": "5.1.0",
+ "@material-ui/utils": "^4.11.3",
+ "clsx": "^1.0.4",
+ "csstype": "^2.5.2",
+ "hoist-non-react-statics": "^3.3.2",
+ "jss": "^10.5.1",
+ "jss-plugin-camel-case": "^10.5.1",
+ "jss-plugin-default-unit": "^10.5.1",
+ "jss-plugin-global": "^10.5.1",
+ "jss-plugin-nested": "^10.5.1",
+ "jss-plugin-props-sort": "^10.5.1",
+ "jss-plugin-rule-value-function": "^10.5.1",
+ "jss-plugin-vendor-prefixer": "^10.5.1",
+ "prop-types": "^15.7.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/material-ui"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.6 || ^17.0.0",
+ "react": "^16.8.0 || ^17.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@material-ui/styles/node_modules/@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
+ },
+ "node_modules/@material-ui/styles/node_modules/csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+ },
+ "node_modules/@material-ui/system": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz",
+ "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==",
+ "dependencies": {
+ "@babel/runtime": "^7.4.4",
+ "@material-ui/utils": "^4.11.3",
+ "csstype": "^2.5.2",
+ "prop-types": "^15.7.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/material-ui"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.6 || ^17.0.0",
+ "react": "^16.8.0 || ^17.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@material-ui/system/node_modules/csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+ },
+ "node_modules/@material-ui/types": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
+ "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==",
+ "peerDependencies": {
+ "@types/react": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@material-ui/utils": {
+ "version": "4.11.3",
+ "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz",
+ "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==",
+ "dependencies": {
+ "@babel/runtime": "^7.4.4",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.8.0 || ^17.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@material-ui/utils/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/@mui/base": {
+ "version": "5.0.0-beta.36",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.36.tgz",
+ "integrity": "sha512-6A8fYiXgjqTO6pgj31Hc8wm1M3rFYCxDRh09dBVk0L0W4cb2lnurRJa3cAyic6hHY+we1S58OdGYRbKmOsDpGQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@floating-ui/react-dom": "^2.0.8",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "@popperjs/core": "^2.11.8",
+ "clsx": "^2.1.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/base/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/core-downloads-tracker": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.10.tgz",
+ "integrity": "sha512-qPv7B+LeMatYuzRjB3hlZUHqinHx/fX4YFBiaS19oC02A1e9JFuDKDvlyRQQ5oRSbJJt0QlaLTlr0IcauVcJRQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ }
+ },
+ "node_modules/@mui/icons-material": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.10.tgz",
+ "integrity": "sha512-9cF8oUHZKo9oQ7EQ3pxPELaZuZVmphskU4OI6NiJNDVN7zcuvrEsuWjYo1Zh4fLiC39Nrvm30h/B51rcUjvSGA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.0.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.10.tgz",
+ "integrity": "sha512-YJJGHjwDOucecjDEV5l9ISTCo+l9YeWrho623UajzoHRYxuKUmwrGVYOW4PKwGvCx9SU9oklZnbbi2Clc5XZHw==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/base": "5.0.0-beta.36",
+ "@mui/core-downloads-tracker": "^5.15.10",
+ "@mui/system": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "@types/react-transition-group": "^4.4.10",
+ "clsx": "^2.1.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0",
+ "react-transition-group": "^4.4.5"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/private-theming": {
+ "version": "5.15.9",
+ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.9.tgz",
+ "integrity": "sha512-/aMJlDOxOTAXyp4F2rIukW1O0anodAMCkv1DfBh/z9vaKHY3bd5fFf42wmP+0GRmwMinC5aWPpNfHXOED1fEtg==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/utils": "^5.15.9",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styled-engine": {
+ "version": "5.15.9",
+ "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.9.tgz",
+ "integrity": "sha512-NRKtYkL5PZDH7dEmaLEIiipd3mxNnQSO+Yo8rFNBNptY8wzQnQ+VjayTq39qH7Sast5cwHKYFusUrQyD+SS4Og==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@emotion/cache": "^11.11.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.3.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styles": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.15.10.tgz",
+ "integrity": "sha512-VUl9rCK89lkCZ+ctYv1hSCN9gBke9CfnXF9BtGPkw9jTxPkrW6fQQYep2wcHdzLORE3w96oq9BbSXDqrOnSEPA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@emotion/hash": "^0.9.1",
+ "@mui/private-theming": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "clsx": "^2.1.0",
+ "csstype": "^3.1.3",
+ "hoist-non-react-statics": "^3.3.2",
+ "jss": "^10.10.0",
+ "jss-plugin-camel-case": "^10.10.0",
+ "jss-plugin-default-unit": "^10.10.0",
+ "jss-plugin-global": "^10.10.0",
+ "jss-plugin-nested": "^10.10.0",
+ "jss-plugin-props-sort": "^10.10.0",
+ "jss-plugin-rule-value-function": "^10.10.0",
+ "jss-plugin-vendor-prefixer": "^10.10.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styles/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/system": {
+ "version": "5.15.9",
+ "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.9.tgz",
+ "integrity": "sha512-SxkaaZ8jsnIJ77bBXttfG//LUf6nTfOcaOuIgItqfHv60ZCQy/Hu7moaob35kBb+guxVJnoSZ+7vQJrA/E7pKg==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/private-theming": "^5.15.9",
+ "@mui/styled-engine": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "clsx": "^2.1.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/system/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/types": {
+ "version": "7.2.13",
+ "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz",
+ "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==",
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/utils": {
+ "version": "5.15.9",
+ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.9.tgz",
+ "integrity": "sha512-yDYfr61bCYUz1QtwvpqYy/3687Z8/nS4zv7lv/ih/6ZFGMl1iolEvxRmR84v2lOYxlds+kq1IVYbXxDKh8Z9sg==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@types/prop-types": "^15.7.11",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "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/@npmcli/fs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
+ "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.1.3",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/fs/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/move-file": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz",
+ "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@popperjs/core": {
+ "version": "2.11.8",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
+ "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/@react-google-maps/api": {
+ "version": "2.19.3",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.19.3.tgz",
+ "integrity": "sha512-jiLqvuOt5lOowkLeq7d077AByTyJp+s6hZVlLhlq7SBacBD37aUNpXBz2OsazfeR6Aw4a+9RRhAEjEFvrR1f5A==",
+ "dependencies": {
+ "@googlemaps/js-api-loader": "1.16.2",
+ "@googlemaps/markerclusterer": "2.5.3",
+ "@react-google-maps/infobox": "2.19.2",
+ "@react-google-maps/marker-clusterer": "2.19.2",
+ "@types/google.maps": "3.55.2",
+ "invariant": "2.2.4"
+ },
+ "peerDependencies": {
+ "react": "^16.8 || ^17 || ^18",
+ "react-dom": "^16.8 || ^17 || ^18"
+ }
+ },
+ "node_modules/@react-google-maps/infobox": {
+ "version": "2.19.2",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.19.2.tgz",
+ "integrity": "sha512-6wvBqeJsQ/eFSvoxg+9VoncQvNoVCdmxzxRpLvmjPD+nNC6mHM0vJH1xSqaKijkMrfLJT0nfkTGpovrF896jwg=="
+ },
+ "node_modules/@react-google-maps/marker-clusterer": {
+ "version": "2.19.2",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz",
+ "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw=="
+ },
+ "node_modules/@rollup/plugin-node-resolve": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
+ "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==",
+ "dependencies": {
+ "@rollup/pluginutils": "^3.0.8",
+ "@types/resolve": "0.0.8",
+ "builtin-modules": "^3.1.0",
+ "is-module": "^1.0.0",
+ "resolve": "^1.14.2"
+ },
+ "engines": {
+ "node": ">= 8.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/@sentry/browser": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.7.tgz",
+ "integrity": "sha512-oDbklp4O3MtAM4mtuwyZLrgO1qDVYIujzNJQzXmi9YzymJCuzMLSRDvhY83NNDCRxf0pds4DShgYeZdbSyKraA==",
+ "dependencies": {
+ "@sentry/core": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/browser/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/@sentry/core": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz",
+ "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==",
+ "dependencies": {
+ "@sentry/hub": "6.19.7",
+ "@sentry/minimal": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/core/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/@sentry/hub": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz",
+ "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==",
+ "dependencies": {
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/hub/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/@sentry/minimal": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz",
+ "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==",
+ "dependencies": {
+ "@sentry/hub": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/minimal/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/@sentry/react": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.19.7.tgz",
+ "integrity": "sha512-VzJeBg/v41jfxUYPkH2WYrKjWc4YiMLzDX0f4Zf6WkJ4v3IlDDSkX6DfmWekjTKBho6wiMkSNy2hJ1dHfGZ9jA==",
+ "dependencies": {
+ "@sentry/browser": "6.19.7",
+ "@sentry/minimal": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "hoist-non-react-statics": "^3.3.2",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "react": "15.x || 16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/@sentry/react/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/@sentry/tracing": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.19.7.tgz",
+ "integrity": "sha512-ol4TupNnv9Zd+bZei7B6Ygnr9N3Gp1PUrNI761QSlHtPC25xXC5ssSD3GMhBgyQrcvpuRcCFHVNNM97tN5cZiA==",
+ "dependencies": {
+ "@sentry/hub": "6.19.7",
+ "@sentry/minimal": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/tracing/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/@sentry/types": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz",
+ "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz",
+ "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==",
+ "dependencies": {
+ "@sentry/types": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/utils/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/@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz",
+ "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "node_modules/@surma/rollup-plugin-off-main-thread": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz",
+ "integrity": "sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==",
+ "dependencies": {
+ "ejs": "^2.6.1",
+ "magic-string": "^0.25.0"
+ }
+ },
+ "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/ejs": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+ "hasInstallScript": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/@tawk.to/tawk-messenger-react": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@tawk.to/tawk-messenger-react/-/tawk-messenger-react-1.0.0.tgz",
+ "integrity": "sha512-4jGmgz47bcbEIdX3Qvi8Uj7//vroIBX1AKFpnTg9urgCejPShprlGPrGkSj0uWjfNTMD6S0Sh+JP0CkopSyXDw==",
+ "dependencies": {
+ "ansi-styles": "^4.3.0",
+ "aria-query": "^5.0.0",
+ "babel-plugin-macros": "^3.1.0",
+ "babel-plugin-named-asset-import": "^0.3.8",
+ "babel-preset-react-app": "^10.0.1",
+ "bindings": "^1.5.0",
+ "body-parser": "^1.19.1",
+ "browserslist": "^4.19.1",
+ "camelcase": "^6.3.0",
+ "caniuse-lite": "^1.0.30001296",
+ "chalk": "^4.1.2",
+ "color-convert": "^2.0.1",
+ "color-name": "^1.1.4",
+ "color-string": "^1.9.0",
+ "confusing-browser-globals": "^1.0.11",
+ "content-disposition": "^0.5.4",
+ "cookie": "^0.4.1",
+ "core-js": "^3.20.2",
+ "core-js-compat": "^3.20.2",
+ "core-js-pure": "^3.20.2",
+ "cross-spawn": "^7.0.3",
+ "css": "^3.0.0",
+ "css-select": "^4.2.1",
+ "css-what": "^5.1.0",
+ "debug": "^4.3.3",
+ "diff-sequences": "^27.4.0",
+ "dom-serializer": "^1.3.2",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.3.0",
+ "domutils": "^2.8.0",
+ "electron-to-chromium": "^1.4.35",
+ "emoji-regex": "^9.2.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-module-utils": "^2.7.2",
+ "eslint-plugin-import": "^2.25.4",
+ "estraverse": "^5.3.0",
+ "execa": "^4.1.0",
+ "express": "^4.17.2",
+ "file-uri-to-path": "^1.0.0",
+ "follow-redirects": "^1.14.6",
+ "get-stream": "^5.2.0",
+ "graceful-fs": "^4.2.9",
+ "has-flag": "^4.0.0",
+ "http-errors": "^1.8.1",
+ "http-parser-js": "^0.5.5",
+ "ignore": "^5.2.0",
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "is-descriptor": "^1.0.2",
+ "is-extendable": "^1.0.1",
+ "is-negative-zero": "^2.0.2",
+ "is-obj": "^1.0.1",
+ "is-stream": "^2.0.1",
+ "is-weakref": "^1.0.2",
+ "istanbul-reports": "^3.1.3",
+ "jest-cli": "^26.6.3",
+ "jest-diff": "^27.4.6",
+ "jest-get-type": "^27.4.0",
+ "jest-worker": "^27.4.6",
+ "minipass": "^3.1.6",
+ "nan": "^2.15.0",
+ "npm-run-path": "^4.0.1",
+ "nth-check": "^2.0.1",
+ "object-inspect": "^1.12.0",
+ "path-key": "^3.1.1",
+ "picomatch": "^2.3.1",
+ "pirates": "^4.0.4",
+ "postcss-selector-parser": "^6.0.8",
+ "postcss-value-parser": "^4.2.0",
+ "pretty-format": "^27.4.6",
+ "prop-types": "^15.8.1",
+ "qs": "^6.9.6",
+ "raw-body": "^2.4.2",
+ "react": "^17.0.2",
+ "react-error-overlay": "^6.0.10",
+ "react-is": "^17.0.2",
+ "resolve-from": "^5.0.0",
+ "send": "^0.17.2",
+ "serve-static": "^1.14.2",
+ "setprototypeof": "^1.2.0",
+ "shebang-command": "^2.0.0",
+ "shebang-regex": "^3.0.0",
+ "sockjs": "^0.3.24",
+ "source-map": "^0.6.1",
+ "source-map-js": "^1.0.1",
+ "source-map-resolve": "^0.6.0",
+ "string_decoder": "^1.3.0",
+ "strip-bom": "^4.0.0",
+ "supports-color": "^7.2.0",
+ "supports-preserve-symlinks-flag": "^1.0.0",
+ "table": "^6.7.5",
+ "toidentifier": "^1.0.1",
+ "tslib": "^2.3.1",
+ "type-fest": "^0.21.3",
+ "typescript": "^4.5.4",
+ "url-parse": "^1.5.4",
+ "util.promisify": "^1.0.0",
+ "which": "^2.0.2"
+ },
+ "peerDependencies": {
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
+ "react-scripts": "4.0.3"
+ }
+ },
+ "node_modules/@tawk.to/tawk-messenger-react/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/@tawk.to/tawk-messenger-react/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/@tawk.to/tawk-messenger-react/node_modules/typescript": {
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "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/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "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/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ },
+ "node_modules/@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/google-maps": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/@types/google-maps/-/google-maps-3.2.6.tgz",
+ "integrity": "sha512-ySOadZErcnCnNG+Zkmv5n+QG9DyTt7Mkx5Yk1dTjjNPtD8ByFaf+klZ/CxzgYcweduWEijTP0ASkANl57D0PRQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/google.maps": "*"
+ }
+ },
+ "node_modules/@types/google.maps": {
+ "version": "3.55.2",
+ "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.2.tgz",
+ "integrity": "sha512-JcTwzkxskR8DN/nnX96Pie3gGN3WHiPpuxzuQ9z3516o1bB243d8w8DHUJ8BohuzoT1o3HUFta2ns/mkZC8KRw=="
+ },
+ "node_modules/@types/googlemaps": {
+ "version": "3.30.18",
+ "resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.30.18.tgz",
+ "integrity": "sha512-rXYs277SHf7ceAR7RSoGh/fkYvy2eBl5mvmMlUEcPMMkwCP9XkFdwrtDZ4OGeEawOfnwauu/yoi0eTpfGp4MPg==",
+ "deprecated": "Types for the Google Maps browser API have moved to @types/google.maps. Note: these types are not for the googlemaps npm package, which is a Node API.",
+ "dev": true
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/html-minifier-terser": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz",
+ "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w=="
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
+ "node_modules/@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
+ },
+ "node_modules/@types/markerclustererplus": {
+ "version": "2.1.33",
+ "resolved": "https://registry.npmjs.org/@types/markerclustererplus/-/markerclustererplus-2.1.33.tgz",
+ "integrity": "sha512-ZDxsLUp8BmK9MVZZeQVDDzVrEXgRL0021AQcfXqfreFhdfZ9+PS0P6o4nZBvoIVYTmGSBemdCdI6mL6hf9yWvg==",
+ "dev": true,
+ "dependencies": {
+ "@types/google-maps": "*"
+ }
+ },
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag=="
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.19",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
+ "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+ },
+ "node_modules/@types/q": {
+ "version": "1.5.8",
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
+ "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
+ },
+ "node_modules/@types/react": {
+ "version": "17.0.75",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.75.tgz",
+ "integrity": "sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
+ "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/resolve": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
+ "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
+ },
+ "node_modules/@types/source-list-map": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
+ "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g=="
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+ },
+ "node_modules/@types/tapable": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
+ "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q=="
+ },
+ "node_modules/@types/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==",
+ "dependencies": {
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@types/uglify-js/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/@types/webpack": {
+ "version": "4.41.38",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz",
+ "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tapable": "^1",
+ "@types/uglify-js": "*",
+ "@types/webpack-sources": "*",
+ "anymatch": "^3.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/@types/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.7.3"
+ }
+ },
+ "node_modules/@types/webpack-sources/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@types/webpack/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/@types/yargs": {
+ "version": "15.0.19",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
+ "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+ },
+ "node_modules/@types/zen-observable": {
+ "version": "0.8.7",
+ "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.7.tgz",
+ "integrity": "sha512-LKzNTjj+2j09wAo/vvVjzgw5qckJJzhdGgWHW7j69QIGdq/KnZrMAMIHQiWGl3Ccflh5/CudBAntTPYdprPltA=="
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz",
+ "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==",
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "4.33.0",
+ "@typescript-eslint/scope-manager": "4.33.0",
+ "debug": "^4.3.1",
+ "functional-red-black-tree": "^1.0.1",
+ "ignore": "^5.1.8",
+ "regexpp": "^3.1.0",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^4.0.0",
+ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/experimental-utils": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
+ "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.7",
+ "@typescript-eslint/scope-manager": "4.33.0",
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/typescript-estree": "4.33.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz",
+ "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "4.33.0",
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/typescript-estree": "4.33.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz",
+ "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==",
+ "dependencies": {
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/visitor-keys": "4.33.0"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz",
+ "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==",
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz",
+ "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==",
+ "dependencies": {
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/visitor-keys": "4.33.0",
+ "debug": "^4.3.1",
+ "globby": "^11.0.3",
+ "is-glob": "^4.0.1",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/visitor-keys": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz",
+ "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==",
+ "dependencies": {
+ "@typescript-eslint/types": "4.33.0",
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+ "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+ "dependencies": {
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA=="
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+ "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw=="
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+ "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA=="
+ },
+ "node_modules/@webassemblyjs/helper-code-frame": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "dependencies": {
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-fsm": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+ "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw=="
+ },
+ "node_modules/@webassemblyjs/helper-module-context": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+ "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw=="
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+ "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+ "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+ "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+ "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w=="
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+ "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+ "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+ "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+ "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+ "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+ "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@wojtekmaj/date-utils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz",
+ "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/date-utils?sponsor=1"
+ }
+ },
+ "node_modules/@wojtekmaj/react-timerange-picker": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@wojtekmaj/react-timerange-picker/-/react-timerange-picker-3.5.0.tgz",
+ "integrity": "sha512-vFibWX7YFRhBLFRBn4IyBShcMZ6OwFXO7tTYFINb+dVHc7hzZ8L4KkB8Nbw/cehEnkhsZCKx4TJ85a0Ie2ZpIQ==",
+ "dependencies": {
+ "make-event-props": "^1.1.0",
+ "merge-class-names": "^1.1.1",
+ "prop-types": "^15.6.0",
+ "react-clock": "^3.0.0",
+ "react-fit": "^1.4.0",
+ "react-time-picker": "^4.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-timerange-picker?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@wry/caches": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz",
+ "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/context": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz",
+ "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/equality": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz",
+ "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/trie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz",
+ "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
+ "deprecated": "Use your platform's native atob() and btoa() methods instead"
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "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.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "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-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-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": "3.0.0",
+ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz",
+ "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==",
+ "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/agentkeepalive": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
+ "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
+ "dependencies": {
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.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": "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/ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "peerDependencies": {
+ "ajv": ">=5.0.0"
+ }
+ },
+ "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/alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ=="
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==",
+ "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": "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/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/apollo-boost": {
+ "version": "0.4.9",
+ "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.4.9.tgz",
+ "integrity": "sha512-05y5BKcDaa8w47f8d81UVwKqrAjn8uKLv6QM9fNdldoNzQ+rnOHgFlnrySUZRz9QIT3vPftQkEz2UEASp1Mi5g==",
+ "dependencies": {
+ "apollo-cache": "^1.3.5",
+ "apollo-cache-inmemory": "^1.6.6",
+ "apollo-client": "^2.6.10",
+ "apollo-link": "^1.0.6",
+ "apollo-link-error": "^1.0.3",
+ "apollo-link-http": "^1.3.1",
+ "graphql-tag": "^2.4.2",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-boost/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-boost/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/apollo-cache": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz",
+ "integrity": "sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==",
+ "dependencies": {
+ "apollo-utilities": "^1.3.4",
+ "tslib": "^1.10.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-cache-inmemory": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz",
+ "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==",
+ "dependencies": {
+ "apollo-cache": "^1.3.5",
+ "apollo-utilities": "^1.3.4",
+ "optimism": "^0.10.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-cache-inmemory/node_modules/@wry/context": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz",
+ "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==",
+ "dependencies": {
+ "@types/node": ">=6",
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-cache-inmemory/node_modules/optimism": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz",
+ "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==",
+ "dependencies": {
+ "@wry/context": "^0.4.0"
+ }
+ },
+ "node_modules/apollo-cache-inmemory/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-cache-inmemory/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/apollo-cache/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/apollo-client": {
+ "version": "2.6.10",
+ "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz",
+ "integrity": "sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==",
+ "dependencies": {
+ "@types/zen-observable": "^0.8.0",
+ "apollo-cache": "1.3.5",
+ "apollo-link": "^1.0.0",
+ "apollo-utilities": "1.3.4",
+ "symbol-observable": "^1.0.2",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0",
+ "zen-observable": "^0.8.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-client/node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/apollo-client/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-client/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/apollo-link": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
+ "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
+ "dependencies": {
+ "apollo-utilities": "^1.3.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.9.3",
+ "zen-observable-ts": "^0.8.21"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-link-error": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.13.tgz",
+ "integrity": "sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg==",
+ "dependencies": {
+ "apollo-link": "^1.2.14",
+ "apollo-link-http-common": "^0.2.16",
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-link-error/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/apollo-link-http": {
+ "version": "1.5.17",
+ "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz",
+ "integrity": "sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==",
+ "dependencies": {
+ "apollo-link": "^1.2.14",
+ "apollo-link-http-common": "^0.2.16",
+ "tslib": "^1.9.3"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-link-http-common": {
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz",
+ "integrity": "sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==",
+ "dependencies": {
+ "apollo-link": "^1.2.14",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.9.3"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-link-http-common/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-link-http-common/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/apollo-link-http/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/apollo-link/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-link/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/apollo-link/node_modules/zen-observable-ts": {
+ "version": "0.8.21",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
+ "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
+ "dependencies": {
+ "tslib": "^1.9.3",
+ "zen-observable": "^0.8.0"
+ }
+ },
+ "node_modules/apollo-utilities": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
+ "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
+ "dependencies": {
+ "@wry/equality": "^0.1.2",
+ "fast-json-stable-stringify": "^2.0.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-utilities/node_modules/@wry/equality": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
+ "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-utilities/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-utilities/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/aproba": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+ "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "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": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/arity-n": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz",
+ "integrity": "sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ=="
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.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-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array.prototype.filter": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
+ "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
+ "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.reduce": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz",
+ "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
+ "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.1.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/assert": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz",
+ "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==",
+ "dependencies": {
+ "object.assign": "^4.1.4",
+ "util": "^0.10.4"
+ }
+ },
+ "node_modules/assert/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/assert/node_modules/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ast-types-flow": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
+ },
+ "node_modules/async-each": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz",
+ "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "node_modules/asynciterator.prototype": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
+ "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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/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==",
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dependencies": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/axe-core": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz",
+ "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axobject-query": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
+ "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": ">= 4.12.1"
+ }
+ },
+ "node_modules/babel-eslint/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/babel-extract-comments": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz",
+ "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==",
+ "dependencies": {
+ "babylon": "^6.18.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz",
+ "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==",
+ "dependencies": {
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/babel__core": "^7.1.7",
+ "babel-plugin-istanbul": "^6.0.0",
+ "babel-preset-jest": "^26.6.2",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-loader": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+ "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
+ "dependencies": {
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "mkdirp": "^0.5.3",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
+ },
+ "engines": {
+ "node": ">= 6.9"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "webpack": ">=2"
+ }
+ },
+ "node_modules/babel-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/babel-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/babel-loader/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/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-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "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/babel-plugin-jest-hoist": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz",
+ "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==",
+ "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.14.2"
+ }
+ },
+ "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.4.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
+ "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-styled-components": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz",
+ "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.22.5",
+ "lodash": "^4.17.21",
+ "picomatch": "^2.3.1"
+ },
+ "peerDependencies": {
+ "styled-components": ">= 2"
+ }
+ },
+ "node_modules/babel-plugin-syntax-object-rest-spread": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+ "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w=="
+ },
+ "node_modules/babel-plugin-transform-object-rest-spread": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA==",
+ "dependencies": {
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+ "babel-runtime": "^6.26.0"
+ }
+ },
+ "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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz",
+ "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^26.6.2",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "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/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-runtime/node_modules/core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "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
+ },
+ "node_modules/babel-runtime/node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ },
+ "node_modules/babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
+ },
+ "node_modules/backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
+ },
+ "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/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
+ },
+ "node_modules/bfj": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz",
+ "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==",
+ "dependencies": {
+ "bluebird": "^3.7.2",
+ "check-types": "^11.2.3",
+ "hoopy": "^0.1.4",
+ "jsonpath": "^1.1.1",
+ "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==",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "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/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "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.2",
+ "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/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/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/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/body-parser/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/bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==",
+ "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/bonjour/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/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "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/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+ },
+ "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/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dependencies": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz",
+ "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "browserify-rsa": "^4.1.0",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.4",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.6",
+ "readable-stream": "^3.6.2",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "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/btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
+ "bin": {
+ "btoa": "bin/btoa.js"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.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/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
+ },
+ "node_modules/buffer/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ=="
+ },
+ "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/cacache": {
+ "version": "16.1.3",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz",
+ "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==",
+ "dependencies": {
+ "@npmcli/fs": "^2.1.0",
+ "@npmcli/move-file": "^2.0.0",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.1.0",
+ "glob": "^8.0.1",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^7.7.1",
+ "minipass": "^3.1.6",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "mkdirp": "^1.0.4",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^9.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/cacache/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/cacache/node_modules/glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/cacache/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cacache/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-callsite/node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/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/camelize": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz",
+ "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.30001588",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz",
+ "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/capture-exit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
+ "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
+ "dependencies": {
+ "rsvp": "^4.8.4"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/case-sensitive-paths-webpack-plugin": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
+ "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/chart.js": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz",
+ "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w=="
+ },
+ "node_modules/check-types": {
+ "version": "11.2.3",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz",
+ "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg=="
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "optional": true,
+ "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"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz",
+ "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw=="
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/classnames": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
+ },
+ "node_modules/clean-css": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
+ "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 4.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/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "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/coa/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/coa/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/coa/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/coa/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/coa/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/coa/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/coa/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/collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "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/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/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
+ "node_modules/color/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/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "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/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "node_modules/compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/compose-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
+ "integrity": "sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg==",
+ "dependencies": {
+ "arity-n": "^1.0.4"
+ }
+ },
+ "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/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/compression/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/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/concat-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/concat-stream/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/concat-stream/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/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/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
+ },
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ=="
+ },
+ "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-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ },
+ "node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "node_modules/copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "node_modules/copy-concurrently/node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "node_modules/copy-concurrently/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/copy-concurrently/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz",
+ "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==",
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
+ "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==",
+ "dependencies": {
+ "browserslist": "^4.22.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz",
+ "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==",
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "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/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/create-react-class": {
+ "version": "15.7.0",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz",
+ "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==",
+ "dependencies": {
+ "loose-envify": "^1.3.1",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "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-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dependencies": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
+ "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.6.0"
+ }
+ },
+ "node_modules/css-blank-pseudo": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz",
+ "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "bin": {
+ "css-blank-pseudo": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "dependencies": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ },
+ "engines": {
+ "node": ">4"
+ }
+ },
+ "node_modules/css-has-pseudo": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz",
+ "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==",
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^5.0.0-rc.4"
+ },
+ "bin": {
+ "css-has-pseudo": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-loader": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz",
+ "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==",
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "cssesc": "^3.0.0",
+ "icss-utils": "^4.1.1",
+ "loader-utils": "^2.0.0",
+ "postcss": "^7.0.32",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^3.0.3",
+ "postcss-modules-scope": "^2.2.0",
+ "postcss-modules-values": "^3.0.0",
+ "postcss-value-parser": "^4.1.0",
+ "schema-utils": "^2.7.1",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.27.0 || ^5.0.0"
+ }
+ },
+ "node_modules/css-loader/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/css-loader/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/css-loader/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/css-prefers-color-scheme": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz",
+ "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "bin": {
+ "css-prefers-color-scheme": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/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-select/node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-to-react-native": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz",
+ "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==",
+ "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-vendor": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
+ "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.3",
+ "is-in-browser": "^1.0.2"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cssdb": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz",
+ "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ=="
+ },
+ "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": "4.1.11",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
+ "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.8",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
+ "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
+ "dependencies": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.3",
+ "postcss-unique-selectors": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/cyclist": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz",
+ "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA=="
+ },
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "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.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "dependencies": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+ },
+ "node_modules/deep-equal": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
+ "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==",
+ "dependencies": {
+ "is-arguments": "^1.1.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.5.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dependencies": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/default-gateway/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/default-gateway/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/default-gateway/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/default-gateway/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/default-gateway/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/default-gateway/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway/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/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/del/node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
+ "dependencies": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/globby/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/del/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "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/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+ },
+ "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/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
+ "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "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-element-overflow": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/detect-element-overflow/-/detect-element-overflow-1.4.2.tgz",
+ "integrity": "sha512-4m6cVOtvm/GJLjo7WFkPfwXoEIIbM7GQwIh4WEa4g7IsNi1YzwUsGL5ApNLrrHL29bHeNeQ+/iZhw+YHqgE2Fw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/detect-element-overflow?sponsor=1"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "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/dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
+ },
+ "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": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==",
+ "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-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": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "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/domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.2"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domexception": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "deprecated": "Use your platform's native DOMException instead",
+ "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/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/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-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dot-prop/node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dependencies": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/duplexify/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/duplexify/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/duplexify/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/duplexify/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/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.9",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+ "dependencies": {
+ "jake": "^10.8.5"
+ },
+ "bin": {
+ "ejs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.676",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.676.tgz",
+ "integrity": "sha512-uHt4FB8SeYdhcOsj2ix/C39S7sPSNFJpzShjxGOm1KdF4MHyGqGi389+T5cErsodsijojXilYaHIKKqJfqh7uQ=="
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/emittery": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz",
+ "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==",
+ "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/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/encoding/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==",
+ "optional": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/enhanced-resolve/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/enhanced-resolve/node_modules/memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/enhanced-resolve/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/enhanced-resolve/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/enhanced-resolve/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/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "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/env-cmd": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz",
+ "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==",
+ "dependencies": {
+ "commander": "^4.0.0",
+ "cross-spawn": "^7.0.0"
+ },
+ "bin": {
+ "env-cmd": "bin/env-cmd.js"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="
+ },
+ "node_modules/errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.22.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
+ "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.1",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.0",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.1",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz",
+ "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==",
+ "dependencies": {
+ "asynciterator.prototype": "^1.0.0",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.4",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.2",
+ "safe-array-concat": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
+ "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "has-tostringtag": "^1.0.0",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "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/es5-ext": {
+ "version": "0.10.62",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "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/eslint": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dependencies": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-react-app": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz",
+ "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==",
+ "dependencies": {
+ "confusing-browser-globals": "^1.0.10"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^4.0.0",
+ "@typescript-eslint/parser": "^4.0.0",
+ "babel-eslint": "^10.0.0",
+ "eslint": "^7.5.0",
+ "eslint-plugin-flowtype": "^5.2.0",
+ "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-jest": "^24.0.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-react": "^7.20.3",
+ "eslint-plugin-react-hooks": "^4.0.8",
+ "eslint-plugin-testing-library": "^3.9.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-jest": {
+ "optional": true
+ },
+ "eslint-plugin-testing-library": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "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.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "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-plugin-flowtype": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz",
+ "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==",
+ "dependencies": {
+ "lodash": "^4.17.15",
+ "string-natural-compare": "^3.0.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.1.0"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "dependencies": {
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/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-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-jest": {
+ "version": "24.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz",
+ "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==",
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": ">= 4",
+ "eslint": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz",
+ "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.2",
+ "aria-query": "^5.3.0",
+ "array-includes": "^3.1.7",
+ "array.prototype.flatmap": "^1.3.2",
+ "ast-types-flow": "^0.0.8",
+ "axe-core": "=4.7.0",
+ "axobject-query": "^3.2.1",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "es-iterator-helpers": "^1.0.15",
+ "hasown": "^2.0.0",
+ "jsx-ast-utils": "^3.3.5",
+ "language-tags": "^1.0.9",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.7",
+ "object.fromentries": "^2.0.7"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.33.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
+ "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.12",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "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.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dependencies": {
+ "is-core-module": "^2.13.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/eslint-plugin-testing-library": {
+ "version": "3.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz",
+ "integrity": "sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA==",
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "^3.10.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0",
+ "npm": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": "^5 || ^6 || ^7"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/experimental-utils": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz",
+ "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/types": "3.10.1",
+ "@typescript-eslint/typescript-estree": "3.10.1",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/types": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz",
+ "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==",
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz",
+ "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==",
+ "dependencies": {
+ "@typescript-eslint/types": "3.10.1",
+ "@typescript-eslint/visitor-keys": "3.10.1",
+ "debug": "^4.1.1",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.3.2",
+ "tsutils": "^3.17.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz",
+ "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/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/eslint-plugin-testing-library/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/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/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/eslint-scope/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/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-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-webpack-plugin": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.7.0.tgz",
+ "integrity": "sha512-bNaVVUvU4srexGhVcayn/F4pJAz19CWBkKoMx7aSQ4wtTbZQCnG5O9LHCE42mM+JSKOUp7n6vd5CIwzj7lOVGA==",
+ "dependencies": {
+ "@types/eslint": "^7.29.0",
+ "arrify": "^2.0.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0",
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/eslint-webpack-plugin/node_modules/arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/eslint/node_modules/@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/eslint/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/eslint/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/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/eslint/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/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dependencies": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/espree/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/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "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": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "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/eventsource": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
+ "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/exec-sh": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz",
+ "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w=="
+ },
+ "node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "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": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/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/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/expect": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz",
+ "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-styles": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "jest-matcher-utils": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-regex-util": "^26.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/expect/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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/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/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/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/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/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/express/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/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/express/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/express/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/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
+ "node_modules/ext/node_modules/type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ },
+ "node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "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=="
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "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=="
+ },
+ "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=="
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/figgy-pudding": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
+ "deprecated": "This module is no longer supported."
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz",
+ "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==",
+ "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/file-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "node_modules/filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "dependencies": {
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/filesize": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz",
+ "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==",
+ "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/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/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/find-cache-dir/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/find-cache-dir/node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-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/find-cache-dir/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/find-cache-dir/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ },
+ "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/find-versions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
+ "dev": true,
+ "dependencies": {
+ "semver-regex": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/firebase": {
+ "version": "9.23.0",
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.23.0.tgz",
+ "integrity": "sha512-/4lUVY0lUvBDIaeY1q6dUYhS8Sd18Qb9CgWkPZICUo9IXpJNCEagfNZXBBFCkMTTN5L5gx2Hjr27y21a9NzUcA==",
+ "dependencies": {
+ "@firebase/analytics": "0.10.0",
+ "@firebase/analytics-compat": "0.2.6",
+ "@firebase/app": "0.9.13",
+ "@firebase/app-check": "0.8.0",
+ "@firebase/app-check-compat": "0.3.7",
+ "@firebase/app-compat": "0.2.13",
+ "@firebase/app-types": "0.9.0",
+ "@firebase/auth": "0.23.2",
+ "@firebase/auth-compat": "0.4.2",
+ "@firebase/database": "0.14.4",
+ "@firebase/database-compat": "0.3.4",
+ "@firebase/firestore": "3.13.0",
+ "@firebase/firestore-compat": "0.3.12",
+ "@firebase/functions": "0.10.0",
+ "@firebase/functions-compat": "0.3.5",
+ "@firebase/installations": "0.6.4",
+ "@firebase/installations-compat": "0.2.4",
+ "@firebase/messaging": "0.12.4",
+ "@firebase/messaging-compat": "0.2.4",
+ "@firebase/performance": "0.6.4",
+ "@firebase/performance-compat": "0.2.4",
+ "@firebase/remote-config": "0.4.4",
+ "@firebase/remote-config-compat": "0.2.4",
+ "@firebase/storage": "0.11.2",
+ "@firebase/storage-compat": "0.3.2",
+ "@firebase/util": "1.9.3"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz",
+ "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg=="
+ },
+ "node_modules/flatten": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
+ "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==",
+ "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash."
+ },
+ "node_modules/flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "node_modules/flush-write-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/flush-write-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/flush-write-stream/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/flush-write-stream/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/follow-redirects": {
+ "version": "1.15.5",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
+ "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz",
+ "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==",
+ "dependencies": {
+ "@babel/code-frame": "^7.5.5",
+ "chalk": "^2.4.1",
+ "micromatch": "^3.1.10",
+ "minimatch": "^3.0.4",
+ "semver": "^5.6.0",
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6.11.5",
+ "yarn": ">=1.0.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "node_modules/from2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/from2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/from2/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/from2/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/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/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "node_modules/fs-write-stream-atomic/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/fs-write-stream-atomic/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/fs-write-stream-atomic/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/fs-write-stream-atomic/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/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "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/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gauge": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+ "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^3.0.7",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dependencies": {
+ "globule": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "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.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-user-locale": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-1.5.1.tgz",
+ "integrity": "sha512-WiNpoFRcHn1qxP9VabQljzGwkAQDrcpqUtaP0rNBEkFxJdh4f3tik6MfZsMYZc+UgQJdGCxWEjL9wnCUlRQXag==",
+ "dependencies": {
+ "lodash.memoize": "^4.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/globule": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
+ "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
+ "dependencies": {
+ "glob": "~7.1.1",
+ "lodash": "^4.17.21",
+ "minimatch": "~3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/globule/node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "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/globule/node_modules/minimatch": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+ "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "node_modules/graphql": {
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
+ "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/graphql-tag": {
+ "version": "2.12.6",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
+ "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
+ "optional": true
+ },
+ "node_modules/gzip-size": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
+ "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+ "dependencies": {
+ "duplexer": "^0.1.1",
+ "pify": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
+ "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
+ },
+ "node_modules/history": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "loose-envify": "^1.2.0",
+ "resolve-pathname": "^3.0.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0",
+ "value-equal": "^1.0.1"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "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/hoist-non-react-statics/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/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/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/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/hosted-git-info/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/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hpack.js/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/hpack.js/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/hpack.js/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/hpack.js/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/hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A=="
+ },
+ "node_modules/hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA=="
+ },
+ "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": "1.4.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
+ "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA=="
+ },
+ "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": "5.1.1",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
+ "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==",
+ "dependencies": {
+ "camel-case": "^4.1.1",
+ "clean-css": "^4.2.3",
+ "commander": "^4.1.1",
+ "he": "^1.2.0",
+ "param-case": "^3.0.3",
+ "relateurl": "^0.2.7",
+ "terser": "^4.6.3"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/html-parse-stringify2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify2/-/html-parse-stringify2-2.0.1.tgz",
+ "integrity": "sha512-wMKQ3aJ/dwXzDHPpA7XgsRXXCkEhHkAF6Ioh7D51lgZO7Qy0LmcFddC9TI/qNQJvSM1KL8KbcR3FtuybsrzFlQ==",
+ "dependencies": {
+ "void-elements": "^2.0.1"
+ }
+ },
+ "node_modules/html-webpack-plugin": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz",
+ "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==",
+ "dependencies": {
+ "@types/html-minifier-terser": "^5.0.0",
+ "@types/tapable": "^1.0.5",
+ "@types/webpack": "^4.41.8",
+ "html-minifier-terser": "^5.0.1",
+ "loader-utils": "^1.2.3",
+ "lodash": "^4.17.15",
+ "pretty-error": "^2.1.1",
+ "tapable": "^1.1.3",
+ "util.promisify": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dependencies": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "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/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
+ },
+ "node_modules/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
+ },
+ "node_modules/http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-errors/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-errors/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+ },
+ "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": "0.19.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+ "dependencies": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy/node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg=="
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
+ "node_modules/husky": {
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^4.0.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^5.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "bin": {
+ "husky-run": "bin/run.js",
+ "husky-upgrade": "lib/upgrader/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/husky"
+ }
+ },
+ "node_modules/hyphenate-style-name": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ },
+ "node_modules/i18next": {
+ "version": "17.3.1",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-17.3.1.tgz",
+ "integrity": "sha512-4nY+yaENaoZKmpbiDXPzucVHCN3hN9Z9Zk7LyQXVOKVIpnYOJ3L/yxHJlBPtJDq3PGgjFwA0QBFm/26Z0iDT5A==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1"
+ }
+ },
+ "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": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "dependencies": {
+ "postcss": "^7.0.14"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/idb": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
+ "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="
+ },
+ "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": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==",
+ "dependencies": {
+ "harmony-reflect": "^1.4.6"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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/iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA=="
+ },
+ "node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/immer": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz",
+ "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
+ "node_modules/import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==",
+ "dependencies": {
+ "import-from": "^2.1.0"
+ },
+ "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==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-fresh/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/import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==",
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-from/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/import-local/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/import-local/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/import-local/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/import-local/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/import-local/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/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "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/indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA=="
+ },
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ },
+ "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==",
+ "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-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dependencies": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
+ },
+ "node_modules/ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/ip-address/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
+ },
+ "node_modules/ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
+ "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.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-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "optional": true,
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==",
+ "dependencies": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
+ "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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-descriptor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
+ "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-in-browser": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
+ "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g=="
+ },
+ "node_modules/is-lambda": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ=="
+ },
+ "node_modules/is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "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.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "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": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "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-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "dependencies": {
+ "is-path-inside": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+ "dependencies": {
+ "path-is-inside": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
+ },
+ "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-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "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-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "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": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
+ "dependencies": {
+ "@babel/core": "^7.7.5",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+ "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "node_modules/jake": {
+ "version": "10.8.7",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+ "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+ "dependencies": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.4",
+ "minimatch": "^3.1.2"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest": {
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz",
+ "integrity": "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA==",
+ "dependencies": {
+ "@jest/core": "^26.6.0",
+ "import-local": "^3.0.2",
+ "jest-cli": "^26.6.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz",
+ "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "execa": "^4.0.0",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-26.6.0.tgz",
+ "integrity": "sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng==",
+ "dependencies": {
+ "@babel/traverse": "^7.1.0",
+ "@jest/environment": "^26.6.0",
+ "@jest/test-result": "^26.6.0",
+ "@jest/types": "^26.6.0",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "expect": "^26.6.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^26.6.0",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-runner": "^26.6.0",
+ "jest-runtime": "^26.6.0",
+ "jest-snapshot": "^26.6.0",
+ "jest-util": "^26.6.0",
+ "pretty-format": "^26.6.0",
+ "stack-utils": "^2.0.2",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-circus/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-circus/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/jest-cli": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz",
+ "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==",
+ "dependencies": {
+ "@jest/core": "^26.6.3",
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "import-local": "^3.0.2",
+ "is-ci": "^2.0.0",
+ "jest-config": "^26.6.3",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "prompts": "^2.0.1",
+ "yargs": "^15.4.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/jest-cli/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz",
+ "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/test-sequencer": "^26.6.3",
+ "@jest/types": "^26.6.2",
+ "babel-jest": "^26.6.3",
+ "chalk": "^4.0.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.2.4",
+ "jest-environment-jsdom": "^26.6.2",
+ "jest-environment-node": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "jest-jasmine2": "^26.6.3",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "peerDependencies": {
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-config/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-config/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/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-docblock": {
+ "version": "26.0.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz",
+ "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==",
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz",
+ "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "jest-util": "^26.6.2",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-each/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-each/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-each/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/jest-environment-jsdom": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz",
+ "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==",
+ "dependencies": {
+ "@jest/environment": "^26.6.2",
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jsdom": "^16.4.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz",
+ "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==",
+ "dependencies": {
+ "@jest/environment": "^26.6.2",
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz",
+ "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-regex-util": "^26.0.0",
+ "jest-serializer": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.1.2"
+ }
+ },
+ "node_modules/jest-haste-map/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/jest-jasmine2": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz",
+ "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==",
+ "dependencies": {
+ "@babel/traverse": "^7.1.0",
+ "@jest/environment": "^26.6.2",
+ "@jest/source-map": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "expect": "^26.6.2",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^26.6.2",
+ "jest-matcher-utils": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-runtime": "^26.6.3",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "pretty-format": "^26.6.2",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-leak-detector": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz",
+ "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==",
+ "dependencies": {
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-leak-detector/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-leak-detector/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-leak-detector/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/jest-matcher-utils": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz",
+ "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/diff-sequences": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz",
+ "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/jest-diff": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz",
+ "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-matcher-utils/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/jest-message-util": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz",
+ "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^26.6.2",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "pretty-format": "^26.6.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-message-util/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-message-util/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/jest-mock": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz",
+ "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "26.0.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz",
+ "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz",
+ "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^26.6.2",
+ "read-pkg-up": "^7.0.1",
+ "resolve": "^1.18.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz",
+ "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-snapshot": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz",
+ "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/environment": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.7.1",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^26.6.3",
+ "jest-docblock": "^26.0.0",
+ "jest-haste-map": "^26.6.2",
+ "jest-leak-detector": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "jest-runtime": "^26.6.3",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "source-map-support": "^0.5.6",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runtime": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz",
+ "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/environment": "^26.6.2",
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/globals": "^26.6.2",
+ "@jest/source-map": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^0.6.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^26.6.3",
+ "jest-haste-map": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-mock": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0",
+ "yargs": "^15.4.1"
+ },
+ "bin": {
+ "jest-runtime": "bin/jest-runtime.js"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/jest-runtime/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jest-serializer": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz",
+ "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.4"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz",
+ "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==",
+ "dependencies": {
+ "@babel/types": "^7.0.0",
+ "@jest/types": "^26.6.2",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/prettier": "^2.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^26.6.2",
+ "graceful-fs": "^4.2.4",
+ "jest-diff": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "jest-haste-map": "^26.6.2",
+ "jest-matcher-utils": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^26.6.2",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/diff-sequences": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz",
+ "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-diff": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz",
+ "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-util": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz",
+ "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz",
+ "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "camelcase": "^6.0.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-validate/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-validate/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-validate/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/jest-watch-typeahead": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz",
+ "integrity": "sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg==",
+ "dependencies": {
+ "ansi-escapes": "^4.3.1",
+ "chalk": "^4.0.0",
+ "jest-regex-util": "^26.0.0",
+ "jest-watcher": "^26.3.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "jest": "^26.0.0"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz",
+ "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==",
+ "dependencies": {
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "jest-util": "^26.6.2",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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/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/js-base64": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
+ },
+ "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/jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
+ },
+ "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-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "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-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/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=="
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "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/jsonpath": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
+ "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
+ "dependencies": {
+ "esprima": "1.2.2",
+ "static-eval": "2.0.2",
+ "underscore": "1.12.1"
+ }
+ },
+ "node_modules/jsonpath/node_modules/esprima": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
+ "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/jss": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz",
+ "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "csstype": "^3.0.2",
+ "is-in-browser": "^1.1.3",
+ "tiny-warning": "^1.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/jss"
+ }
+ },
+ "node_modules/jss-plugin-camel-case": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz",
+ "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "hyphenate-style-name": "^1.0.3",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-default-unit": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz",
+ "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-global": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz",
+ "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-nested": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz",
+ "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0",
+ "tiny-warning": "^1.0.2"
+ }
+ },
+ "node_modules/jss-plugin-props-sort": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz",
+ "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-rule-value-function": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz",
+ "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0",
+ "tiny-warning": "^1.0.2"
+ }
+ },
+ "node_modules/jss-plugin-vendor-prefixer": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz",
+ "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "css-vendor": "^2.0.8",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/kdbush": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz",
+ "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA=="
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+ "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg=="
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/language-subtag-registry": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
+ "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
+ "dependencies": {
+ "language-subtag-registry": "^0.3.20"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/last-call-webpack-plugin": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
+ "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==",
+ "dependencies": {
+ "lodash": "^4.17.5",
+ "webpack-sources": "^1.1.0"
+ }
+ },
+ "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/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/lint-staged": {
+ "version": "10.5.4",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz",
+ "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "commander": "^6.2.0",
+ "cosmiconfig": "^7.0.0",
+ "debug": "^4.2.0",
+ "dedent": "^0.7.0",
+ "enquirer": "^2.3.6",
+ "execa": "^4.1.0",
+ "listr2": "^3.2.2",
+ "log-symbols": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "^3.3.0"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.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": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
+ },
+ "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.orderby": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz",
+ "integrity": "sha512-T0rZxKmghOOf5YPnn8EY5iLYeWCpZq8G41FfqoVHH5QDTAFaghJRmAdLiadEDq+ztgM2q5PjA+Z1fOwGrLgmtg=="
+ },
+ "node_modules/lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "node_modules/lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/loglevel": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz",
+ "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ },
+ "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/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "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": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/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/make-dir/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir/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/make-event-props": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz",
+ "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1"
+ }
+ },
+ "node_modules/make-fetch-happen": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz",
+ "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==",
+ "dependencies": {
+ "agentkeepalive": "^4.2.1",
+ "cacache": "^16.1.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^7.7.1",
+ "minipass": "^3.1.6",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^2.0.3",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^7.0.0",
+ "ssri": "^9.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/@tootallnate/once": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/http-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "dependencies": {
+ "@tootallnate/once": "2",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "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/memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==",
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "node_modules/memory-fs/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/memory-fs/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/memory-fs/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/memory-fs/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/meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "dependencies": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge-class-names": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/merge-class-names/-/merge-class-names-1.4.2.tgz",
+ "integrity": "sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/merge-class-names?sponsor=1"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "node_modules/merge-refs": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.2.tgz",
+ "integrity": "sha512-RwcT7GsQR3KbuLw1rRuodq4Nt547BKEBkliZ0qqsrpyNne9bGTFtsFIsIpx82huWhcl3kOlOlH4H0xkPk/DqVw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "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": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/microevent.ts": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz",
+ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g=="
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "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==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mini-create-react-context": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.3.tgz",
+ "integrity": "sha512-TtF6hZE59SGmS4U8529qB+jJFeW6asTLDIpPgvPLSCsooAwJS7QprHIFTqv9/Qh3NdLwQxFYgiHX5lqb6jqzPA==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "dependencies": {
+ "@babel/runtime": "^7.12.1",
+ "tiny-warning": "^1.0.3"
+ },
+ "peerDependencies": {
+ "prop-types": "^15.0.0",
+ "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz",
+ "integrity": "sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==",
+ "dependencies": {
+ "loader-utils": "^1.1.0",
+ "normalize-url": "1.9.1",
+ "schema-utils": "^1.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.4.0 || ^5.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "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/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+ },
+ "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.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-fetch": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz",
+ "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==",
+ "dependencies": {
+ "minipass": "^3.1.6",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/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/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/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/mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==",
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "node_modules/move-concurrently/node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "node_modules/move-concurrently/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/move-concurrently/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.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": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ=="
+ },
+ "node_modules/nan": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
+ "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w=="
+ },
+ "node_modules/nanoid": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz",
+ "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA=="
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/native-url": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz",
+ "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==",
+ "dependencies": {
+ "querystring": "^0.2.0"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ },
+ "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/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/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/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/node-forge": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==",
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/node-gyp": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
+ "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
+ "dependencies": {
+ "env-paths": "^2.2.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^9.1.0",
+ "nopt": "^5.0.0",
+ "npmlog": "^6.0.0",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "node-gyp": "bin/node-gyp.js"
+ },
+ "engines": {
+ "node": ">= 10.12.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/node-gyp/node_modules/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/node-gyp/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/node-gyp/node_modules/make-fetch-happen": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
+ "dependencies": {
+ "agentkeepalive": "^4.1.3",
+ "cacache": "^15.2.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^1.3.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.2",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^6.0.0",
+ "ssri": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/minipass-fetch": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
+ "dependencies": {
+ "minipass": "^3.1.0",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.12"
+ }
+ },
+ "node_modules/node-gyp/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/socks-proxy-agent": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/node-gyp/node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/node-gyp/node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "node_modules/node-gyp/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/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ },
+ "node_modules/node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dependencies": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ }
+ },
+ "node_modules/node-libs-browser/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/node-libs-browser/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/node-libs-browser/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/node-libs-browser/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/node-libs-browser/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/node-notifier": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz",
+ "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==",
+ "optional": true,
+ "dependencies": {
+ "growly": "^1.3.0",
+ "is-wsl": "^2.2.0",
+ "semver": "^7.3.2",
+ "shellwords": "^0.1.1",
+ "uuid": "^8.3.0",
+ "which": "^2.0.2"
+ }
+ },
+ "node_modules/node-notifier/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==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-notifier/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "optional": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-notifier/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ },
+ "node_modules/node-sass": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-8.0.0.tgz",
+ "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "async-foreach": "^0.1.3",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^7.0.3",
+ "gaze": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "glob": "^7.0.3",
+ "lodash": "^4.17.15",
+ "make-fetch-happen": "^10.0.4",
+ "meow": "^9.0.0",
+ "nan": "^2.17.0",
+ "node-gyp": "^8.4.1",
+ "sass-graph": "^4.0.1",
+ "stdout-stream": "^1.4.0",
+ "true-case-path": "^2.2.1"
+ },
+ "bin": {
+ "node-sass": "bin/node-sass"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dependencies": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/normalize-package-data/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/normalize-package-data/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/normalize-package-data/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/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": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==",
+ "dependencies": {
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nouislider": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-13.1.1.tgz",
+ "integrity": "sha512-PYXfMYYZA2F7QzMSEANocyIr8OgeMBrQBCre5wHsZiyha0DSrt9i5weEV2oWaJDYnG2qDKb6GwmKAkczqTzvAQ=="
+ },
+ "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/npmlog": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+ "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+ "dependencies": {
+ "are-we-there-yet": "^3.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^4.0.3",
+ "set-blocking": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg=="
+ },
+ "node_modules/nwsapi": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",
+ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ=="
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "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"
+ }
+ },
+ "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-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
+ "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+ "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz",
+ "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==",
+ "dependencies": {
+ "array.prototype.reduce": "^1.0.6",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "safe-array-concat": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
+ "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "dependencies": {
+ "array.prototype.filter": "^1.0.3",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+ "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "dependencies": {
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "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": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "dev": true,
+ "bin": {
+ "opencollective-postinstall": "index.js"
+ }
+ },
+ "node_modules/opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/opn/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optimism": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz",
+ "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==",
+ "dependencies": {
+ "@wry/caches": "^1.0.0",
+ "@wry/context": "^0.7.0",
+ "@wry/trie": "^0.4.3",
+ "tslib": "^2.3.0"
+ }
+ },
+ "node_modules/optimism/node_modules/@wry/trie": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz",
+ "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/optimize-css-assets-webpack-plugin": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz",
+ "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==",
+ "dependencies": {
+ "cssnano": "^4.1.10",
+ "last-call-webpack-plugin": "^3.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "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/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A=="
+ },
+ "node_modules/p-each-series": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
+ "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "3.0.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+ "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+ "dependencies": {
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
+ "node_modules/parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dependencies": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "node_modules/parallel-transform/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/parallel-transform/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/parallel-transform/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/parallel-transform/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/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/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-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dependencies": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "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/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
+ },
+ "node_modules/path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q=="
+ },
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w=="
+ },
+ "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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "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/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
+ },
+ "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/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/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "dependencies": {
+ "pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "dependencies": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "node_modules/pnp-webpack-plugin": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
+ "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
+ "dependencies": {
+ "ts-pnp": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/popper.js": {
+ "version": "1.16.1-lts",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
+ "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
+ },
+ "node_modules/portfinder": {
+ "version": "1.0.32",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz",
+ "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==",
+ "dependencies": {
+ "async": "^2.6.4",
+ "debug": "^3.2.7",
+ "mkdirp": "^0.5.6"
+ },
+ "engines": {
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/portfinder/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "dependencies": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "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/portfinder/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/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/postcss-attribute-case-insensitive": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz",
+ "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^6.0.2"
+ }
+ },
+ "node_modules/postcss-browser-comments": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz",
+ "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==",
+ "dependencies": {
+ "postcss": "^7"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "browserslist": "^4"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+ "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "dependencies": {
+ "postcss": "^7.0.27",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
+ "node_modules/postcss-color-functional-notation": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz",
+ "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-gray": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz",
+ "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==",
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-hex-alpha": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz",
+ "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==",
+ "dependencies": {
+ "postcss": "^7.0.14",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-mod-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz",
+ "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==",
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-rebeccapurple": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz",
+ "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-colormin/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-convert-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-custom-media": {
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz",
+ "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==",
+ "dependencies": {
+ "postcss": "^7.0.14"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-properties": {
+ "version": "8.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz",
+ "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==",
+ "dependencies": {
+ "postcss": "^7.0.17",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-selectors": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz",
+ "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz",
+ "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-double-position-gradients": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz",
+ "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==",
+ "dependencies": {
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-env-function": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz",
+ "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-flexbugs-fixes": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz",
+ "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==",
+ "dependencies": {
+ "postcss": "^7.0.26"
+ }
+ },
+ "node_modules/postcss-focus-visible": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz",
+ "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-focus-within": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz",
+ "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-font-variant": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz",
+ "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-gap-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz",
+ "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-image-set-function": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz",
+ "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-initial": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz",
+ "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-lab-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz",
+ "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==",
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
+ "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "import-cwd": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+ "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+ "dependencies": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^7.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/postcss-logical": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz",
+ "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-media-minmax": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz",
+ "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "dependencies": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-params/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
+ "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
+ "dependencies": {
+ "icss-utils": "^4.1.1",
+ "postcss": "^7.0.32",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+ "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+ "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+ "dependencies": {
+ "icss-utils": "^4.0.0",
+ "postcss": "^7.0.6"
+ }
+ },
+ "node_modules/postcss-nesting": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz",
+ "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-normalize": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz",
+ "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==",
+ "dependencies": {
+ "@csstools/normalize.css": "^10.1.0",
+ "browserslist": "^4.6.2",
+ "postcss": "^7.0.17",
+ "postcss-browser-comments": "^3.0.0",
+ "sanitize.css": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "dependencies": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "dependencies": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-overflow-shorthand": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz",
+ "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-page-break": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz",
+ "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-place": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz",
+ "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-preset-env": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz",
+ "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==",
+ "dependencies": {
+ "autoprefixer": "^9.6.1",
+ "browserslist": "^4.6.4",
+ "caniuse-lite": "^1.0.30000981",
+ "css-blank-pseudo": "^0.1.4",
+ "css-has-pseudo": "^0.10.0",
+ "css-prefers-color-scheme": "^3.1.1",
+ "cssdb": "^4.4.0",
+ "postcss": "^7.0.17",
+ "postcss-attribute-case-insensitive": "^4.0.1",
+ "postcss-color-functional-notation": "^2.0.1",
+ "postcss-color-gray": "^5.0.0",
+ "postcss-color-hex-alpha": "^5.0.3",
+ "postcss-color-mod-function": "^3.0.3",
+ "postcss-color-rebeccapurple": "^4.0.1",
+ "postcss-custom-media": "^7.0.8",
+ "postcss-custom-properties": "^8.0.11",
+ "postcss-custom-selectors": "^5.1.2",
+ "postcss-dir-pseudo-class": "^5.0.0",
+ "postcss-double-position-gradients": "^1.0.0",
+ "postcss-env-function": "^2.0.2",
+ "postcss-focus-visible": "^4.0.0",
+ "postcss-focus-within": "^3.0.0",
+ "postcss-font-variant": "^4.0.0",
+ "postcss-gap-properties": "^2.0.0",
+ "postcss-image-set-function": "^3.0.1",
+ "postcss-initial": "^3.0.0",
+ "postcss-lab-function": "^2.0.1",
+ "postcss-logical": "^3.0.0",
+ "postcss-media-minmax": "^4.0.0",
+ "postcss-nesting": "^7.0.0",
+ "postcss-overflow-shorthand": "^2.0.0",
+ "postcss-page-break": "^2.0.0",
+ "postcss-place": "^4.0.1",
+ "postcss-pseudo-class-any-link": "^6.0.0",
+ "postcss-replace-overflow-wrap": "^3.0.0",
+ "postcss-selector-matches": "^4.0.0",
+ "postcss-selector-not": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz",
+ "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-replace-overflow-wrap": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz",
+ "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-safe-parser": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz",
+ "integrity": "sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ==",
+ "dependencies": {
+ "postcss": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-safe-parser/node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/postcss-safe-parser/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/postcss-safe-parser/node_modules/postcss": {
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-selector-matches": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz",
+ "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-selector-not": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz",
+ "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.15",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
+ "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
+ "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-svgo/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "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/postcss-values-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz",
+ "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==",
+ "dependencies": {
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6.14.4"
+ }
+ },
+ "node_modules/postcss/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/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/prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
+ "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/prettier-config-standard": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-1.0.1.tgz",
+ "integrity": "sha512-S0zuixvAFlc0zruhYEDMsjt2VG/e5S5hSbqGuxTMWA0ygjII8EP9U7c/wsCQyjjAoaYG82bUsVmaSQ6veQ+u6g==",
+ "dev": true
+ },
+ "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": "2.1.2",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
+ "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+ "dependencies": {
+ "lodash": "^4.17.20",
+ "renderkid": "^2.0.4"
+ }
+ },
+ "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": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "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/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ },
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/prop-types/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/protobufjs": {
+ "version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
+ "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/long": "^4.0.1",
+ "@types/node": ">=13.7.0",
+ "long": "^4.0.0"
+ },
+ "bin": {
+ "pbjs": "bin/pbjs",
+ "pbts": "bin/pbts"
+ }
+ },
+ "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/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
+ },
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+ },
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dependencies": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "node_modules/pumpify/node_modules/pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==",
+ "dependencies": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/querystring": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
+ "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==",
+ "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+ },
+ "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": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "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/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/react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-app-polyfill": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz",
+ "integrity": "sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA==",
+ "dependencies": {
+ "core-js": "^3.6.5",
+ "object-assign": "^4.1.1",
+ "promise": "^8.1.0",
+ "raf": "^3.4.1",
+ "regenerator-runtime": "^0.13.7",
+ "whatwg-fetch": "^3.4.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-app-polyfill/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-chartjs-2": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-4.3.1.tgz",
+ "integrity": "sha512-5i3mjP6tU7QSn0jvb8I4hudTzHJqS8l00ORJnVwI2sYu0ihpj83Lv2YzfxunfxTZkscKvZu2F2w9LkwNBhj6xA==",
+ "peerDependencies": {
+ "chart.js": "^3.5.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-clock": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-clock/-/react-clock-3.1.0.tgz",
+ "integrity": "sha512-KLV3pDBcETc7lHPPqK6EpRaPS8NA3STAes+zIdfr7IY67vYgYc3brOAnGC9IcgA4X4xNPnLZwwaLJXmHrQ/MnQ==",
+ "dependencies": {
+ "@wojtekmaj/date-utils": "^1.0.0",
+ "get-user-locale": "^1.4.0",
+ "merge-class-names": "^1.1.1",
+ "prop-types": "^15.6.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-clock?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": "^15.5.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^15.5.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-data-table-component": {
+ "version": "6.11.8",
+ "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-6.11.8.tgz",
+ "integrity": "sha512-ukKJKaKNDU5+jEEZFo16+4zwQPRvw1Z13S7FOj4dr73JWRf/lKkE108jciK2tj1JPMub3qXG2h0zXDn5y2WUfQ==",
+ "dependencies": {
+ "deepmerge": "^4.2.2",
+ "lodash.orderby": "^4.6.0",
+ "shortid": "^2.2.16"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0",
+ "styled-components": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/react-datetime": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.16.3.tgz",
+ "integrity": "sha512-amWfb5iGEiyqjLmqCLlPpu2oN415jK8wX1qoTq7qn6EYiU7qQgbNHglww014PT4O/3G5eo/3kbJu/M/IxxTyGw==",
+ "dependencies": {
+ "create-react-class": "^15.5.2",
+ "object-assign": "^3.0.0",
+ "prop-types": "^15.5.7",
+ "react-onclickoutside": "^6.5.0"
+ },
+ "peerDependencies": {
+ "moment": ">=2.16.0",
+ "react": ">=0.13",
+ "react-dom": ">=0.13"
+ }
+ },
+ "node_modules/react-datetime/node_modules/object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dev-utils": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz",
+ "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==",
+ "dependencies": {
+ "@babel/code-frame": "7.10.4",
+ "address": "1.1.2",
+ "browserslist": "4.14.2",
+ "chalk": "2.4.2",
+ "cross-spawn": "7.0.3",
+ "detect-port-alt": "1.1.6",
+ "escape-string-regexp": "2.0.0",
+ "filesize": "6.1.0",
+ "find-up": "4.1.0",
+ "fork-ts-checker-webpack-plugin": "4.1.6",
+ "global-modules": "2.0.0",
+ "globby": "11.0.1",
+ "gzip-size": "5.1.1",
+ "immer": "8.0.1",
+ "is-root": "2.1.0",
+ "loader-utils": "2.0.0",
+ "open": "^7.0.2",
+ "pkg-up": "3.1.0",
+ "prompts": "2.4.0",
+ "react-error-overlay": "^6.0.9",
+ "recursive-readdir": "2.2.2",
+ "shell-quote": "1.7.2",
+ "strip-ansi": "6.0.0",
+ "text-table": "0.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/browserslist": {
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz",
+ "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001125",
+ "electron-to-chromium": "^1.3.564",
+ "escalade": "^3.0.2",
+ "node-releases": "^1.1.61"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/chalk/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/react-dev-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/react-dev-utils/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/react-dev-utils/node_modules/globby": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
+ "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/loader-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+ "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/node-releases": {
+ "version": "1.1.77",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz",
+ "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ=="
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/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/react-dev-utils/node_modules/prompts": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz",
+ "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ },
+ "peerDependencies": {
+ "react": "17.0.2"
+ }
+ },
+ "node_modules/react-error-overlay": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
+ },
+ "node_modules/react-fit": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/react-fit/-/react-fit-1.7.1.tgz",
+ "integrity": "sha512-y/TYovCCBzfIwRJsbLj0rH4Es40wPQhU5GPPq9GlbdF09b0OdzTdMSkBza0QixSlgFzTm6dkM7oTFzaVvaBx+w==",
+ "dependencies": {
+ "detect-element-overflow": "^1.4.0",
+ "prop-types": "^15.6.0",
+ "tiny-warning": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-fit?sponsor=1"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-i18next": {
+ "version": "10.13.2",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-10.13.2.tgz",
+ "integrity": "sha512-DGoauWUdPEv/+PLa03nN+wlW31XrGmQJz+zIyOA+tRTIwlRaNgeM62nGP1WG3g7fJrphMZUwPcAQqNv6XBYM4w==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "html-parse-stringify2": "2.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 17.0.0",
+ "react": ">= 16.8.0"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/react-loader-spinner": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/react-loader-spinner/-/react-loader-spinner-4.0.0.tgz",
+ "integrity": "sha512-RU2vpEej6G4ECei0h3q6bgLU10of9Lw5O+4AwF/mtkrX5oY20Sh/AxoPJ7etbrs/7Q3u4jN5qwCwGLRKCHpk6g==",
+ "dependencies": {
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
+ "node_modules/react-notifications": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/react-notifications/-/react-notifications-1.7.4.tgz",
+ "integrity": "sha512-dsR7mUQfe8YdFLqVsjT0GFd4n26UWkzefdjMELfEVygjuuyU6ZZ0LpZhFHdfmraGeBFLWHNxygpGlHHituUyjQ==",
+ "dependencies": {
+ "acorn": "6.4.1",
+ "classnames": "^2.1.1",
+ "prop-types": "^15.5.10",
+ "react-transition-group": "^4.4.1"
+ }
+ },
+ "node_modules/react-notifications/node_modules/acorn": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/react-onclickoutside": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz",
+ "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==",
+ "funding": {
+ "type": "individual",
+ "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md"
+ },
+ "peerDependencies": {
+ "react": "^15.5.x || ^16.x || ^17.x || ^18.x",
+ "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
+ "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz",
+ "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "history": "^4.9.0",
+ "hoist-non-react-statics": "^3.1.0",
+ "loose-envify": "^1.3.1",
+ "mini-create-react-context": "^0.3.0",
+ "path-to-regexp": "^1.7.0",
+ "prop-types": "^15.6.2",
+ "react-is": "^16.6.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.1.2.tgz",
+ "integrity": "sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "history": "^4.9.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.6.2",
+ "react-router": "5.1.2",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/react-router/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "node_modules/react-router/node_modules/path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
+ "node_modules/react-router/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-scripts": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.3.tgz",
+ "integrity": "sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A==",
+ "dependencies": {
+ "@babel/core": "7.12.3",
+ "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
+ "@svgr/webpack": "5.5.0",
+ "@typescript-eslint/eslint-plugin": "^4.5.0",
+ "@typescript-eslint/parser": "^4.5.0",
+ "babel-eslint": "^10.1.0",
+ "babel-jest": "^26.6.0",
+ "babel-loader": "8.1.0",
+ "babel-plugin-named-asset-import": "^0.3.7",
+ "babel-preset-react-app": "^10.0.0",
+ "bfj": "^7.0.2",
+ "camelcase": "^6.1.0",
+ "case-sensitive-paths-webpack-plugin": "2.3.0",
+ "css-loader": "4.3.0",
+ "dotenv": "8.2.0",
+ "dotenv-expand": "5.1.0",
+ "eslint": "^7.11.0",
+ "eslint-config-react-app": "^6.0.0",
+ "eslint-plugin-flowtype": "^5.2.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-jest": "^24.1.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-react": "^7.21.5",
+ "eslint-plugin-react-hooks": "^4.2.0",
+ "eslint-plugin-testing-library": "^3.9.2",
+ "eslint-webpack-plugin": "^2.5.2",
+ "file-loader": "6.1.1",
+ "fs-extra": "^9.0.1",
+ "html-webpack-plugin": "4.5.0",
+ "identity-obj-proxy": "3.0.0",
+ "jest": "26.6.0",
+ "jest-circus": "26.6.0",
+ "jest-resolve": "26.6.0",
+ "jest-watch-typeahead": "0.6.1",
+ "mini-css-extract-plugin": "0.11.3",
+ "optimize-css-assets-webpack-plugin": "5.0.4",
+ "pnp-webpack-plugin": "1.6.4",
+ "postcss-flexbugs-fixes": "4.2.1",
+ "postcss-loader": "3.0.0",
+ "postcss-normalize": "8.0.1",
+ "postcss-preset-env": "6.7.0",
+ "postcss-safe-parser": "5.0.2",
+ "prompts": "2.4.0",
+ "react-app-polyfill": "^2.0.0",
+ "react-dev-utils": "^11.0.3",
+ "react-refresh": "^0.8.3",
+ "resolve": "1.18.1",
+ "resolve-url-loader": "^3.1.2",
+ "sass-loader": "^10.0.5",
+ "semver": "7.3.2",
+ "style-loader": "1.3.0",
+ "terser-webpack-plugin": "4.2.3",
+ "ts-pnp": "1.2.0",
+ "url-loader": "4.1.1",
+ "webpack": "4.44.2",
+ "webpack-dev-server": "3.11.1",
+ "webpack-manifest-plugin": "2.2.0",
+ "workbox-webpack-plugin": "5.1.4"
+ },
+ "bin": {
+ "react-scripts": "bin/react-scripts.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.1.3"
+ },
+ "peerDependencies": {
+ "react": ">= 16",
+ "typescript": "^3.2.1 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-scripts/node_modules/@babel/core": {
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz",
+ "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.1",
+ "@babel/parser": "^7.12.3",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.1",
+ "@babel/types": "^7.12.1",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@babel/core/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@pmmmwh/react-refresh-webpack-plugin": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz",
+ "integrity": "sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ==",
+ "dependencies": {
+ "ansi-html": "^0.0.7",
+ "error-stack-parser": "^2.0.6",
+ "html-entities": "^1.2.1",
+ "native-url": "^0.2.6",
+ "schema-utils": "^2.6.5",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">= 10.x"
+ },
+ "peerDependencies": {
+ "@types/webpack": "4.x",
+ "react-refresh": ">=0.8.3 <0.10.0",
+ "sockjs-client": "^1.4.0",
+ "type-fest": "^0.13.1",
+ "webpack": ">=4.43.0 <6.0.0",
+ "webpack-dev-server": "3.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/react-scripts/node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/react-scripts/node_modules/jest-resolve": {
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz",
+ "integrity": "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^26.6.0",
+ "read-pkg-up": "^7.0.1",
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/react-scripts/node_modules/prompts": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz",
+ "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/react-scripts/node_modules/resolve": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
+ "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
+ "dependencies": {
+ "is-core-module": "^2.0.0",
+ "path-parse": "^1.0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/react-scripts/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-time-picker": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/react-time-picker/-/react-time-picker-4.5.0.tgz",
+ "integrity": "sha512-06ViW8t3hGmkrwGvUtaoZ5ud/uSlQwMexn86eL3uoTV6FnIeRhKq0H944L4bA1ne4xIndO4Fro5tGUMmWUA9gw==",
+ "dependencies": {
+ "@wojtekmaj/date-utils": "^1.0.0",
+ "get-user-locale": "^1.2.0",
+ "make-event-props": "^1.1.0",
+ "merge-class-names": "^1.1.1",
+ "merge-refs": "^1.0.0",
+ "prop-types": "^15.6.0",
+ "react-clock": "^3.0.0",
+ "react-fit": "^1.4.0",
+ "update-input-width": "^1.2.2"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-time-picker?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/react-transition-group/node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/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/read-pkg-up/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/read-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/read-pkg-up/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/read-pkg-up/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
+ "node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "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==",
+ "optional": true,
+ "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==",
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
+ "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0",
+ "get-intrinsic": "^1.2.3",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-parser": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz",
+ "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg=="
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
+ },
+ "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.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/rehackt": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.5.tgz",
+ "integrity": "sha512-BI1rV+miEkaHj8zd2n+gaMgzu/fKz7BGlb4zZ6HAiY9adDmJMkaDcmuXlJFv0eyKUob+oszs3/2gdnXUrzx2Tg==",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="
+ },
+ "node_modules/renderkid": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz",
+ "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==",
+ "dependencies": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "node_modules/renderkid/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/renderkid/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "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/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.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-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-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-pathname": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+ "deprecated": "https://github.com/lydell/resolve-url#deprecated"
+ },
+ "node_modules/resolve-url-loader": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.5.tgz",
+ "integrity": "sha512-mgFMCmrV/tA4738EsFmPFE5/MaqSgUMe8LK971kVEKA/RrNVb7+VqFsg/qmKyythf34eyq476qIobP/gfFBGSQ==",
+ "dependencies": {
+ "adjust-sourcemap-loader": "3.0.0",
+ "camelcase": "5.3.1",
+ "compose-function": "3.0.3",
+ "convert-source-map": "1.7.0",
+ "es6-iterator": "2.0.3",
+ "loader-utils": "^1.2.3",
+ "postcss": "7.0.36",
+ "rework": "1.0.1",
+ "rework-visit": "1.0.0",
+ "source-map": "0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/resolve-url-loader/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/resolve-url-loader/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/resolve-url-loader/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/resolve-url-loader/node_modules/chalk/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/resolve-url-loader/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/resolve-url-loader/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/resolve-url-loader/node_modules/convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/resolve-url-loader/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/postcss": {
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/resolve-url-loader/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/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-url-loader/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/response-iterator": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
+ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "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/rework": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz",
+ "integrity": "sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw==",
+ "dependencies": {
+ "convert-source-map": "^0.3.3",
+ "css": "^2.0.0"
+ }
+ },
+ "node_modules/rework-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz",
+ "integrity": "sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ=="
+ },
+ "node_modules/rework/node_modules/convert-source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz",
+ "integrity": "sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg=="
+ },
+ "node_modules/rework/node_modules/css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/rework/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/rework/node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
+ "dev": true
+ },
+ "node_modules/rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w=="
+ },
+ "node_modules/rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg=="
+ },
+ "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/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "1.32.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
+ "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/node": "*",
+ "acorn": "^7.1.0"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ }
+ },
+ "node_modules/rollup-plugin-babel": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz",
+ "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==",
+ "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "rollup-pluginutils": "^2.8.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "7 || ^7.0.0-rc.2",
+ "rollup": ">=0.60.0 <3"
+ }
+ },
+ "node_modules/rollup-plugin-terser": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz",
+ "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==",
+ "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser",
+ "dependencies": {
+ "@babel/code-frame": "^7.5.5",
+ "jest-worker": "^24.9.0",
+ "rollup-pluginutils": "^2.8.2",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^4.6.2"
+ },
+ "peerDependencies": {
+ "rollup": ">=0.66.0 <3"
+ }
+ },
+ "node_modules/rollup-plugin-terser/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup-plugin-terser/node_modules/jest-worker": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+ "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+ "dependencies": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/rollup-pluginutils": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
+ "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
+ "dependencies": {
+ "estree-walker": "^0.6.1"
+ }
+ },
+ "node_modules/rollup-pluginutils/node_modules/estree-walker": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
+ },
+ "node_modules/rollup/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/rsvp": {
+ "version": "4.8.5",
+ "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
+ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
+ "engines": {
+ "node": "6.* || >= 7.*"
+ }
+ },
+ "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/run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==",
+ "dependencies": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "node_modules/run-queue/node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
+ "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/sane": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz",
+ "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==",
+ "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added",
+ "dependencies": {
+ "@cnakazawa/watch": "^1.0.3",
+ "anymatch": "^2.0.0",
+ "capture-exit": "^2.0.0",
+ "exec-sh": "^0.3.2",
+ "execa": "^1.0.0",
+ "fb-watchman": "^2.0.0",
+ "micromatch": "^3.1.4",
+ "minimist": "^1.1.1",
+ "walker": "~1.0.5"
+ },
+ "bin": {
+ "sane": "src/cli.js"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/sane/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/sane/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/sane/node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sane/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sane/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sane/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sane/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/sane/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/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/sanitize.css": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz",
+ "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg=="
+ },
+ "node_modules/sass-graph": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz",
+ "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "lodash": "^4.17.11",
+ "scss-tokenizer": "^0.4.3",
+ "yargs": "^17.2.1"
+ },
+ "bin": {
+ "sassgraph": "bin/sassgraph"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/sass-graph/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/sass-graph/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/sass-graph/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/sass-loader": {
+ "version": "10.5.2",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.5.2.tgz",
+ "integrity": "sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==",
+ "dependencies": {
+ "klona": "^2.0.4",
+ "loader-utils": "^2.0.0",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.0.0",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": ">= 10.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 || ^8.0.0 || ^9.0.0",
+ "sass": "^1.3.0",
+ "webpack": "^4.36.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "fibers": {
+ "optional": true
+ },
+ "node-sass": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sass-loader/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/sass-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/sass-loader/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sass-loader/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/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.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "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/scss-tokenizer": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz",
+ "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==",
+ "dependencies": {
+ "js-base64": "^2.4.9",
+ "source-map": "^0.7.3"
+ }
+ },
+ "node_modules/scss-tokenizer/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
+ },
+ "node_modules/selfsigned": {
+ "version": "1.10.14",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz",
+ "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==",
+ "dependencies": {
+ "node-forge": "^0.10.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
+ },
+ "node_modules/semver-regex": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz",
+ "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.17.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
+ "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.8.1",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "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": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/send/node_modules/destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
+ },
+ "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/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/send/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "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": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "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/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "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": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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/serve-static/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-static/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/serve-static/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/serve-static/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/serve-static/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/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "dependencies": {
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
+ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg=="
+ },
+ "node_modules/shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "optional": true
+ },
+ "node_modules/shortid": {
+ "version": "2.2.16",
+ "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.16.tgz",
+ "integrity": "sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "dependencies": {
+ "nanoid": "^2.1.0"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
+ "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "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/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/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/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/snapdragon/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/snapdragon/node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "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/sockjs-client": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
+ "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "eventsource": "^2.0.2",
+ "faye-websocket": "^0.11.4",
+ "inherits": "^2.0.4",
+ "url-parse": "^1.5.10"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://tidelift.com/funding/github/npm/sockjs-client"
+ }
+ },
+ "node_modules/sockjs-client/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/socks": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz",
+ "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==",
+ "dependencies": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-explorer": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-explorer/-/source-map-explorer-2.5.3.tgz",
+ "integrity": "sha512-qfUGs7UHsOBE5p/lGfQdaAj/5U/GWYBw2imEpD6UQNkqElYonkow8t+HBL1qqIl3CuGZx7n8/CQo4x1HwSHhsg==",
+ "dependencies": {
+ "btoa": "^1.2.1",
+ "chalk": "^4.1.0",
+ "convert-source-map": "^1.7.0",
+ "ejs": "^3.1.5",
+ "escape-html": "^1.0.3",
+ "glob": "^7.1.6",
+ "gzip-size": "^6.0.0",
+ "lodash": "^4.17.20",
+ "open": "^7.3.1",
+ "source-map": "^0.7.4",
+ "temp": "^0.9.4",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "sme": "bin/cli.js",
+ "source-map-explorer": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/source-map-explorer/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/source-map-explorer/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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-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",
+ "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/source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "deprecated": "See https://github.com/lydell/source-map-url#deprecated"
+ },
+ "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==",
+ "deprecated": "Please use @jridgewell/sourcemap-codec instead"
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg=="
+ },
+ "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/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/ssri": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
+ "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "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.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "node_modules/static-eval": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
+ "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
+ "dependencies": {
+ "escodegen": "^1.8.1"
+ }
+ },
+ "node_modules/static-eval/node_modules/escodegen": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/static-eval/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/static-eval/node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/static-eval/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/static-eval/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/static-eval/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/static-eval/node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/stdout-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+ "dependencies": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "node_modules/stdout-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/stdout-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/stdout-stream/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/stdout-stream/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/stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dependencies": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/stream-browserify/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/stream-browserify/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/stream-browserify/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/stream-browserify/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/stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "node_modules/stream-http/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/stream-http/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/stream-http/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/stream-http/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/stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "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.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+ "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "regexp.prototype.flags": "^1.5.0",
+ "set-function-name": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "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": "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/strip-comments": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz",
+ "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==",
+ "dependencies": {
+ "babel-extract-comments": "^1.0.0",
+ "babel-plugin-transform-object-rest-spread": "^6.26.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "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": "1.3.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz",
+ "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^2.7.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/styled-components": {
+ "version": "5.3.11",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz",
+ "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/traverse": "^7.4.5",
+ "@emotion/is-prop-valid": "^1.1.0",
+ "@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/styled-components/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/styled-components/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/styled-components/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/stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/stylehacks/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw=="
+ },
+ "node_modules/subscriptions-transport-ws": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz",
+ "integrity": "sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==",
+ "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
+ "dependencies": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^15.7.2 || ^16.0.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/supercluster": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz",
+ "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+ "dependencies": {
+ "kdbush": "^4.0.2"
+ }
+ },
+ "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-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.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/svgo/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/svgo/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/svgo/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/svgo/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/svgo/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/svgo/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/svgo/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/svgo/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/svgo/node_modules/domutils/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/svgo/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/svgo/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/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/svgo/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/svgo/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/svgo/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/symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "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/table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "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/table/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/table/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "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/tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar/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/temp": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz",
+ "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==",
+ "dependencies": {
+ "mkdirp": "^0.5.1",
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/temp/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/temp/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/tempy": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "dependencies": {
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tempy/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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": "4.8.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
+ "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
+ "dependencies": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz",
+ "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==",
+ "dependencies": {
+ "cacache": "^15.0.5",
+ "find-cache-dir": "^3.3.1",
+ "jest-worker": "^26.5.0",
+ "p-limit": "^3.0.2",
+ "schema-utils": "^3.0.0",
+ "serialize-javascript": "^5.0.1",
+ "source-map": "^0.6.1",
+ "terser": "^5.3.4",
+ "webpack-sources": "^1.4.3"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/terser-webpack-plugin/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-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/p-locate/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/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/terser-webpack-plugin/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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-webpack-plugin/node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/terser": {
+ "version": "5.27.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
+ "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "node_modules/terser-webpack-plugin/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/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.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/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": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
+ "node_modules/throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/through2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/through2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/through2/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/through2/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/thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+ },
+ "node_modules/timers-browserify": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "dependencies": {
+ "setimmediate": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A=="
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
+ "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw=="
+ },
+ "node_modules/tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+ },
+ "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-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA=="
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "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/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/true-case-path": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz",
+ "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q=="
+ },
+ "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/ts-invariant": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
+ "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ts-pnp": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
+ "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/tsconfig-paths/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==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "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/tsutils/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/tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw=="
+ },
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "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.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/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/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
+ },
+ "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": "3.3.3333",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3333.tgz",
+ "integrity": "sha512-JjSKsAfuHBE/fB2oZ8NxtRTk5iGcg6hkYXMnZ3Wc+b2RSqejEqTaem11mHASMnFilHrax3sLK0GDzcJrekZYLw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
+ },
+ "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/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.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/union-value/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA=="
+ },
+ "node_modules/uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ=="
+ },
+ "node_modules/unique-filename": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
+ "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==",
+ "dependencies": {
+ "unique-slug": "^3.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz",
+ "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "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": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "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/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/update-browserslist-db/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/update-input-width": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/update-input-width/-/update-input-width-1.4.2.tgz",
+ "integrity": "sha512-/p0XLhrQQQ4bMWD7bL9duYObwYCO1qGr8R19xcMmoMSmXuQ7/1//veUnCObQ7/iW6E2pGS6rFkS4TfH4ur7e/g==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/update-input-width?sponsor=1"
+ }
+ },
+ "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/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+ "deprecated": "Please see https://github.com/lydell/urix#deprecated"
+ },
+ "node_modules/url": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz",
+ "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.11.2"
+ }
+ },
+ "node_modules/url-loader": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz",
+ "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "mime-types": "^2.1.27",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "file-loader": "*",
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "file-loader": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/url-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/util.promisify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.2.tgz",
+ "integrity": "sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "object.getownpropertydescriptors": "^2.1.6",
+ "safe-array-concat": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/util/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "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.4.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw=="
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz",
+ "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/validate.js": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.12.0.tgz",
+ "integrity": "sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA=="
+ },
+ "node_modules/value-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vendors": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
+ },
+ "node_modules/void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "1.7.5",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
+ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ },
+ "optionalDependencies": {
+ "chokidar": "^3.4.1",
+ "watchpack-chokidar2": "^2.0.1"
+ }
+ },
+ "node_modules/watchpack-chokidar2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
+ "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+ "optional": true,
+ "dependencies": {
+ "chokidar": "^2.1.8"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "optional": true,
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "optional": true,
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "optional": true,
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "optional": true,
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "optional": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "optional": true,
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "optional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "optional": true,
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "optional": true
+ },
+ "node_modules/watchpack-chokidar2/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "optional": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "optional": true,
+ "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/watchpack-chokidar2/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "optional": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/watchpack-chokidar2/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==",
+ "optional": true
+ },
+ "node_modules/watchpack-chokidar2/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==",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.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": "4.44.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz",
+ "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/wasm-edit": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "acorn": "^6.4.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.3.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.3",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.3",
+ "watchpack": "^1.7.4",
+ "webpack-sources": "^1.4.1"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ },
+ "webpack-command": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-middleware": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz",
+ "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==",
+ "dependencies": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack-dev-middleware/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/webpack-dev-server": {
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz",
+ "integrity": "sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==",
+ "dependencies": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.3.1",
+ "http-proxy-middleware": "0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.8",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.26",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.8",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.21",
+ "sockjs-client": "^1.5.0",
+ "spdy": "^4.0.2",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "^13.3.2"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 6.11.5"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/webpack-dev-server/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "node_modules/webpack-dev-server/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dependencies": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+ "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/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/webpack-dev-server/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/webpack-dev-server/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==",
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/webpack-dev-server/node_modules/yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dependencies": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/webpack-log/node_modules/ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-log/node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/webpack-manifest-plugin": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz",
+ "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==",
+ "dependencies": {
+ "fs-extra": "^7.0.0",
+ "lodash": ">=3.5 <5",
+ "object.entries": "^1.1.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "peerDependencies": {
+ "webpack": "2 || 3 || 4"
+ }
+ },
+ "node_modules/webpack-manifest-plugin/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/webpack-manifest-plugin/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/webpack-manifest-plugin/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/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/webpack-sources/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/node_modules/acorn": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/webpack/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/cacache": {
+ "version": "12.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+ "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "dependencies": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "node_modules/webpack/node_modules/eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dependencies": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=4.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/webpack/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/webpack/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/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/webpack/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/webpack/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/webpack/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/node_modules/ssri": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz",
+ "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==",
+ "dependencies": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "node_modules/webpack/node_modules/terser-webpack-plugin": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+ "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
+ "dependencies": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "node_modules/webpack/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "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.20",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
+ "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
+ },
+ "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/which-builtin-type": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
+ "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "dependencies": {
+ "function.prototype.name": "^1.1.5",
+ "has-tostringtag": "^1.0.0",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "dependencies": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "node_modules/which-pm-runs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
+ "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.5",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/workbox-background-sync": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz",
+ "integrity": "sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-broadcast-update": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz",
+ "integrity": "sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-build": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz",
+ "integrity": "sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==",
+ "dependencies": {
+ "@babel/core": "^7.8.4",
+ "@babel/preset-env": "^7.8.4",
+ "@babel/runtime": "^7.8.4",
+ "@hapi/joi": "^15.1.0",
+ "@rollup/plugin-node-resolve": "^7.1.1",
+ "@rollup/plugin-replace": "^2.3.1",
+ "@surma/rollup-plugin-off-main-thread": "^1.1.1",
+ "common-tags": "^1.8.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.6",
+ "lodash.template": "^4.5.0",
+ "pretty-bytes": "^5.3.0",
+ "rollup": "^1.31.1",
+ "rollup-plugin-babel": "^4.3.3",
+ "rollup-plugin-terser": "^5.3.1",
+ "source-map": "^0.7.3",
+ "source-map-url": "^0.4.0",
+ "stringify-object": "^3.3.0",
+ "strip-comments": "^1.0.2",
+ "tempy": "^0.3.0",
+ "upath": "^1.2.0",
+ "workbox-background-sync": "^5.1.4",
+ "workbox-broadcast-update": "^5.1.4",
+ "workbox-cacheable-response": "^5.1.4",
+ "workbox-core": "^5.1.4",
+ "workbox-expiration": "^5.1.4",
+ "workbox-google-analytics": "^5.1.4",
+ "workbox-navigation-preload": "^5.1.4",
+ "workbox-precaching": "^5.1.4",
+ "workbox-range-requests": "^5.1.4",
+ "workbox-routing": "^5.1.4",
+ "workbox-strategies": "^5.1.4",
+ "workbox-streams": "^5.1.4",
+ "workbox-sw": "^5.1.4",
+ "workbox-window": "^5.1.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/workbox-build/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/workbox-build/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/workbox-build/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/workbox-build/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/workbox-cacheable-response": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz",
+ "integrity": "sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-core": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz",
+ "integrity": "sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg=="
+ },
+ "node_modules/workbox-expiration": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz",
+ "integrity": "sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-google-analytics": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz",
+ "integrity": "sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==",
+ "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained",
+ "dependencies": {
+ "workbox-background-sync": "^5.1.4",
+ "workbox-core": "^5.1.4",
+ "workbox-routing": "^5.1.4",
+ "workbox-strategies": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-navigation-preload": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz",
+ "integrity": "sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-precaching": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz",
+ "integrity": "sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-range-requests": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz",
+ "integrity": "sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-routing": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz",
+ "integrity": "sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-strategies": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz",
+ "integrity": "sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4",
+ "workbox-routing": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-streams": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz",
+ "integrity": "sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4",
+ "workbox-routing": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-sw": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz",
+ "integrity": "sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA=="
+ },
+ "node_modules/workbox-webpack-plugin": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz",
+ "integrity": "sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "fast-json-stable-stringify": "^2.0.0",
+ "source-map-url": "^0.4.0",
+ "upath": "^1.1.2",
+ "webpack-sources": "^1.3.0",
+ "workbox-build": "^5.1.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/workbox-window": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz",
+ "integrity": "sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "dependencies": {
+ "errno": "~0.1.7"
+ }
+ },
+ "node_modules/worker-rpc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz",
+ "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==",
+ "dependencies": {
+ "microevent.ts": "~0.1.1"
+ }
+ },
+ "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/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "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.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "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"
+ }
+ },
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
+ "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
+ "dependencies": {
+ "zen-observable": "0.8.15"
+ }
+ }
+ }
+}
diff --git a/enatega-multivendor-admin/package.json b/enatega-multivendor-admin/package.json
new file mode 100644
index 0000000..142e154
--- /dev/null
+++ b/enatega-multivendor-admin/package.json
@@ -0,0 +1,91 @@
+{
+ "name": "enatega-multivendor",
+ "version": "2.0.0",
+ "description": "Enatega MultiVendor dashboard",
+ "main": "index.js",
+ "homepage": "https://multivendor-admin.ninjascode.com/",
+ "scripts": {
+ "analyze": "source-map-explorer 'build/static/js/*.js'",
+ "start": "react-scripts --openssl-legacy-provider start",
+ "build": "react-scripts --openssl-legacy-provider build",
+ "test": "react-scripts test",
+ "eject": "react-scripts eject",
+ "lint:fix": "eslint . --ext .js,.jsx --fix",
+ "format": "prettier --write '**/*.{js,jsx}'",
+ "start:staging": "env-cmd -f .env.staging react-scripts start",
+ "start:dev": "SET PORT=3000 env-cmd -f .env.development react-scripts start",
+ "start:prod": "env-cmd -f .env.production react-scripts start",
+ "build:dev": "env-cmd -f .env.dev react-scripts build",
+ "build:prod": "env-cmd -f .env.production react-scripts build",
+ "build:staging": "env-cmd -f .env.staging react-scripts build"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "*.js": [
+ "npm run format",
+ "npm run lint:fix"
+ ]
+ },
+ "eslintConfig": {
+ "extends": "react-app"
+ },
+ "browserslist": [
+ ">0.2%",
+ "not dead",
+ "not ie <= 11",
+ "not op_mini all"
+ ],
+ "dependencies": {
+ "@apollo/client": "^3.5.8",
+ "@emotion/react": "^11.9.0",
+ "@emotion/styled": "^11.8.1",
+ "@material-ui/core": "^4.12.4",
+ "@material-ui/lab": "^4.0.0-alpha.61",
+ "@mui/icons-material": "^5.8.3",
+ "@mui/material": "^5.8.3",
+ "@mui/styles": "^5.8.3",
+ "@react-google-maps/api": "^2.0.0",
+ "@sentry/react": "^6.16.1",
+ "@sentry/tracing": "^6.16.1",
+ "@tawk.to/tawk-messenger-react": "^1.0.0",
+ "@wojtekmaj/react-timerange-picker": "^3.0.0",
+ "apollo-boost": "^0.4.9",
+ "chart.js": "^3.6.0",
+ "env-cmd": "^10.1.0",
+ "firebase": "^9.4.0",
+ "graphql": "^15.0.0",
+ "husky": "^8.0.3",
+ "i18next": "^17.0.0",
+ "moment": "2.24.0",
+ "node-sass": "^8.0.0",
+ "nouislider": "13.1.1",
+ "react": "^17.0.0",
+ "react-chartjs-2": "^4.0.0",
+ "react-data-table-component": "^6.9.3",
+ "react-datetime": "2.16.3",
+ "react-dom": "^17.0.0",
+ "react-i18next": "^10.10.0",
+ "react-loader-spinner": "^4.0.0",
+ "react-notifications": "^1.7.4",
+ "react-router-dom": "5.1.2",
+ "react-scripts": "^4.0.0",
+ "source-map-explorer": "^2.5.2",
+ "styled-components": "^5.1.1",
+ "subscriptions-transport-ws": "^0.11.0",
+ "validate.js": "^0.12.0"
+ },
+ "devDependencies": {
+ "@types/googlemaps": "3.30.18",
+ "@types/markerclustererplus": "2.1.33",
+ "@types/react": "^17.0.0",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.7",
+ "prettier": "2.0.5",
+ "prettier-config-standard": "^1.0.1",
+ "typescript": "3.3.3333"
+ }
+}
diff --git a/enatega-multivendor-admin/public/apple-icon.png b/enatega-multivendor-admin/public/apple-icon.png
new file mode 100644
index 0000000..a20470f
Binary files /dev/null and b/enatega-multivendor-admin/public/apple-icon.png differ
diff --git a/enatega-multivendor-admin/public/favicon.ico b/enatega-multivendor-admin/public/favicon.ico
new file mode 100644
index 0000000..7482a65
Binary files /dev/null and b/enatega-multivendor-admin/public/favicon.ico differ
diff --git a/enatega-multivendor-admin/public/favicon.png b/enatega-multivendor-admin/public/favicon.png
new file mode 100644
index 0000000..4035919
Binary files /dev/null and b/enatega-multivendor-admin/public/favicon.png differ
diff --git a/enatega-multivendor-admin/public/firebase-messaging-sw.js b/enatega-multivendor-admin/public/firebase-messaging-sw.js
new file mode 100644
index 0000000..c8e80b8
--- /dev/null
+++ b/enatega-multivendor-admin/public/firebase-messaging-sw.js
@@ -0,0 +1,46 @@
+// // Give the service worker access to Firebase Messaging.
+// // Note that you can only use Firebase Messaging here, other Firebase libraries
+// // are not available in the service worker.
+importScripts(
+ "https://www.gstatic.com/firebasejs/9.4.0/firebase-app-compat.js"
+ );
+ importScripts(
+ "https://www.gstatic.com/firebasejs/9.4.0/firebase-messaging-compat.js"
+ );
+// // Initialize the Firebase app in the service worker by passing in the
+// // messagingSenderId.
+firebase.initializeApp({
+ apiKey: "AIzaSyDx_iSQ9LroTF7NMm20aRvw2wJqhwSnJ3U",
+ authDomain: "enatega-multivender-web.firebaseapp.com",
+ projectId: "enatega-multivender-web",
+ storageBucket: "enatega-multivender-web.appspot.com",
+ messagingSenderId: "438532750182",
+ appId: "1:438532750182:web:516b850eff4e0349f0a6a7",
+ measurementId: "G-KLBJSEHRYQ",
+});
+
+
+// // Retrieve an instance of Firebase Messaging so that it can handle background
+// // messages.
+const messaging = firebase.messaging();
+
+
+messaging.onBackgroundMessage(function (payload) {
+ try {
+ console.log('onBackgroundMessage')
+ // Customize notification here
+ const { title, body } = payload.notification;
+ console.log('title', title, body)
+ const notificationOptions = {
+ body,
+ icon: "/favicon.png",
+ };
+
+ // eslint-disable-next-line no-restricted-globals
+ self.registration.showNotification(title, notificationOptions);
+ } catch (error) {
+ console.log('error', error)
+ }
+
+ });
+
\ No newline at end of file
diff --git a/enatega-multivendor-admin/public/index.html b/enatega-multivendor-admin/public/index.html
new file mode 100644
index 0000000..a2437f4
--- /dev/null
+++ b/enatega-multivendor-admin/public/index.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enatega Multivendor Dashboard
+
+
+
+
+ You need to enable JavaScript to run this app.
+
+
+
+
+
\ No newline at end of file
diff --git a/enatega-multivendor-admin/public/manifest.json b/enatega-multivendor-admin/public/manifest.json
new file mode 100644
index 0000000..c474388
--- /dev/null
+++ b/enatega-multivendor-admin/public/manifest.json
@@ -0,0 +1,16 @@
+{
+ "short_name": "BLK Design System React",
+ "name": "BLK Design System React by Creative Tim",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ }
+ ],
+ "start_url": "./index.html",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff",
+ "gcm_sender_id": "390014290500"
+}
diff --git a/enatega-multivendor-admin/src/apollo/index.js b/enatega-multivendor-admin/src/apollo/index.js
new file mode 100644
index 0000000..8b6e2cc
--- /dev/null
+++ b/enatega-multivendor-admin/src/apollo/index.js
@@ -0,0 +1,3 @@
+export * from './queries'
+export * from './subscriptions'
+export * from './mutations'
diff --git a/enatega-multivendor-admin/src/apollo/mutations.js b/enatega-multivendor-admin/src/apollo/mutations.js
new file mode 100644
index 0000000..851d871
--- /dev/null
+++ b/enatega-multivendor-admin/src/apollo/mutations.js
@@ -0,0 +1,817 @@
+export const createFood = `
+ mutation CreateFood($foodInput:FoodInput!){
+ createFood(
+ foodInput:$foodInput
+ ){
+ _id
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ }
+ createdAt
+ updatedAt
+ }
+ }
+ }`
+
+export const editFood = `
+ mutation EditFood($foodInput:FoodInput!){
+ editFood(
+ foodInput:$foodInput
+ ){
+ _id
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ }
+ createdAt
+ updatedAt
+ }
+ }
+ }`
+
+export const deleteFood = `
+ mutation DeleteFood($id:String!,$restaurant:String!,$categoryId:String!){
+ deleteFood(id:$id,restaurant:$restaurant,categoryId:$categoryId){
+ _id
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ }
+ createdAt
+ updatedAt
+ }
+ }
+ }`
+
+export const createCategory = `
+mutation CreateCategory($category:CategoryInput){
+ createCategory(category:$category){
+ _id
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ createdAt
+ updatedAt
+ }
+ createdAt
+ updatedAt
+ }
+ }
+}`
+
+export const editCategory = `
+ mutation EditCategory($category:CategoryInput){
+ editCategory(category:$category){
+ _id
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ createdAt
+ updatedAt
+ }
+ createdAt
+ updatedAt
+ }
+ }
+ }`
+
+export const deleteCategory = `
+ mutation DeleteCategory($id:String!,$restaurant:String!){
+ deleteCategory(id:$id,restaurant:$restaurant){
+ _id
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ createdAt
+ updatedAt
+ }
+ createdAt
+ updatedAt
+ }
+ }
+ }`
+
+export const saveEmailConfiguration = `mutation SaveEmailConfiguration($configurationInput:EmailConfigurationInput!){
+ saveEmailConfiguration(configurationInput:$configurationInput){
+ _id
+ email
+ emailName
+ password
+ enableEmail
+ }
+}`
+export const saveFormEmailConfiguration = `mutation SaveFormEmailConfiguration($configurationInput:FormEmailConfigurationInput!){
+ saveFormEmailConfiguration(configurationInput: $configurationInput) {
+ _id
+ formEmail
+
+ }
+}`
+export const saveSendGridApiKey = `mutation SaveSendGridApiKey($configurationInput: SendGridConfigurationInput!) {
+ saveSendGridConfiguration(configurationInput: $configurationInput) {
+ _id
+ sendGridApiKey
+ sendGridEnabled
+ sendGridEmail
+ sendGridEmailName
+ sendGridPassword
+ }
+}`
+
+export const saveFirebaseConfiguration = `
+ mutation SaveFirebaseConfiguration(
+ $configurationInput:FirebaseConfigurationInput!
+ ) {
+ saveFirebaseConfiguration(configurationInput: $configurationInput) {
+ _id
+ firebaseKey
+ authDomain
+ projectId
+ storageBucket
+ msgSenderId
+ appId
+ measurementId
+ }
+ }
+`
+
+export const saveSentryConfiguration = `
+ mutation SaveSentryConfiguration($configurationInput: SentryConfigurationInput!) {
+ saveSentryConfiguration(configurationInput: $configurationInput) {
+ _id
+ dashboardSentryUrl
+ webSentryUrl
+ apiSentryUrl
+ customerAppSentryUrl
+ restaurantAppSentryUrl
+ riderAppSentryUrl
+ }
+ }
+`
+export const saveGoogleApiKeyConfiguration = `
+ mutation SaveGoogleApiKeyConfiguration(
+ $configurationInput: GoogleApiKeyConfigurationInput!
+ ) {
+ saveGoogleApiKeyConfiguration(configurationInput: $configurationInput) {
+ _id
+ googleApiKey
+ }
+ }
+`
+export const saveCloudinaryConfiguration = `mutation SaveCloudinaryConfiguration($configurationInput: CloudinaryConfigurationInput!) {
+ saveCloudinaryConfiguration(configurationInput: $configurationInput) {
+ _id
+ cloudinaryUploadUrl
+ cloudinaryApiKey
+
+ }
+}
+`
+export const saveAmplitudeApiKeyConfiguration = `
+ mutation SaveAmplitudeApiKeyConfiguration(
+ $configurationInput: AmplitudeApiKeyConfigurationInput!
+ ) {
+ saveAmplitudeApiKeyConfiguration(configurationInput: $configurationInput) {
+ _id
+ webAmplitudeApiKey
+ appAmplitudeApiKey
+ }
+ }
+`
+export const saveGoogleClientIDConfiguration = `mutation SaveGoogleClientIDConfiguration($configurationInput: GoogleClientIDConfigurationInput!) {
+ saveGoogleClientIDConfiguration(configurationInput: $configurationInput) {
+ _id
+ webClientID
+ androidClientID
+ iOSClientID
+ expoClientID
+ }
+}
+`
+export const saveWebConfiguration = `
+ mutation SaveWebConfiguration($configurationInput: WebConfigurationInput!) {
+ saveWebConfiguration(configurationInput: $configurationInput) {
+ _id
+
+ googleMapLibraries
+ googleColor
+ }
+ }
+`
+
+export const saveAppConfiguration = `
+ mutation SaveAppConfiguration($configurationInput: AppConfigurationsInput!) {
+ saveAppConfigurations(configurationInput: $configurationInput) {
+ _id
+
+ termsAndConditions
+ privacyPolicy
+ testOtp
+ }
+ }
+`
+export const saveDeliveryRateConfiguration = `mutation SaveDeliveryRateConfiguration($deliveryRate: Float!){
+ saveDeliveryRateConfiguration(deliveryRate:$deliveryRate){
+ _id
+ deliveryRate
+ }
+}`
+
+export const savePaypalConfiguration = `mutation SavePaypalConfiguration($configurationInput:PaypalConfigurationInput!){
+ savePaypalConfiguration(configurationInput:$configurationInput){
+ _id
+ clientId
+ clientSecret
+ sandbox
+ }
+}`
+
+export const saveStripeConfiguration = `mutation SaveStripeConfiguration($configurationInput:StripeConfigurationInput!){
+ saveStripeConfiguration(configurationInput:$configurationInput){
+ _id
+ publishableKey
+ secretKey
+
+ }
+}`
+
+export const saveTwilioConfiguration = `mutation saveTwilioConfiguration($configurationInput:TwilioConfigurationInput!){
+ saveTwilioConfiguration(configurationInput:$configurationInput){
+ _id
+ twilioAccountSid
+ twilioAuthToken
+ twilioPhoneNumber
+ twilioEnabled
+ }
+}`
+
+export const saveVerificationToggles = `mutation SaveVerificationsToggle($configurationInput:VerificationConfigurationInput!){
+ saveVerificationsToggle(configurationInput: $configurationInput) {
+ skipEmailVerification
+ skipMobileVerification
+ }
+}`
+
+export const saveCurrencyConfiguration = `mutation SaveCurrencyConfiguration($configurationInput:CurrencyConfigurationInput!){
+ saveCurrencyConfiguration(configurationInput:$configurationInput){
+ _id
+ currency
+ currencySymbol
+ }
+}`
+
+export const ownerLogin = `mutation ownerLogin($email:String!,$password:String!){
+ ownerLogin(email:$email,password:$password){
+ userId
+ token
+ email
+ userType
+ restaurants{
+ _id
+ orderId
+ name
+ image
+ address
+ }
+ }
+}`
+
+export const createSection = `mutation CreateSection($section:SectionInput!){
+ createSection(section:$section){
+ _id
+ name
+ enabled
+ restaurants{
+ _id
+ name
+ }
+ }
+}`
+export const editSection = `mutation editSection($section:SectionInput!){
+ editSection(section:$section){
+ _id
+ name
+ enabled
+ restaurants{
+ _id
+ name
+ }
+ }
+}`
+
+export const deleteSection = `mutation DeleteSection($id:String!){
+ deleteSection(id:$id)
+}`
+
+export const deleteVendor = `mutation DeleteVendor($id:String!){
+ deleteVendor(id:$id)
+}`
+
+export const updateOrderStatus = `mutation UpdateOrderStatus($id:String!,$status:String!,$reason:String){
+ updateOrderStatus(id:$id,status:$status,reason:$reason){
+ _id
+ orderStatus
+ }
+}
+`
+export const updateStatus = `mutation UpdateStatus($id:String!,$orderStatus:String!){
+ updateStatus(id:$id,orderStatus:$orderStatus){
+ _id
+ orderStatus
+ }
+}
+`
+
+export const uploadToken = `mutation UploadToken($id:String!,$pushToken:String!){
+ uploadToken(id:$id,pushToken:$pushToken){
+ _id
+ pushToken
+ }
+}`
+
+export const resetPassword = `mutation ResetPassword($password:String!,$token:String!){
+ resetPassword(password:$password,token:$token){
+ result
+ }
+}`
+
+export const createRider = `
+mutation CreateRider($riderInput:RiderInput!){
+ createRider(
+ riderInput:$riderInput
+ ){
+ _id
+ name
+ username
+ password
+ phone
+ available
+ zone{
+ _id
+ }
+ }
+ }`
+
+export const editRider = `
+ mutation EditRider($riderInput:RiderInput!){
+ editRider(
+ riderInput:$riderInput
+ ){
+ _id
+ name
+ username
+ phone
+ zone{
+ _id
+ }
+ }
+ }`
+export const deleteRider = `
+ mutation DeleteRider($id:String!){
+ deleteRider(id:$id){
+ _id
+ }
+ }`
+
+export const toggleAvailablity = `
+ mutation ToggleRider($id:String){
+ toggleAvailablity(id:$id){
+ _id
+ }
+}`
+
+export const assignRider = ` mutation AssignRider($id:String!,$riderId:String!){
+ assignRider(id:$id,riderId:$riderId){
+ _id
+ orderStatus
+ rider{
+ _id
+ name
+ }
+ }
+}`
+
+export const updatePaymentStatus = `mutation UpdatePaymentStatus($id:String!,$status:String!){
+ updatePaymentStatus(id:$id,status:$status){
+ _id
+ paymentStatus
+ paidAmount
+ }
+}
+`
+
+export const createOffer = `mutation CreateOffer($offer:OfferInput!){
+ createOffer(offer:$offer){
+ _id
+ name
+ tag
+ restaurants{
+ _id
+ name
+ address
+ }
+ }
+}`
+
+export const editOffer = `mutation EditOffer($offer:OfferInput!){
+ editOffer(offer:$offer){
+ _id
+ name
+ tag
+ restaurants{
+ _id
+ name
+ address
+ }
+ }
+}`
+
+export const deleteOffer = `mutation DeleteOffer($id:String!){
+ deleteOffer(id:$id)
+}`
+
+export const createOptions = `mutation CreateOptions($optionInput:CreateOptionInput){
+ createOptions(optionInput:$optionInput){
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ }
+}`
+
+export const createAddons = `mutation CreateAddons($addonInput:AddonInput){
+ createAddons(addonInput:$addonInput){
+ _id
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+
+ }
+}`
+export const editAddon = `mutation editAddon($addonInput:editAddonInput){
+ editAddon(addonInput:$addonInput){
+ _id
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+}`
+
+export const deleteAddon = `
+ mutation DeleteAddon($id:String!,$restaurant:String!){
+ deleteAddon(id:$id,restaurant:$restaurant){
+ _id
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ }`
+
+export const deleteOption = `
+ mutation DeleteOption($id:String!,$restaurant:String!){
+ deleteOption(id:$id,restaurant:$restaurant){
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ }
+ }`
+export const editOption = `mutation editOption($optionInput:editOptionInput){
+ editOption(optionInput:$optionInput){
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ }
+ }`
+
+export const createCoupon = `mutation CreateCoupon($couponInput:CouponInput!){
+ createCoupon(couponInput:$couponInput){
+ _id
+ title
+ discount
+ enabled
+ }
+}`
+export const editCoupon = `mutation editCoupon($couponInput:CouponInput!){
+ editCoupon(couponInput:$couponInput){
+ _id
+ title
+ discount
+ enabled
+ }
+ }`
+export const deleteCoupon = `mutation DeleteCoupon($id:String!){
+ deleteCoupon(id:$id)
+ }`
+
+export const createCuisine = `mutation CreateCuisine($cuisineInput:CuisineInput!){
+ createCuisine(cuisineInput:$cuisineInput){
+ _id
+ name
+ description
+ }
+ }`
+export const editCuisine = `mutation editCuisine($cuisineInput:CuisineInput!){
+ editCuisine(cuisineInput:$cuisineInput){
+ _id
+ name
+ description
+ }
+ }`
+export const deleteCuisine = `mutation DeleteCuisine($id:String!){
+ deleteCuisine(id:$id)
+ }`
+
+export const createTipping = `mutation CreateTipping($tippingInput:TippingInput!){
+ createTipping(tippingInput:$tippingInput){
+ _id
+ tipVariations
+ enabled
+ }
+ }`
+
+export const editTipping = `mutation editTipping($tippingInput:TippingInput!){
+ editTipping(tippingInput:$tippingInput){
+ _id
+ tipVariations
+ enabled
+ }
+ }`
+
+export const createTaxation = `mutation CreateTaxation($taxationInput:TaxationInput!){
+ createTaxation(taxationInput:$taxationInput){
+ _id
+ taxationCharges
+ enabled
+ }
+ }`
+
+export const editTaxation = `mutation editTaxation($taxationInput:TaxationInput!){
+ editTaxation(taxationInput:$taxationInput){
+ _id
+ taxationCharges
+ enabled
+ }
+ }`
+
+export const createVendor = `mutation CreateVendor($vendorInput:VendorInput){
+ createVendor(vendorInput:$vendorInput){
+ _id
+ email
+ userType
+ }
+}`
+
+export const editVendor = `mutation EditVendor($vendorInput:VendorInput){
+ editVendor(vendorInput:$vendorInput){
+ _id
+ email
+ }
+}`
+
+export const editRestaurant = `mutation EditRestaurant($restaurantInput:RestaurantProfileInput!){
+ editRestaurant(restaurant:$restaurantInput){
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ slug
+ address
+ username
+ password
+ location{coordinates}
+ isAvailable
+ minimumOrder
+ tax
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ shopType
+ }
+}`
+
+export const createZone = `mutation CreateZone($zone:ZoneInput!){
+ createZone(zone:$zone){
+ _id
+ title
+ description
+ location{coordinates}
+ isActive
+ }
+}`
+
+export const editZone = `mutation EditZone($zone:ZoneInput!){
+ editZone(zone:$zone){
+ _id
+ title
+ description
+ location{coordinates}
+ isActive
+ }
+}`
+
+export const deleteZone = `mutation DeleteZone($id:String!){
+ deleteZone(id:$id){
+ _id
+ title
+ description
+ location{coordinates}
+ isActive
+ }
+}`
+
+export const vendorResetPassword = `mutation VendorResetPassword($oldPassword: String!, $newPassword: String!){
+ vendorResetPassword(oldPassword: $oldPassword, newPassword: $newPassword)
+}`
+
+export const deleteRestaurant = `mutation DeltetRestaurant($id:String!){
+ deleteRestaurant(id:$id){
+ _id
+ isActive
+ }
+}`
+
+export const updateTimings = `mutation UpdateTimings($id:String!,$openingTimes:[TimingsInput]){
+ updateTimings(id:$id,
+ openingTimes:$openingTimes){
+ _id
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+}`
+
+export const sendNotificationUser = `mutation SendNotificationUser($notificationTitle:String, $notificationBody: String!){
+ sendNotificationUser(notificationTitle:$notificationTitle,notificationBody:$notificationBody)
+}
+`
+export const updateCommission = `mutation UpdateCommission($id:String!,$commissionRate:Float!){
+ updateCommission(id:$id,commissionRate:$commissionRate){
+ _id
+ commissionRate
+ }
+}`
+export const createRestaurant = `mutation CreateRestaurant($restaurant:RestaurantInput!,$owner:ID!){
+ createRestaurant(restaurant:$restaurant,owner:$owner){
+ _id
+ orderId
+ orderPrefix
+ name
+ slug
+ image
+ address
+ username
+ password
+ minimumOrder
+ tax
+ location{coordinates}
+ shopType
+ cuisines
+ }
+}`
+
+export const updateDeliveryBoundsAndLocation = `mutation UPDATE_DELIVERY_BOUNDS_AND_LOCATION($id:ID!,$bounds:[[[Float!]]],$location:CoordinatesInput!){
+ result :updateDeliveryBoundsAndLocation(id:$id,location:$location,bounds:$bounds){
+ success
+ message
+ data{
+ _id
+ deliveryBounds{
+ coordinates
+ }
+ location{
+ coordinates
+ }
+ }
+ }
+}`
+
+export const updateWithdrawReqStatus = `mutation UpdateWithdrawRequest($id:ID!, $status:String!){
+ updateWithdrawReqStatus(id:$id,status:$status){
+ success
+ message
+ data{
+ rider{
+ _id
+ currentWalletAmount
+ }
+ withdrawRequest{
+ _id
+ status
+ }
+ }
+ }
+}`
diff --git a/enatega-multivendor-admin/src/apollo/queries.js b/enatega-multivendor-admin/src/apollo/queries.js
new file mode 100644
index 0000000..a14740b
--- /dev/null
+++ b/enatega-multivendor-admin/src/apollo/queries.js
@@ -0,0 +1,703 @@
+export const getOrders = `query Orders($page:Int){
+ allOrders(page:$page){
+ _id
+ deliveryAddress
+ deliveryCharges
+ orderAmount
+ paidAmount
+ paymentMethod
+ orderId
+ user{
+ _id
+ name
+ email
+ phone
+ }
+ items{
+ _id
+ food{
+ _id
+ title
+ description
+ image
+ }
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ options{
+ _id
+ title
+ price
+ }
+ }
+ specialInstructions
+ quantity
+ }
+ reason
+ status
+ paymentStatus
+ orderStatus
+ createdAt
+ review{
+ _id
+ rating
+ description
+ }
+ rider{
+ _id
+ name
+ }
+ }
+ }`
+
+export const reviews = `query Reviews($restaurant:String!){
+ reviews(restaurant:$restaurant){
+ _id
+ order{
+ _id
+ orderId
+ items{
+ title
+ }
+ user{
+ _id
+ name
+ email
+ }
+ }
+ restaurant{
+ _id
+ name
+ image
+ }
+ rating
+ description
+ createdAt
+ }
+ }
+`
+
+export const getOrdersByDateRange = `query GetOrdersByDateRange($startingDate: String!, $endingDate: String!, $restaurant: String!) {
+ getOrdersByDateRange(startingDate: $startingDate, endingDate: $endingDate, restaurant: $restaurant) {
+ totalAmountCashOnDelivery
+ countCashOnDeliveryOrders
+ }
+
+ }
+`
+
+export const getOrdersByRestaurant = `query ordersByRestId($restaurant:String!,$page:Int,$rows:Int,$search:String){
+ ordersByRestId(restaurant:$restaurant,page:$page,rows:$rows,search:$search){
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ _id
+ title
+ description
+ image
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ description
+ title
+ quantityMinimum
+ quantityMaximum
+ }
+ specialInstructions
+ isActive
+ createdAt
+ updatedAt
+ }
+ user{
+ _id
+ name
+ phone
+ email
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ status
+ paymentStatus
+ reason
+ isActive
+ createdAt
+ deliveryCharges
+ tipping
+ taxationAmount
+ rider{
+ _id
+ name
+ username
+ available
+ }
+ }
+ }`
+
+export const getDashboardTotal = `query GetDashboardTotal($startingDate: String, $endingDate: String,$restaurant:String!){
+ getDashboardTotal(starting_date: $startingDate, ending_date: $endingDate,restaurant:$restaurant){
+ totalOrders
+ totalSales
+ }
+ }`
+export const getDashboardSales = `query GetDashboardSales($startingDate: String, $endingDate: String,$restaurant:String!){
+ getDashboardSales(starting_date: $startingDate, ending_date: $endingDate,restaurant:$restaurant){
+ orders{
+ day
+ amount
+ }
+ }
+ }`
+export const getDashboardOrders = `query GetDashboardOrders($startingDate: String, $endingDate: String,$restaurant:String!){
+ getDashboardOrders(starting_date: $startingDate, ending_date: $endingDate,restaurant:$restaurant){
+ orders{
+ day
+ count
+ }
+ }
+ }`
+
+export const getDashboardData = `query GetDashboardData($startingDate: String, $endingDate: String){
+ getDashboardData(starting_date: $startingDate, ending_date: $endingDate){
+ totalOrders
+ totalUsers
+ totalSales
+ orders{
+ day
+ count
+ amount
+ }
+ }
+ }`
+
+export const getConfiguration = `query GetConfiguration{
+ configuration{
+ _id
+ email
+ emailName
+ password
+ enableEmail
+ clientId
+ clientSecret
+ sandbox
+ publishableKey
+ secretKey
+ currency
+ currencySymbol
+ deliveryRate
+ twilioAccountSid
+ twilioAuthToken
+ twilioPhoneNumber
+ twilioEnabled
+ formEmail
+ sendGridApiKey
+ sendGridEnabled
+ sendGridEmail
+ sendGridEmailName
+ sendGridPassword
+ dashboardSentryUrl
+ webSentryUrl
+ apiSentryUrl
+ customerAppSentryUrl
+ restaurantAppSentryUrl
+ riderAppSentryUrl
+ googleApiKey
+ cloudinaryUploadUrl
+ cloudinaryApiKey
+ webAmplitudeApiKey
+ appAmplitudeApiKey
+ webClientID
+ androidClientID
+ iOSClientID
+ expoClientID
+
+ googleMapLibraries
+ googleColor
+ termsAndConditions
+ privacyPolicy
+ testOtp
+ firebaseKey
+ authDomain
+ projectId
+ storageBucket
+ msgSenderId
+ appId
+ measurementId
+ isPaidVersion
+ skipEmailVerification
+ skipMobileVerification
+ }
+ }`
+
+export const orderCount = `
+query OrderCount($restaurant:String!){
+ orderCount(restaurant:$restaurant)
+}`
+
+export const getActiveOrders = `query GetActiveOrders($restaurantId:ID){
+ getActiveOrders(restaurantId:$restaurantId){
+ _id
+ zone{
+ _id
+ }
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ _id
+ title
+ description
+ image
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ description
+ title
+ quantityMinimum
+ quantityMaximum
+ }
+ specialInstructions
+ isActive
+ createdAt
+ updatedAt
+ }
+ user{
+ _id
+ name
+ phone
+ email
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ isPickedUp
+ status
+ paymentStatus
+ reason
+ isActive
+ createdAt
+ deliveryCharges
+ rider{
+ _id
+ name
+ username
+ available
+ }
+ }
+}`
+
+export const getRidersByZone = `query RidersByZone($id:String!){
+ ridersByZone(id:$id){
+ _id
+ name
+ username
+ password
+ phone
+ available
+ zone{
+ _id
+ title
+ }
+ }
+}`
+
+export const getZones = `query Zones{
+ zones{
+ _id
+ title
+ description
+ location{coordinates}
+ isActive
+ }
+}`
+
+export const getVendors = `query Vendors{
+ vendors{
+ _id
+ email
+ userType
+ restaurants{
+ _id
+ orderId
+ orderPrefix
+ slug
+ name
+ image
+ address
+ location{coordinates}
+ zone{
+ _id
+ title
+ }
+ shopType
+ }
+ }
+}`
+
+export const getVendor = `query GetVendor($id:String!){
+ getVendor(id:$id){
+ _id
+ email
+ userType
+ restaurants{
+ _id
+ orderId
+ orderPrefix
+ slug
+ name
+ image
+ address
+ location{coordinates}
+ shopType
+ }
+ }
+}`
+
+export const getTaxation = `query Taxes{
+ taxes {
+ _id
+ taxationCharges
+ enabled
+ }
+ }`
+
+export const getCoupons = `query Coupons{
+ coupons {
+ _id
+ title
+ discount
+ enabled
+ }
+ }`
+
+ export const getCuisines = `query Cuisines{
+ cuisines {
+ _id
+ name
+ description
+ }
+ }`
+
+export const getTipping = `query Tips{
+ tips {
+ _id
+ tipVariations
+ enabled
+ }
+ }`
+
+export const getAddons = `query Addons{
+ addons{
+ _id
+ title
+ description
+ options{
+ _id
+ title
+ description
+ price
+ }
+ quantityMinimum
+ quantityMaximum
+ }}`
+
+export const getOptions = `query Options{
+ options {
+ _id
+ title
+ description
+ price
+ }
+ }
+ `
+export const getPaymentStatuses = `query{
+ getPaymentStatuses
+ }`
+
+export const restaurantByOwner = `query RestaurantByOwner($id:String){
+ restaurantByOwner(id:$id){
+ _id
+ email
+ userType
+ restaurants{
+ _id
+ orderId
+ orderPrefix
+ name
+ slug
+ image
+ address
+ username
+ password
+ location{coordinates}
+ shopType
+ }
+ }
+}`
+
+export const restaurantList = `query RestaurantList{
+ restaurantList{
+ _id
+ name
+ address
+ }
+}`
+
+export const restaurants = `query Restaurants{
+ restaurants{
+ _id
+ name
+ image
+ orderPrefix
+ slug
+ address
+ deliveryTime
+ minimumOrder
+ isActive
+ commissionRate
+ tax
+ owner{
+ _id
+ email
+ }
+ shopType
+ }
+}
+`
+
+export const getRestaurantProfile = `query Restaurant($id:String){
+ restaurant(id:$id)
+ {
+ _id
+ orderId
+ orderPrefix
+ slug
+ name
+ image
+ address
+ location{coordinates}
+ deliveryBounds{
+ coordinates
+ }
+ username
+ password
+ deliveryTime
+ minimumOrder
+ tax
+ isAvailable
+ stripeDetailsSubmitted
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ owner{
+ _id
+ email
+ }
+ shopType
+ cuisines
+ }
+}`
+
+export const getRestaurantDetail = `query Restaurant($id:String){
+ restaurant(id:$id){
+ _id
+ orderId
+ orderPrefix
+ slug
+ name
+ image
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ image
+ isActive
+ }
+ }
+ options{
+ _id
+ title
+ description
+ price
+ }
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ shopType
+ }
+}`
+
+export const getOffers = `query Offers{
+ offers{
+ _id
+ name
+ tag
+ restaurants{
+ _id
+ name
+ }
+ }
+}`
+
+export const getSections = `query Sections{
+ sections{
+ _id
+ name
+ enabled
+ restaurants{
+ _id
+ name
+ }
+ }
+}`
+
+export const pageCount = `
+query PageCount($restaurant:String!){
+ pageCount(restaurant:$restaurant)
+}
+`
+export const getUsers = `query{
+ users{
+ _id
+ name
+ email
+ phone
+ addresses{
+ location{coordinates}
+ deliveryAddress
+ }
+ }
+ }`
+
+export const getRiders = `query{
+ riders{
+ _id
+ name
+ username
+ password
+ phone
+ available
+ zone{
+ _id
+ title
+ }
+ }
+ }`
+
+export const getAvailableRiders = `query{
+ availableRiders{
+ _id
+ name
+ username
+ phone
+ available
+ zone{
+ _id
+ }
+ }
+ }`
+
+export const withdrawRequestQuery = `query GetWithdrawRequests($offset:Int){
+ getAllWithdrawRequests(offset:$offset){
+ success
+ message
+ data{
+ _id
+ requestId
+ requestAmount
+ requestTime
+ rider{
+ _id
+ name
+ currentWalletAmount
+ }
+ status
+ }
+ pagination{
+ total
+ }
+ }
+ }`
diff --git a/enatega-multivendor-admin/src/apollo/subscriptions.js b/enatega-multivendor-admin/src/apollo/subscriptions.js
new file mode 100644
index 0000000..c7ce9b3
--- /dev/null
+++ b/enatega-multivendor-admin/src/apollo/subscriptions.js
@@ -0,0 +1,85 @@
+export const subscribePlaceOrder = `subscription SubscribePaceOrder($restaurant:String!){
+ subscribePlaceOrder(restaurant:$restaurant){
+ userId
+ origin
+ order{
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ _id
+ title
+ description
+ image
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ description
+ title
+ quantityMinimum
+ quantityMaximum
+ }
+ specialInstructions
+ isActive
+ createdAt
+ updatedAt
+ }
+ user{
+ _id
+ name
+ phone
+ email
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ status
+ paymentStatus
+ reason
+ isActive
+ createdAt
+ deliveryCharges
+ rider{
+ _id
+ name
+ username
+ available
+ }
+ }
+ }
+ }`
+
+export const subscriptionOrder = `subscription SubscriptionOrder($id:String!){
+ subscriptionOrder(id:$id){
+ _id
+ orderStatus
+ rider{
+ _id
+ }
+ }
+ }`
diff --git a/enatega-multivendor-admin/src/app.js b/enatega-multivendor-admin/src/app.js
new file mode 100644
index 0000000..bb5cc16
--- /dev/null
+++ b/enatega-multivendor-admin/src/app.js
@@ -0,0 +1,164 @@
+import React, { useEffect, useState } from 'react'
+import { getToken, onMessage } from 'firebase/messaging'
+import GoogleMapsLoader from './components/GoogleMapsLoader/GoogleMapsLoader.js'
+import { Box, CircularProgress } from '@mui/material'
+import AdminLayout from './layouts/Admin.jsx'
+import RestaurantLayout from './layouts/Restaurant.jsx'
+import AuthLayout from './layouts/Auth.jsx'
+import SuperAdminLayout from './layouts/SuperAdmin.jsx'
+import { PrivateRoute } from './views/PrivateRoute'
+import { AdminPrivateRoute } from './views/AdminPrivateRoute'
+import { HashRouter, Route, Switch, Redirect } from 'react-router-dom'
+import * as Sentry from '@sentry/react'
+import { isFirebaseSupported, initialize } from './firebase.js'
+import { uploadToken } from './apollo'
+import { gql, useApolloClient } from '@apollo/client'
+import ConfigurableValues from './config/constants.js'
+import TawkMessengerReact from '@tawk.to/tawk-messenger-react'
+
+require('./i18n')
+
+const UPLOAD_TOKEN = gql`
+ ${uploadToken}
+`
+
+const App = () => {
+ const {
+ VAPID_KEY,
+ FIREBASE_KEY,
+ AUTH_DOMAIN,
+ PROJECT_ID,
+ STORAGE_BUCKET,
+ MSG_SENDER_ID,
+ APP_ID,
+ MEASUREMENT_ID,
+ GOOGLE_MAPS_KEY
+ } = ConfigurableValues()
+ console.log('GOOGLE_MAPS_KEY_App', GOOGLE_MAPS_KEY)
+ // const [mapsKey, setMapsKey] = useState(null)
+ // useEffect(() => {
+ // if (GOOGLE_MAPS_KEY) {
+ // setMapsKey(GOOGLE_MAPS_KEY)
+ // }
+ // }, [GOOGLE_MAPS_KEY])
+ const client = useApolloClient()
+ const [user] = useState(localStorage.getItem('user-enatega'))
+ const userType = localStorage.getItem('user-enatega')
+ ? JSON.parse(localStorage.getItem('user-enatega')).userType
+ : null
+ useEffect(() => {
+ if (user) {
+ const initializeFirebase = async() => {
+ if (await isFirebaseSupported()) {
+ const messaging = initialize(
+ FIREBASE_KEY,
+ AUTH_DOMAIN,
+ PROJECT_ID,
+ STORAGE_BUCKET,
+ MSG_SENDER_ID,
+ APP_ID,
+ MEASUREMENT_ID
+ )
+ Notification.requestPermission()
+ .then(() => {
+ getToken(messaging, {
+ vapidKey: VAPID_KEY
+ })
+ .then(token => {
+ localStorage.setItem('messaging-token', token)
+ client
+ .mutate({
+ mutation: UPLOAD_TOKEN,
+ variables: {
+ id: JSON.parse(user).userId,
+ pushToken: token
+ }
+ })
+ .then(() => {
+ console.log('upload token success')
+ })
+ .catch(error => {
+ console.log('upload token error', error)
+ })
+ })
+ .catch(err => {
+ console.log('getToken error', err)
+ })
+ })
+ .catch(console.log)
+
+ onMessage(messaging, function(payload) {
+ console.log(payload)
+ // Customize notification here
+ // const { title, body } = payload.notification
+ // eslint-disable-next-line no-restricted-globals
+ var notificationTitle = 'New Order on Enatega Multivendor'
+ var notificationOptions = {
+ body: payload.data.orderid,
+ icon: 'https://multivendor-admin.ninjascode.com/favicon.png'
+ }
+ const nt = new Notification(notificationTitle, notificationOptions)
+ nt.onclick = function(event) {
+ event.preventDefault() // prevent the browser from focusing the Notification's tab
+ window.open('https://multivendor-admin.ninjascode.com/dashboard')
+ nt.close()
+ }
+ })
+ }
+ }
+ initializeFirebase()
+ }
+ }, [user])
+ const route = userType
+ ? userType === 'VENDOR'
+ ? '/restaurant/list'
+ : '/super_admin/vendors'
+ : '/auth/login'
+ return (
+
+
+ {GOOGLE_MAPS_KEY ? (
+
+
+
+ }
+ />
+ }
+ />
+ }
+ />
+ }
+ />
+
+
+
+
+ ) : (
+
+
+
+ )}
+
+ )
+}
+export default Sentry.withProfiler(App)
diff --git a/enatega-multivendor-admin/src/assets/img/LoginPageIcon.png b/enatega-multivendor-admin/src/assets/img/LoginPageIcon.png
new file mode 100644
index 0000000..d44cee3
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/LoginPageIcon.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/RestStat.png b/enatega-multivendor-admin/src/assets/img/RestStat.png
new file mode 100644
index 0000000..03e2821
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/RestStat.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/RiderStat.png b/enatega-multivendor-admin/src/assets/img/RiderStat.png
new file mode 100644
index 0000000..b01f660
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/RiderStat.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/UserStat.png b/enatega-multivendor-admin/src/assets/img/UserStat.png
new file mode 100644
index 0000000..6142ddd
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/UserStat.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/VendorStat.png b/enatega-multivendor-admin/src/assets/img/VendorStat.png
new file mode 100644
index 0000000..cd91ee0
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/VendorStat.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/bell.png b/enatega-multivendor-admin/src/assets/img/bell.png
new file mode 100644
index 0000000..d260be8
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/bell.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/brand/argon-react-white.png b/enatega-multivendor-admin/src/assets/img/brand/argon-react-white.png
new file mode 100644
index 0000000..bd4d91d
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/brand/argon-react-white.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/brand/argon-react.png b/enatega-multivendor-admin/src/assets/img/brand/argon-react.png
new file mode 100644
index 0000000..964fd56
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/brand/argon-react.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/brand/blue.png b/enatega-multivendor-admin/src/assets/img/brand/blue.png
new file mode 100644
index 0000000..88f515f
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/brand/blue.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/brand/favicon.png b/enatega-multivendor-admin/src/assets/img/brand/favicon.png
new file mode 100644
index 0000000..53997a0
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/brand/favicon.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/brand/logo.png b/enatega-multivendor-admin/src/assets/img/brand/logo.png
new file mode 100644
index 0000000..6bc6974
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/brand/logo.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/brand/white.png b/enatega-multivendor-admin/src/assets/img/brand/white.png
new file mode 100644
index 0000000..df2708f
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/brand/white.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/icons/common/github.svg b/enatega-multivendor-admin/src/assets/img/icons/common/github.svg
new file mode 100644
index 0000000..2227d5e
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/img/icons/common/github.svg
@@ -0,0 +1,12 @@
+
+
+
+ UI/icons/dark/github
+ Created with Sketch.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/enatega-multivendor-admin/src/assets/img/icons/common/google.svg b/enatega-multivendor-admin/src/assets/img/icons/common/google.svg
new file mode 100644
index 0000000..999a208
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/img/icons/common/google.svg
@@ -0,0 +1,17 @@
+
+
+
+ UI/icons/color/google
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/enatega-multivendor-admin/src/assets/img/loginBg.png b/enatega-multivendor-admin/src/assets/img/loginBg.png
new file mode 100644
index 0000000..6fe0cc0
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/loginBg.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/stats.png b/enatega-multivendor-admin/src/assets/img/stats.png
new file mode 100644
index 0000000..3220214
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/stats.png differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/angular.jpg b/enatega-multivendor-admin/src/assets/img/theme/angular.jpg
new file mode 100644
index 0000000..3fdc331
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/angular.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/bootstrap.jpg b/enatega-multivendor-admin/src/assets/img/theme/bootstrap.jpg
new file mode 100644
index 0000000..183db14
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/bootstrap.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/profile-cover.jpg b/enatega-multivendor-admin/src/assets/img/theme/profile-cover.jpg
new file mode 100644
index 0000000..7f58de1
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/profile-cover.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/react.jpg b/enatega-multivendor-admin/src/assets/img/theme/react.jpg
new file mode 100644
index 0000000..a05c8e6
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/react.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/sketch.jpg b/enatega-multivendor-admin/src/assets/img/theme/sketch.jpg
new file mode 100644
index 0000000..8486f4f
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/sketch.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/team-1-800x800.jpg b/enatega-multivendor-admin/src/assets/img/theme/team-1-800x800.jpg
new file mode 100644
index 0000000..7fb81de
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/team-1-800x800.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/team-2-800x800.jpg b/enatega-multivendor-admin/src/assets/img/theme/team-2-800x800.jpg
new file mode 100644
index 0000000..181e370
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/team-2-800x800.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/team-3-800x800.jpg b/enatega-multivendor-admin/src/assets/img/theme/team-3-800x800.jpg
new file mode 100644
index 0000000..0876acd
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/team-3-800x800.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/team-4-800x800.jpg b/enatega-multivendor-admin/src/assets/img/theme/team-4-800x800.jpg
new file mode 100644
index 0000000..8aa9ce2
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/team-4-800x800.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/img/theme/vue.jpg b/enatega-multivendor-admin/src/assets/img/theme/vue.jpg
new file mode 100644
index 0000000..9b5946e
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/img/theme/vue.jpg differ
diff --git a/enatega-multivendor-admin/src/assets/svg/addons.svg b/enatega-multivendor-admin/src/assets/svg/addons.svg
new file mode 100644
index 0000000..92db313
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/addons.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/back.svg b/enatega-multivendor-admin/src/assets/svg/back.svg
new file mode 100644
index 0000000..3850ebf
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/back.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/category.svg b/enatega-multivendor-admin/src/assets/svg/category.svg
new file mode 100644
index 0000000..43d97d4
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/category.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/commission.svg b/enatega-multivendor-admin/src/assets/svg/commission.svg
new file mode 100644
index 0000000..1981822
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/commission.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/configuration.svg b/enatega-multivendor-admin/src/assets/svg/configuration.svg
new file mode 100644
index 0000000..abea708
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/configuration.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/coupons.svg b/enatega-multivendor-admin/src/assets/svg/coupons.svg
new file mode 100644
index 0000000..7f26682
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/coupons.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/dashboard.svg b/enatega-multivendor-admin/src/assets/svg/dashboard.svg
new file mode 100644
index 0000000..96156d8
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/dashboard.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/delivery.svg b/enatega-multivendor-admin/src/assets/svg/delivery.svg
new file mode 100644
index 0000000..e43360b
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/delivery.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/food.svg b/enatega-multivendor-admin/src/assets/svg/food.svg
new file mode 100644
index 0000000..61f38a6
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/food.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/header.svg b/enatega-multivendor-admin/src/assets/svg/header.svg
new file mode 100644
index 0000000..4ba9766
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/header.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/header1.png b/enatega-multivendor-admin/src/assets/svg/header1.png
new file mode 100644
index 0000000..5f81969
Binary files /dev/null and b/enatega-multivendor-admin/src/assets/svg/header1.png differ
diff --git a/enatega-multivendor-admin/src/assets/svg/home.svg b/enatega-multivendor-admin/src/assets/svg/home.svg
new file mode 100644
index 0000000..838ceeb
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/home.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/location.svg b/enatega-multivendor-admin/src/assets/svg/location.svg
new file mode 100644
index 0000000..0d66a32
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/location.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/logo.svg b/enatega-multivendor-admin/src/assets/svg/logo.svg
new file mode 100644
index 0000000..009750d
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/logo.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/notifications.svg b/enatega-multivendor-admin/src/assets/svg/notifications.svg
new file mode 100644
index 0000000..a8d25e9
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/notifications.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/option.svg b/enatega-multivendor-admin/src/assets/svg/option.svg
new file mode 100644
index 0000000..fa4fe41
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/option.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/order.svg b/enatega-multivendor-admin/src/assets/svg/order.svg
new file mode 100644
index 0000000..2ec7519
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/order.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/payment.svg b/enatega-multivendor-admin/src/assets/svg/payment.svg
new file mode 100644
index 0000000..75da37c
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/payment.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/rating.svg b/enatega-multivendor-admin/src/assets/svg/rating.svg
new file mode 100644
index 0000000..879feab
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/rating.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/request.svg b/enatega-multivendor-admin/src/assets/svg/request.svg
new file mode 100644
index 0000000..0e86bff
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/request.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/restSection.svg b/enatega-multivendor-admin/src/assets/svg/restSection.svg
new file mode 100644
index 0000000..a30970a
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/restSection.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/restaurant.svg b/enatega-multivendor-admin/src/assets/svg/restaurant.svg
new file mode 100644
index 0000000..c6b4e88
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/restaurant.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/riders.svg b/enatega-multivendor-admin/src/assets/svg/riders.svg
new file mode 100644
index 0000000..72dc0ba
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/riders.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/CommisionRate.svg b/enatega-multivendor-admin/src/assets/svg/svg/CommisionRate.svg
new file mode 100644
index 0000000..e8352f6
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/CommisionRate.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Configuration.svg b/enatega-multivendor-admin/src/assets/svg/svg/Configuration.svg
new file mode 100644
index 0000000..e5dc416
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Configuration.svg
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Coupons.svg b/enatega-multivendor-admin/src/assets/svg/svg/Coupons.svg
new file mode 100644
index 0000000..d5d1ba1
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Coupons.svg
@@ -0,0 +1,565 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Dispatch.svg b/enatega-multivendor-admin/src/assets/svg/svg/Dispatch.svg
new file mode 100644
index 0000000..ad5bd03
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Dispatch.svg
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Home.svg b/enatega-multivendor-admin/src/assets/svg/svg/Home.svg
new file mode 100644
index 0000000..4df34cc
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Home.svg
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Notification.svg b/enatega-multivendor-admin/src/assets/svg/svg/Notification.svg
new file mode 100644
index 0000000..47bb5fc
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Notification.svg
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Request.svg b/enatega-multivendor-admin/src/assets/svg/svg/Request.svg
new file mode 100644
index 0000000..6e919c6
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Request.svg
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Restaurant.svg b/enatega-multivendor-admin/src/assets/svg/svg/Restaurant.svg
new file mode 100644
index 0000000..0dbc675
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Restaurant.svg
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/RestaurantSection.svg b/enatega-multivendor-admin/src/assets/svg/svg/RestaurantSection.svg
new file mode 100644
index 0000000..fcff06a
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/RestaurantSection.svg
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Rider.svg b/enatega-multivendor-admin/src/assets/svg/svg/Rider.svg
new file mode 100644
index 0000000..156767d
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Rider.svg
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Tipping.svg b/enatega-multivendor-admin/src/assets/svg/svg/Tipping.svg
new file mode 100644
index 0000000..fae4bbf
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Tipping.svg
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/User.svg b/enatega-multivendor-admin/src/assets/svg/svg/User.svg
new file mode 100644
index 0000000..2393f01
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/User.svg
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/Vendors.svg b/enatega-multivendor-admin/src/assets/svg/svg/Vendors.svg
new file mode 100644
index 0000000..ec17b96
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/Vendors.svg
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/svg/dashboard.svg b/enatega-multivendor-admin/src/assets/svg/svg/dashboard.svg
new file mode 100644
index 0000000..4df34cc
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/svg/dashboard.svg
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/timings.svg b/enatega-multivendor-admin/src/assets/svg/timings.svg
new file mode 100644
index 0000000..ad02434
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/timings.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/tipping.svg b/enatega-multivendor-admin/src/assets/svg/tipping.svg
new file mode 100644
index 0000000..f495430
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/tipping.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/user.svg b/enatega-multivendor-admin/src/assets/svg/user.svg
new file mode 100644
index 0000000..e855b21
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/user.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/vendor.svg b/enatega-multivendor-admin/src/assets/svg/vendor.svg
new file mode 100644
index 0000000..e5962cc
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/vendor.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/vendorsIcon.svg b/enatega-multivendor-admin/src/assets/svg/vendorsIcon.svg
new file mode 100644
index 0000000..c2bc8e8
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/vendorsIcon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/assets/svg/zones.svg b/enatega-multivendor-admin/src/assets/svg/zones.svg
new file mode 100644
index 0000000..9f58c84
--- /dev/null
+++ b/enatega-multivendor-admin/src/assets/svg/zones.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-admin/src/components/Addon/Addon.jsx b/enatega-multivendor-admin/src/components/Addon/Addon.jsx
new file mode 100644
index 0000000..ce6f806
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Addon/Addon.jsx
@@ -0,0 +1,466 @@
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { getRestaurantDetail, createAddons, editAddon } from '../../apollo'
+import OptionsComponent from '../Option/Option'
+import { validateFunc } from '../../constraints/constraints'
+import {
+ Box,
+ Typography,
+ Input,
+ Alert,
+ Modal,
+ Button,
+ Grid,
+ Checkbox,
+ FormControlLabel,
+ useTheme
+} from '@mui/material'
+import AddIcon from '@mui/icons-material/Add'
+import RemoveIcon from '@mui/icons-material/Remove'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+
+const GET_OPTIONS = gql`
+ ${getRestaurantDetail}
+`
+const CREATE_ADDONS = gql`
+ ${createAddons}
+`
+const EDIT_ADDON = gql`
+ ${editAddon}
+`
+
+function Addon(props) {
+ const theme = useTheme()
+ const { t } = props
+ const restaurantId = localStorage.getItem('restaurantId')
+ const onCompleted = ({ createAddons, editAddon }) => {
+ if (createAddons) {
+ addonSetter([
+ {
+ title: '',
+ description: '',
+ quantityMinimum: 0,
+ quantityMaximum: 1,
+ options: [],
+ titleError: false,
+ optionsError: false,
+ quantityMinimumError: false,
+ quantityMaximumError: false
+ }
+ ])
+ successSetter(t('Saved'))
+ mainErrorSetter('')
+ }
+ if (editAddon) {
+ successSetter(t('Saved'))
+ mainErrorSetter('')
+ }
+ setTimeout(onDismiss, 3000)
+ }
+ const onError = error => {
+ mainErrorSetter(` ${t('errorWhileSaving')} ${error}`)
+ successSetter('')
+ setTimeout(onDismiss, 3000)
+ }
+ const [addon, addonSetter] = useState(
+ props.addon
+ ? [
+ {
+ ...props.addon,
+ options: props.addon.options,
+ titleError: false,
+ optionsError: false,
+ quantityMinimumError: false,
+ quantityMaximumError: false
+ }
+ ]
+ : [
+ {
+ title: '',
+ description: '',
+ quantityMinimum: 0,
+ quantityMaximum: 1,
+ options: [],
+ titleError: false,
+ optionsError: false,
+ quantityMinimumError: false,
+ quantityMaximumError: false
+ }
+ ]
+ )
+ const [modal, modalSetter] = useState(false)
+ const [addonIndex, addonIndexSetter] = useState(0)
+ const [success, successSetter] = useState('')
+ const [mainError, mainErrorSetter] = useState('')
+
+ const onChange = (event, index, state) => {
+ const addons = addon
+ addons[index][state] = event.target.value
+ addonSetter([...addons])
+ }
+ const mutation = props.addon ? EDIT_ADDON : CREATE_ADDONS
+
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_OPTIONS,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ const [mutate, { loading }] = useMutation(mutation, { onError, onCompleted })
+ const onBlur = (index, state) => {
+ const addons = addon
+ if (state === 'title') {
+ addons[index].titleError = !!validateFunc(
+ { addonTitle: addons[index][state] },
+ 'addonTitle'
+ )
+ }
+ if (state === 'quantityMinimum') {
+ addons[index].quantityMinimumError = !!validateFunc(
+ { addonQuantityMinimum: addons[index][state] },
+ 'addonQuantityMinimum'
+ )
+ addons[index].quantityMinimumError =
+ addons[index].quantityMinimumError ||
+ addons[index].quantityMinimum > addons[index].quantityMaximum
+ addons[index].quantityMinimumError =
+ addons[index].options.length < addons[index][state]
+ }
+ if (state === 'quantityMaximum') {
+ addons[index].quantityMaximumError = !!validateFunc(
+ { addonQuantityMaximum: addons[index][state] },
+ 'addonQuantityMaximum'
+ )
+ addons[index].quantityMaximumError =
+ addons[index].quantityMaximumError ||
+ addons[index].quantityMaximum < addons[index].quantityMinimum
+ }
+ if (state === 'options') {
+ addons[index].optionsError = addons[index].options.length === 0
+ }
+ addonSetter([...addons])
+ }
+ const onSelectOption = (index, id) => {
+ const addons = addon
+ const option = addons[index].options.indexOf(id)
+ if (option < 0) addons[index].options.push(id)
+ else addons[index].options.splice(option, 1)
+ addonSetter([...addons])
+ }
+ const updateOptions = ids => {
+ const addons = addon
+ addons[addonIndex].options = addons[addonIndex].options.concat(ids)
+ addonSetter([...addons])
+ }
+ const onAdd = index => {
+ const addons = addon
+ if (index === addons.length - 1) {
+ addons.push({
+ title: '',
+ description: '',
+ quantityMinimum: 0,
+ quantityMaximum: 1,
+ options: []
+ })
+ } else {
+ addons.splice(index + 1, 0, {
+ title: '',
+ description: '',
+ quantityMinimum: 0,
+ quantityMaximum: 1,
+ options: []
+ })
+ }
+ addonSetter([...addons])
+ }
+ const onRemove = index => {
+ if (addon.length === 1 && index === 0) {
+ return
+ }
+ const addons = addon
+ addons.splice(index, 1)
+ addonSetter([...addons])
+ }
+ const toggleModal = index => {
+ modalSetter(prev => !prev)
+ addonIndexSetter(index)
+ }
+ const validate = () => {
+ const addons = addon
+ addons.map((addon, index) => {
+ onBlur(index, 'title')
+ onBlur(index, 'description')
+ onBlur(index, 'quantityMinimum')
+ onBlur(index, 'quantityMaximum')
+ onBlur(index, 'options')
+ return addon
+ })
+ const error = addons.filter(
+ addon =>
+ addon.titleError ||
+ addon.quantityMinimumError ||
+ addon.quantityMaximumError ||
+ addon.optionsError
+ )
+ if (!error.length) return true
+ return false
+ }
+
+ const onDismiss = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+
+
+
+ {t('Addons')}
+
+
+
+
+
+ {addon.map((addonItem, index) => (
+
+
+ {t('AddRemoveAddon')}
+ {
+ onRemove(index)
+ }}
+ />
+ {
+ onAdd(index)
+ }}
+ />
+
+ {t('Title')}
+ {
+ onChange(event, index, 'title')
+ }}
+ disableUnderline
+ className={[
+ globalClasses.input,
+ addonItem.titleError === true ? globalClasses.inputError : ''
+ ]}
+ />
+
+ {t('Description')}
+
+ {
+ onChange(event, index, 'description')
+ }}
+ disableUnderline
+ className={[
+ globalClasses.input,
+ addonItem.descriptionError === true
+ ? globalClasses.inputError
+ : ''
+ ]}
+ />
+
+ {t('MinQuantity')}
+
+ {
+ onChange(event, index, 'quantityMinimum')
+ }}
+ disableUnderline
+ className={[
+ globalClasses.input,
+ addonItem.quantityMinimumError === true
+ ? globalClasses.inputError
+ : ''
+ ]}
+ />
+
+ {t('MaxQuantity')}
+
+ {
+ onChange(event, index, 'quantityMaximum')
+ }}
+ disableUnderline
+ className={[
+ globalClasses.input,
+ addonItem.quantityMaximumError === true
+ ? globalClasses.inputError
+ : ''
+ ]}
+ />
+
+
+
+
+ {t('Options')}
+
+
+
+
+
+ {loadingQuery ? Loading ... : null}
+ {errorQuery ? (
+
+ Error! {errorQuery.message}
+
+ ) : null}
+ {data &&
+ data.restaurant.options.map(option => (
+
+ onSelectOption(index, option._id)}
+ />
+ }
+ label={`${option.title} (Description: ${option.description})(Price: ${option.price})`}
+ />
+
+ ))}
+
+ toggleModal(index)}>
+ {t('NewOption')}
+
+
+
+ ))}
+
+ {
+ if (validate()) {
+ props.addon
+ ? mutate({
+ variables: {
+ addonInput: {
+ addons: {
+ _id: props.addon._id,
+ title: addon[0].title,
+ description: addon[0].description,
+ options: addon[0].options,
+ quantityMinimum: +addon[0].quantityMinimum,
+ quantityMaximum: +addon[0].quantityMaximum
+ },
+ restaurant: restaurantId
+ }
+ }
+ })
+ : mutate({
+ variables: {
+ addonInput: {
+ addons: addon.map(
+ ({
+ title,
+ description,
+ options,
+ quantityMinimum,
+ quantityMaximum
+ }) => ({
+ title,
+ description,
+ options,
+ quantityMinimum: +quantityMinimum,
+ quantityMaximum: +quantityMaximum
+ })
+ ),
+ restaurant: restaurantId
+ }
+ }
+ })
+ // Close the modal after 3 seconds by calling the parent's onClose callback
+ setTimeout(() => {
+ props.onClose() // Close the modal
+ }, 4000)
+ }
+ }}>
+ {t('Save')}
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+ {
+ toggleModal()
+ }}>
+
+
+
+ )
+}
+export default withTranslation()(Addon)
diff --git a/enatega-multivendor-admin/src/components/Addon/styles.js b/enatega-multivendor-admin/src/components/Addon/styles.js
new file mode 100644
index 0000000..c6e71c0
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Addon/styles.js
@@ -0,0 +1,65 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ width60: {
+ width: '65%',
+ alignSelf: 'center'
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main3,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ text: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ button: {
+ backgroundColor: theme.palette.common.black,
+ height: 35,
+ borderRadius: 15,
+ color: theme.palette.primary.main2,
+ fontWeight: 'bold',
+ border: 'none',
+ margin: '20px 0 20px 0',
+ '&:hover': {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.common.white
+ }
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Alert/index.jsx b/enatega-multivendor-admin/src/components/Alert/index.jsx
new file mode 100644
index 0000000..4c2119e
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Alert/index.jsx
@@ -0,0 +1,23 @@
+import React from 'react'
+import Alert from '@material-ui/lab/Alert'
+
+const styles = {
+ alert: {
+ left: '0',
+ pointerEvents: 'none',
+ position: 'fixed',
+ top: 0,
+ width: '100%',
+ zIndex: '1500'
+ }
+}
+
+const AlertMessage = props => {
+ return (
+
+ {props.message}
+
+ )
+}
+
+export default AlertMessage
diff --git a/enatega-multivendor-admin/src/components/Category/Category.jsx b/enatega-multivendor-admin/src/components/Category/Category.jsx
new file mode 100644
index 0000000..86fb88f
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Category/Category.jsx
@@ -0,0 +1,128 @@
+import React, { useState } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+
+import { Box, Typography, Input, Button, Alert } from '@mui/material'
+
+import { editCategory, createCategory } from '../../apollo'
+import useGlobalStyles from '../../utils/globalStyles'
+import useStyles from '../styles'
+
+const CREATE_CATEGORY = gql`
+ ${createCategory}
+`
+const EDIT_CATEGORY = gql`
+ ${editCategory}
+`
+
+function Category(props) {
+ const mutation = props.category ? EDIT_CATEGORY : CREATE_CATEGORY
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [category, setCategory] = useState(
+ props.category ? props.category.title : ''
+ )
+ const restaurantId = localStorage.getItem('restaurantId')
+ const onCompleted = data => {
+ const message = props.category
+ ? t('CategoryUpdatedSuccessfully')
+ : t('CategoryAddedSuccessfully')
+ successSetter(message)
+ mainErrorSetter('')
+ setCategory('')
+ setTimeout(hideAlert, 3000)
+ }
+ const onError = error => {
+ const message = `${t('ActionFailedTryAgain')} ${error}`
+ successSetter('')
+ mainErrorSetter(message)
+ setTimeout(hideAlert, 3000)
+ }
+ const [mutate, { loading }] = useMutation(mutation, { onError, onCompleted })
+ const hideAlert = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+ const { t } = props
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {props.category ? t('Edit Category') : t('Add Category')}
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(Category)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Amplitude/Amplitude.jsx b/enatega-multivendor-admin/src/components/Configuration/Amplitude/Amplitude.jsx
new file mode 100644
index 0000000..879214b
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Amplitude/Amplitude.jsx
@@ -0,0 +1,150 @@
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveAmplitudeApiKeyConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_AMPLITUDE_API_KEY_CONFIGURATION = gql`
+ ${saveAmplitudeApiKeyConfiguration}
+`
+
+function AmplitudeApiKeyConfiguration(props) {
+ const formRef = useRef()
+ const [webAmplitudeApiKey] = useState(props.webAmplitudeApiKey || '')
+ const [appAmplitudeApiKey] = useState(props.appAmplitudeApiKey || '')
+
+ const [webAmplitudeApiKeyError, setWebAmplitudeApiKeyError] = useState(null)
+ const [appAmplitudeApiKeyError, setAppAmplitudeApiKeyError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(
+ SAVE_AMPLITUDE_API_KEY_CONFIGURATION
+ )
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let webAmplitudeApiKeyResult = true
+ let appAmplitudeApiKeyResult = true
+
+ webAmplitudeApiKeyResult = !validateFunc(
+ { webAmplitudeApiKey: formRef.current['input-webAmplitudeApiKey'].value },
+ 'webAmplitudeApiKey'
+ )
+ appAmplitudeApiKeyResult = !validateFunc(
+ { appAmplitudeApiKey: formRef.current['input-appAmplitudeApiKey'].value },
+ 'appAmplitudeApiKey'
+ )
+
+ setWebAmplitudeApiKeyError(webAmplitudeApiKeyResult)
+ setAppAmplitudeApiKeyError(appAmplitudeApiKeyResult)
+
+ return webAmplitudeApiKeyResult && appAmplitudeApiKeyResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Amplitude API Key
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(AmplitudeApiKeyConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/App/App.jsx b/enatega-multivendor-admin/src/components/Configuration/App/App.jsx
new file mode 100644
index 0000000..5070b90
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/App/App.jsx
@@ -0,0 +1,187 @@
+// AppConfigurations.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveAppConfiguration } from '../../../apollo' // Update with the correct import path
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_APP_CONFIGURATION = gql`
+ ${saveAppConfiguration}
+`
+
+function AppConfigurations(props) {
+ const formRef = useRef()
+
+ const [termsAndConditions] = useState(props.termsAndConditions || '')
+ const [privacyPolicy] = useState(props.privacyPolicy || '')
+ const [testOtp] = useState(props.testOtp || '')
+
+ const [termsAndConditionsError, setTermsAndConditionsError] = useState(null)
+ const [privacyPolicyError, setPrivacyPolicyError] = useState(null)
+ const [testOtpError, setTestOtpError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_APP_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let termsAndConditionsResult = true
+ let privacyPolicyResult = true
+ let testOtpResult = true
+
+ termsAndConditionsResult = !validateFunc(
+ { termsAndConditions: formRef.current['input-termsAndConditions'].value },
+ 'termsAndConditions'
+ )
+ privacyPolicyResult = !validateFunc(
+ { privacyPolicy: formRef.current['input-privacyPolicy'].value },
+ 'privacyPolicy'
+ )
+ testOtpResult = !validateFunc(
+ { testOtp: formRef.current['input-testOtp'].value },
+ 'testOtp'
+ )
+
+ setTermsAndConditionsError(termsAndConditionsResult)
+ setPrivacyPolicyError(privacyPolicyResult)
+ setTestOtpError(testOtpResult)
+
+ return termsAndConditionsResult && privacyPolicyResult && testOtpResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ APP Configuration
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(AppConfigurations)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Cloudinary/Cloudinary.jsx b/enatega-multivendor-admin/src/components/Configuration/Cloudinary/Cloudinary.jsx
new file mode 100644
index 0000000..e06f4bc
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Cloudinary/Cloudinary.jsx
@@ -0,0 +1,153 @@
+// CloudinaryConfiguration.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveCloudinaryConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_CLOUDINARY_CONFIGURATION = gql`
+ ${saveCloudinaryConfiguration}
+`
+
+function CloudinaryConfiguration(props) {
+ const formRef = useRef()
+
+ const [cloudinaryUploadUrl] = useState(props.cloudinaryUploadUrl || '')
+ const [cloudinaryApiKey] = useState(props.cloudinaryApiKey || '')
+
+ const [cloudinaryUploadUrlError, setCloudinaryUploadUrlError] = useState(null)
+ const [cloudinaryApiKeyError, setCloudinaryApiKeyError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_CLOUDINARY_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let cloudinaryUploadUrlResult = true
+ let cloudinaryApiKeyResult = true
+
+ cloudinaryUploadUrlResult = !validateFunc(
+ {
+ cloudinaryUploadUrl: formRef.current['input-cloudinaryUploadUrl'].value
+ },
+ 'cloudinaryUploadUrl'
+ )
+ cloudinaryApiKeyResult = !validateFunc(
+ { cloudinaryApiKey: formRef.current['input-cloudinaryApiKey'].value },
+ 'cloudinaryApiKey'
+ )
+
+ setCloudinaryUploadUrlError(cloudinaryUploadUrlResult)
+ setCloudinaryApiKeyError(cloudinaryApiKeyResult)
+
+ return cloudinaryUploadUrlResult && cloudinaryApiKeyResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Cloudinary
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(CloudinaryConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Currency/Currency.jsx b/enatega-multivendor-admin/src/components/Configuration/Currency/Currency.jsx
new file mode 100644
index 0000000..8e1e904
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Currency/Currency.jsx
@@ -0,0 +1,198 @@
+import React, { useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { stripeCurrencies } from '../../../config/currencies'
+import { saveCurrencyConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Button, Select, MenuItem, Alert } from '@mui/material'
+
+const SAVE_CURRENCY_CONFIGURATION = gql`
+ ${saveCurrencyConfiguration}
+`
+
+function Currency(props) {
+ const { t } = props
+ const [currencyCode, currencyCodeSetter] = useState(props.currencyCode || '')
+ const [currencySymbol, currencySymbolSetter] = useState(
+ props.currencySymbol || ''
+ )
+ const onCompleted = data => {
+ console.log(data)
+ }
+ const onError = error => {
+ console.log(error)
+ }
+ const [currencyCodeError, currencyCodeErrorSetter] = useState(null)
+ const [currencySymbolError, currencySymbolErrorSetter] = useState(null)
+ const [mutate, { loading }] = useMutation(SAVE_CURRENCY_CONFIGURATION, {
+ onError,
+ onCompleted
+ })
+
+ const validateInput = () => {
+ const currencyCodeError = !validateFunc(
+ { currencyCode: currencyCode },
+ 'currencyCode'
+ )
+ const currencySymbolError = !validateFunc(
+ { currencySymbol: currencySymbol },
+ 'currencySymbol'
+ )
+ currencyCodeErrorSetter(currencyCodeError)
+ currencySymbolErrorSetter(currencySymbolError)
+ return currencyCodeError && currencySymbolError
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ const [successMessage, setSuccessMessage] = useState('')
+ const handleSuccess = message => {
+ setSuccessMessage(message)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setSuccessMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [successMessage, setSuccessMessage])
+ const [errorMessage, setErrorMessage] = useState('')
+ const handleError = error => {
+ setErrorMessage('An error occurred while saving configuration.')
+ console.error('Mutation error:', error)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setErrorMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [errorMessage, setErrorMessage])
+
+ return (
+
+
+
+
+ {t('Currency')}
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(Currency)
diff --git a/enatega-multivendor-admin/src/components/Configuration/DeliveryRate/DeliveryRate.jsx b/enatega-multivendor-admin/src/components/Configuration/DeliveryRate/DeliveryRate.jsx
new file mode 100644
index 0000000..63b6814
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/DeliveryRate/DeliveryRate.jsx
@@ -0,0 +1,143 @@
+import React, { useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveDeliveryRateConfiguration } from '../../../apollo'
+import { Box, Typography, Input, Button, Alert } from '@mui/material'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+const SAVE_DELIVERY_RATE_CONFIGURATION = gql`
+ ${saveDeliveryRateConfiguration}
+`
+
+function Currency(props) {
+ const { t } = props
+ const [deliveryRate, setDeliveryRate] = useState(props.deliveryRate || 0)
+
+ const [deliveryRateError, setDeliveryRateError] = useState(null)
+ const [mutate, { loading }] = useMutation(SAVE_DELIVERY_RATE_CONFIGURATION)
+
+ const validateInput = () => {
+ const deliveryRateErrors = !validateFunc(
+ { deliveryRate: deliveryRate },
+ 'deliveryRate'
+ )
+
+ setDeliveryRateError(deliveryRateErrors)
+ return deliveryRateErrors
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ const [successMessage, setSuccessMessage] = useState('')
+ const handleSuccess = message => {
+ setSuccessMessage(message)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setSuccessMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [successMessage, setSuccessMessage])
+ const [errorMessage, setErrorMessage] = useState('')
+ const handleError = error => {
+ setErrorMessage('An error occurred while saving configuration.')
+ console.error('Mutation error:', error)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setErrorMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [errorMessage, setErrorMessage])
+
+ return (
+
+
+
+
+ {t('Delivery Rate')}
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(Currency)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Email/Email.jsx b/enatega-multivendor-admin/src/components/Configuration/Email/Email.jsx
new file mode 100644
index 0000000..3050f8f
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Email/Email.jsx
@@ -0,0 +1,264 @@
+import React, { useRef, useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveEmailConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import {
+ Box,
+ Switch,
+ Typography,
+ Input,
+ Button,
+ Grid,
+ Alert,
+ Checkbox
+} from '@mui/material'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+const SAVE_EMAIL_CONFIGURATION = gql`
+ ${saveEmailConfiguration}
+`
+
+function Email(props) {
+ const { t } = props
+ const formRef = useRef()
+ const email = props.email || ''
+ const password = props.password || ''
+ const emailName = props.emailName || ''
+ const [emailError, emailErrorSetter] = useState(null)
+ const [passwordError, passwordErrorSetter] = useState(null)
+ const [emailNameError, emailNameErrorSetter] = useState(null)
+ const [enableEmail, setEnabaleEmail] = useState(!!props.enabled)
+ const [showPassword, setShowPassword] = useState(false)
+ //const [isEndAdornmentEnabled, setIsEndAdornmentEnabled] = useState(false);
+ const [mutate, { loading }] = useMutation(SAVE_EMAIL_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const validateInput = () => {
+ let emailResult = true
+ let passwordResult = true
+ let emailNameResult = true
+ emailResult = !validateFunc(
+ { email: formRef.current['input-email'].value },
+ 'email'
+ )
+ emailNameResult = !validateFunc(
+ { email: formRef.current['input-emailName'].value },
+ 'emailName'
+ )
+ passwordResult = !validateFunc(
+ { password: formRef.current['input-password'].value },
+ 'password'
+ )
+ emailErrorSetter(emailResult)
+ passwordErrorSetter(passwordResult)
+ emailNameErrorSetter(emailNameResult)
+ return emailResult && passwordResult && emailNameResult
+ }
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ const [successMessage, setSuccessMessage] = useState('')
+ const handleSuccess = message => {
+ setSuccessMessage(message)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setSuccessMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [successMessage, setSuccessMessage])
+ const [errorMessage, setErrorMessage] = useState('')
+ const handleError = error => {
+ setErrorMessage('An error occurred while saving configuration.')
+ console.error('Mutation error:', error)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setErrorMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [errorMessage, setErrorMessage])
+
+ return (
+
+
+
+
+ NodeMailer Email
+
+
+
+ {enableEmail ? t('Disable') : t('Enable')}
+ setEnabaleEmail(e.target.checked)}
+ id="input-available"
+ name="input-available"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+
+
+ )
+}
+export default withTranslation()(Email)
diff --git a/enatega-multivendor-admin/src/components/Configuration/FireBase/FireBase.jsx b/enatega-multivendor-admin/src/components/Configuration/FireBase/FireBase.jsx
new file mode 100644
index 0000000..c5d713f
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/FireBase/FireBase.jsx
@@ -0,0 +1,322 @@
+// FirebaseConfiguration.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveFirebaseConfiguration } from '../../../apollo' // Assuming you have a corresponding Apollo mutation
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_FIREBASE_CONFIGURATION = gql`
+ ${saveFirebaseConfiguration}
+`
+
+function FirebaseConfiguration(props) {
+ const formRef = useRef()
+ const [firebaseKey] = useState(props.firebaseKey || '')
+ const [authDomain] = useState(props.authDomain || '')
+ const [projectId] = useState(props.projectId || '')
+ const [storageBucket] = useState(props.storageBucket || '')
+ const [msgSenderId] = useState(props.msgSenderId || '')
+ const [appId] = useState(props.appId || '')
+ const [measurementId] = useState(props.measurementId || '')
+
+ const [firebaseKeyError, setFirebaseKeyError] = useState(null)
+ const [authDomainError, setAuthDomainError] = useState(null)
+ const [projectIdError, setProjectIdError] = useState(null)
+ const [storageBucketError, setStorageBucketError] = useState(null)
+ const [msgSenderIdError, setMsgSenderIdError] = useState(null)
+ const [appIdError, setAppIdError] = useState(null)
+ const [measurementIdError, setMeasurementIdError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_FIREBASE_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let firebaseKeyResult = true
+ let authDomainResult = true
+ let projectIdResult = true
+ let storageBucketResult = true
+ let msgSenderIdResult = true
+ let appIdResult = true
+ let measurementIdResult = true
+
+ firebaseKeyResult = !validateFunc(
+ { firebaseKey: formRef.current['input-firebaseKey'].value },
+ 'firebaseKey'
+ )
+ authDomainResult = !validateFunc(
+ { authDomain: formRef.current['input-authDomain'].value },
+ 'authDomain'
+ )
+ projectIdResult = !validateFunc(
+ { projectId: formRef.current['input-projectId'].value },
+ 'projectId'
+ )
+ storageBucketResult = !validateFunc(
+ { storageBucket: formRef.current['input-storageBucket'].value },
+ 'storageBucket'
+ )
+ msgSenderIdResult = !validateFunc(
+ { msgSenderId: formRef.current['input-msgSenderId'].value },
+ 'msgSenderId'
+ )
+ appIdResult = !validateFunc(
+ { appId: formRef.current['input-appId'].value },
+ 'appId'
+ )
+ measurementIdResult = !validateFunc(
+ { measurementId: formRef.current['input-measurementId'].value },
+ 'measurementId'
+ )
+
+ setFirebaseKeyError(firebaseKeyResult)
+ setAuthDomainError(authDomainResult)
+ setProjectIdError(projectIdResult)
+ setStorageBucketError(storageBucketResult)
+ setMsgSenderIdError(msgSenderIdResult)
+ setAppIdError(appIdResult)
+ setMeasurementIdError(measurementIdResult)
+
+ return (
+ firebaseKeyResult &&
+ authDomainResult &&
+ projectIdResult &&
+ storageBucketResult &&
+ msgSenderIdResult &&
+ appIdResult &&
+ measurementIdResult
+ )
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ FireBase Admin
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(FirebaseConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/FormEmail/FormEmail.js b/enatega-multivendor-admin/src/components/Configuration/FormEmail/FormEmail.js
new file mode 100644
index 0000000..c61d288
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/FormEmail/FormEmail.js
@@ -0,0 +1,104 @@
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveFormEmailConfiguration } from '../../../apollo'
+import { Box, Typography, Input, Button, CircularProgress } from '@mui/material'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+
+const SAVE_EMAIL_CONFIGURATION = gql`
+ ${saveFormEmailConfiguration}
+`
+
+function EmailConfiguration(props) {
+ const formRef = useRef()
+ const [email, setEmail] = useState(props.formEmail || '')
+ const [emailError, setEmailError] = useState(null)
+ const [mutate, { loading }] = useMutation(SAVE_EMAIL_CONFIGURATION)
+
+ const validateInput = () => {
+ const emailErrors = !validateFunc({ email: email }, 'email')
+
+ setEmailError(emailErrors)
+ return emailErrors
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Form Submission Email
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(EmailConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/GoogleApi/GoogleApi.jsx b/enatega-multivendor-admin/src/components/Configuration/GoogleApi/GoogleApi.jsx
new file mode 100644
index 0000000..57ca0d5
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/GoogleApi/GoogleApi.jsx
@@ -0,0 +1,108 @@
+// GoogleApiKeyConfiguration.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveGoogleApiKeyConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_GOOGLE_API_KEY_CONFIGURATION = gql`
+ ${saveGoogleApiKeyConfiguration}
+`
+
+function GoogleApiKeyConfiguration(props) {
+ const formRef = useRef()
+
+ const [googleApiKey] = useState(props.googleApiKey || '')
+
+ const [googleApiKeyError, setGoogleApiKeyError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_GOOGLE_API_KEY_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let googleApiKeyResult = true
+
+ googleApiKeyResult = !validateFunc(
+ { googleApiKey: formRef.current['input-googleApiKey'].value },
+ 'googleApiKey'
+ )
+
+ setGoogleApiKeyError(googleApiKeyResult)
+
+ return googleApiKeyResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Google API Key
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(GoogleApiKeyConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/GoogleClient/GoogleClient.jsx b/enatega-multivendor-admin/src/components/Configuration/GoogleClient/GoogleClient.jsx
new file mode 100644
index 0000000..b11418c
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/GoogleClient/GoogleClient.jsx
@@ -0,0 +1,218 @@
+// GoogleClientIDConfiguration.jsx
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveGoogleClientIDConfiguration } from '../../../apollo' // Update with the correct import path
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_GOOGLE_CLIENT_ID_CONFIGURATION = gql`
+ ${saveGoogleClientIDConfiguration}
+`
+
+function GoogleClientIDConfiguration(props) {
+ const formRef = useRef()
+ const [webClientID] = useState(props.webClientID || '')
+ const [androidClientID] = useState(props.androidClientID || '')
+ const [iOSClientID] = useState(props.iOSClientID || '')
+ const [expoClientID] = useState(props.expoClientID || '')
+
+ const [webClientIDError, setWebClientIDError] = useState(null)
+ const [androidClientIDError, setAndroidClientIDError] = useState(null)
+ const [iOSClientIDError, setIOSClientIDError] = useState(null)
+ const [expoClientIDError, setExpoClientIDError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_GOOGLE_CLIENT_ID_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let webClientIDResult = true
+ let androidClientIDResult = true
+ let iOSClientIDResult = true
+ let expoClientIDResult = true
+
+ webClientIDResult = !validateFunc(
+ { webClientID: formRef.current['input-webClientID'].value },
+ 'webClientID'
+ )
+ androidClientIDResult = !validateFunc(
+ { androidClientID: formRef.current['input-androidClientID'].value },
+ 'androidClientID'
+ )
+ iOSClientIDResult = !validateFunc(
+ { iOSClientID: formRef.current['input-iOSClientID'].value },
+ 'iOSClientID'
+ )
+ expoClientIDResult = !validateFunc(
+ { expoClientID: formRef.current['input-expoClientID'].value },
+ 'expoClientID'
+ )
+
+ setWebClientIDError(webClientIDResult)
+ setAndroidClientIDError(androidClientIDResult)
+ setIOSClientIDError(iOSClientIDResult)
+ setExpoClientIDError(expoClientIDResult)
+
+ return (
+ webClientIDResult &&
+ androidClientIDResult &&
+ iOSClientIDResult &&
+ expoClientIDResult
+ )
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Google Client IDs
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(GoogleClientIDConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Paypal/Paypal.jsx b/enatega-multivendor-admin/src/components/Configuration/Paypal/Paypal.jsx
new file mode 100644
index 0000000..ea84c80
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Paypal/Paypal.jsx
@@ -0,0 +1,192 @@
+import React, { useRef, useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { savePaypalConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Switch, Typography, Input, Button, Alert } from '@mui/material'
+
+const SAVE_PAYPAL_CONFIGURATION = gql`
+ ${savePaypalConfiguration}
+`
+
+function Paypal(props) {
+ const { t } = props
+ const formRef = useRef()
+ const clientId = props.clientId || ''
+ const clientSecret = props.clientSecret || ''
+ const [clientIdError, clientIdErrorSetter] = useState(null)
+ const [sandbox, setSandbox] = useState(!!props.sandbox)
+ const [clientSecretError, clientSecretErrorSetter] = useState(null)
+ const [mutate, { loading }] = useMutation(SAVE_PAYPAL_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const validateInput = () => {
+ let clientIdResult = true
+ let clientSecretResult = true
+ clientIdResult = !!formRef.current['input-clientid'].value
+ clientSecretResult = !!formRef.current['input-clientsecret'].value
+ clientIdErrorSetter(clientIdResult)
+ clientIdErrorSetter(clientSecretResult)
+ return clientIdResult && clientSecretResult
+ }
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ const [successMessage, setSuccessMessage] = useState('')
+ const handleSuccess = message => {
+ setSuccessMessage(message)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setSuccessMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [successMessage, setSuccessMessage])
+ const [errorMessage, setErrorMessage] = useState('')
+ const handleError = error => {
+ setErrorMessage('An error occurred while saving configuration.')
+ console.error('Mutation error:', error)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setErrorMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [errorMessage, setErrorMessage])
+
+ return (
+
+
+
+
+ {t('Paypal')}
+
+
+
+ {t('Sandbox')}
+ setSandbox(e.target.checked)}
+ id="input-sandbox"
+ name="input-sandbox"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(Paypal)
diff --git a/enatega-multivendor-admin/src/components/Configuration/SendGrid/SendGrid.js b/enatega-multivendor-admin/src/components/Configuration/SendGrid/SendGrid.js
new file mode 100644
index 0000000..4e3409f
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/SendGrid/SendGrid.js
@@ -0,0 +1,255 @@
+// SendGridConfiguration.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveSendGridApiKey } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Switch, Typography, Input, Button, Grid } from '@mui/material'
+
+const SAVE_SENDGRID_API_KEY = gql`
+ ${saveSendGridApiKey}
+`
+
+function SendGridConfiguration(props) {
+ const formRef = useRef()
+ const [sendGridEnabled, setSendGridEnabled] = useState(
+ !!props.sendGridEnabled
+ )
+ const [sendGridApiKey] = useState(props.sendGridApiKey || '')
+ const [apiKeyError, setApiKeyError] = useState(null)
+ const [sendGridEmail] = useState(props.sendGridEmail || '')
+ const [sendGridEmailError, setSendGridEmailError] = useState(null)
+ const [sendGridEmailName] = useState(props.sendGridEmailName || '')
+ const [sendGridEmailNameError, setSendGridEmailNameError] = useState(null)
+ const [sendGridPassword] = useState(props.sendGridPassword || '')
+ const [sendGridPasswordError, setSendGridPasswordError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_SENDGRID_API_KEY)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const onBlurEmail = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const onBlurEmailName = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const onBlurPassword = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let apiKeyResult = true
+ let emailResult = true
+ let emailNameResult = true
+ let passwordResult = true
+
+ apiKeyResult = !validateFunc(
+ { sendGridApiKey: formRef.current['input-apiKey'].value },
+ 'sendGridApiKey'
+ )
+ emailResult = !validateFunc(
+ { sendGridEmail: formRef.current['input-sendGridEmail'].value },
+ 'sendGridEmail'
+ )
+ emailNameResult = !validateFunc(
+ { sendGridEmailName: formRef.current['input-sendGridEmailName'].value },
+ 'sendGridEmailName'
+ )
+ passwordResult = !validateFunc(
+ { sendGridPassword: formRef.current['input-sendGridPassword'].value },
+ 'sendGridPassword'
+ )
+
+ setApiKeyError(apiKeyResult)
+ setSendGridEmailError(emailResult)
+ setSendGridEmailNameError(emailNameResult)
+ setSendGridPasswordError(passwordResult)
+
+ return apiKeyResult && emailResult && emailNameResult && passwordResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ SendGrid
+
+
+
+ {sendGridEnabled ? 'Disable' : 'Enable'}
+ setSendGridEnabled(e.target.checked)}
+ id="input-sendGridEnabled"
+ name="input-sendGridEnabled"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(SendGridConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Sentry/Sentry.jsx b/enatega-multivendor-admin/src/components/Configuration/Sentry/Sentry.jsx
new file mode 100644
index 0000000..bf18061
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Sentry/Sentry.jsx
@@ -0,0 +1,329 @@
+// SentryConfiguration.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveSentryConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_SENTRY_CONFIGURATION = gql`
+ ${saveSentryConfiguration}
+`
+
+function SentryConfiguration(props) {
+ const formRef = useRef()
+
+ const [dashboardSentryUrl] = useState(props.dashboardSentryUrl || '')
+ const [webSentryUrl] = useState(props.webSentryUrl || '')
+ const [apiSentryUrl] = useState(props.apiSentryUrl || '')
+ const [customerAppSentryUrl] = useState(props.customerAppSentryUrl || '')
+ const [restaurantAppSentryUrl] = useState(props.restaurantAppSentryUrl || '')
+ const [riderAppSentryUrl] = useState(props.riderAppSentryUrl || '')
+
+ const [dashboardSentryUrlError, setDashboardSentryUrlError] = useState(null)
+ const [webSentryUrlError, setWebSentryUrlError] = useState(null)
+ const [apiSentryUrlError, setApiSentryUrlError] = useState(null)
+ const [customerAppSentryUrlError, setCustomerAppSentryUrlError] = useState(
+ null
+ )
+ const [
+ restaurantAppSentryUrlError,
+ setRestaurantAppSentryUrlError
+ ] = useState(null)
+ const [riderAppSentryUrlError, setRiderAppSentryUrlError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_SENTRY_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let dashboardSentryUrlResult = true
+ let webSentryUrlResult = true
+ let apiSentryUrlResult = true
+ let customerAppSentryUrlResult = true
+ let restaurantAppSentryUrlResult = true
+ let riderAppSentryUrlResult = true
+
+ dashboardSentryUrlResult = !validateFunc(
+ { dashboardSentryUrl: formRef.current['input-dashboardSentryUrl'].value },
+ 'dashboardSentryUrl'
+ )
+ webSentryUrlResult = !validateFunc(
+ { webSentryUrl: formRef.current['input-webSentryUrl'].value },
+ 'webSentryUrl'
+ )
+ apiSentryUrlResult = !validateFunc(
+ { apiSentryUrl: formRef.current['input-apiSentryUrl'].value },
+ 'apiSentryUrl'
+ )
+ customerAppSentryUrlResult = !validateFunc(
+ {
+ customerAppSentryUrl:
+ formRef.current['input-customerAppSentryUrl'].value
+ },
+ 'customerAppSentryUrl'
+ )
+ restaurantAppSentryUrlResult = !validateFunc(
+ {
+ restaurantAppSentryUrl:
+ formRef.current['input-restaurantAppSentryUrl'].value
+ },
+ 'restaurantAppSentryUrl'
+ )
+ riderAppSentryUrlResult = !validateFunc(
+ { riderAppSentryUrl: formRef.current['input-riderAppSentryUrl'].value },
+ 'riderAppSentryUrl'
+ )
+
+ setDashboardSentryUrlError(dashboardSentryUrlResult)
+ setWebSentryUrlError(webSentryUrlResult)
+ setApiSentryUrlError(apiSentryUrlResult)
+ setCustomerAppSentryUrlError(customerAppSentryUrlResult)
+ setRestaurantAppSentryUrlError(restaurantAppSentryUrlResult)
+ setRiderAppSentryUrlError(riderAppSentryUrlResult)
+
+ return (
+ dashboardSentryUrlResult &&
+ webSentryUrlResult &&
+ apiSentryUrlResult &&
+ customerAppSentryUrlResult &&
+ restaurantAppSentryUrlResult &&
+ riderAppSentryUrlResult
+ )
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Sentry Configuration
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(SentryConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Stripe/Stripe.jsx b/enatega-multivendor-admin/src/components/Configuration/Stripe/Stripe.jsx
new file mode 100644
index 0000000..0290ce3
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Stripe/Stripe.jsx
@@ -0,0 +1,182 @@
+import React, { useRef, useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveStripeConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button, Alert } from '@mui/material'
+
+const SAVE_STRIPE_CONFIGURATION = gql`
+ ${saveStripeConfiguration}
+`
+
+function Stripe(props) {
+ const { t } = props
+ const formRef = useRef()
+ const publishableKey = props.publishableKey || ''
+ const secretKey = props.secretKey || ''
+ const [publishError, publishErrorSetter] = useState(null)
+ const [secretError, secretErrorSetter] = useState(null)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const [mutate, { loading }] = useMutation(SAVE_STRIPE_CONFIGURATION)
+
+ const validateInput = () => {
+ let publishableKeyResult = true
+ let secretKeyResult = true
+ publishableKeyResult = !!formRef.current['input-publishablekey'].value
+ secretKeyResult = !!formRef.current['input-secretkey'].value
+ publishErrorSetter(publishableKeyResult)
+ secretErrorSetter(secretKeyResult)
+ return publishableKeyResult && secretKeyResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ const [successMessage, setSuccessMessage] = useState('')
+ const handleSuccess = message => {
+ setSuccessMessage(message)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setSuccessMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [successMessage, setSuccessMessage])
+ const [errorMessage, setErrorMessage] = useState('')
+ const handleError = error => {
+ setErrorMessage('An error occurred while saving configuration.')
+ console.error('Mutation error:', error)
+ }
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setErrorMessage('')
+ }, 3000)
+
+ return () => clearTimeout(timeoutId)
+ }, [errorMessage, setErrorMessage])
+
+ return (
+
+
+
+
+ {t('Stripe')}
+
+
+
+
+
+
+
+
+ )
+}
+export default withTranslation()(Stripe)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Twilio/Twilio.js b/enatega-multivendor-admin/src/components/Configuration/Twilio/Twilio.js
new file mode 100644
index 0000000..39b07f8
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Twilio/Twilio.js
@@ -0,0 +1,204 @@
+// TwilioConfiguration.jsx
+
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveTwilioConfiguration } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Switch, Typography, Input, Button } from '@mui/material'
+
+const SAVE_TWILIO_CONFIGURATION = gql`
+ ${saveTwilioConfiguration}
+`
+
+function TwilioConfiguration(props) {
+ const formRef = useRef()
+ const [twilioEnabled, setTwilioEnabled] = useState(!!props.twilioEnabled)
+ const [twilioAccountSid] = useState(props.twilioAccountSid || '')
+ const [twilioAuthToken] = useState(props.twilioAuthToken || '')
+ const [twilioPhoneNumber] = useState(props.twilioPhoneNumber || '')
+
+ const [accountSidError, setAccountSidError] = useState(null)
+ const [authTokenError, setAuthTokenError] = useState(null)
+ const [phoneNumberError, setPhoneNumberError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_TWILIO_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let accountSidResult = true
+ let authTokenResult = true
+ let phoneNumberResult = true
+
+ accountSidResult = !validateFunc(
+ { twilioAccountSid: formRef.current['input-accountSid'].value },
+ 'twilioAccountSid'
+ )
+ authTokenResult = !validateFunc(
+ { twilioAuthToken: formRef.current['input-authToken'].value },
+ 'twilioAuthToken'
+ )
+ phoneNumberResult = !validateFunc(
+ { twilioPhoneNumber: formRef.current['input-phoneNumber'].value },
+ 'twilioPhoneNumber'
+ )
+
+ setAccountSidError(accountSidResult)
+ setAuthTokenError(authTokenResult)
+ setPhoneNumberError(phoneNumberResult)
+
+ return accountSidResult && authTokenResult && phoneNumberResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Twilio
+
+
+
+ {twilioEnabled ? 'Disable' : 'Enable'}
+ setTwilioEnabled(e.target.checked)}
+ id="input-twilioEnabled"
+ name="input-twilioEnabled"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(TwilioConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Verification/Verification.jsx b/enatega-multivendor-admin/src/components/Configuration/Verification/Verification.jsx
new file mode 100644
index 0000000..a5741c5
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Verification/Verification.jsx
@@ -0,0 +1,89 @@
+import React, { useRef } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { saveVerificationToggles } from '../../../apollo'
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Switch, Typography, Button } from '@mui/material'
+
+const SAVE_VERIFICATION_CONFIGURATION = gql`
+ ${saveVerificationToggles}
+`
+
+function VerificationConfiguration(props) {
+ const formRef = useRef()
+
+
+ const [mutate, { loading }] = useMutation(SAVE_VERIFICATION_CONFIGURATION)
+
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Skip Verifications
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(VerificationConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/Web/Web.jsx b/enatega-multivendor-admin/src/components/Configuration/Web/Web.jsx
new file mode 100644
index 0000000..98b9116
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/Web/Web.jsx
@@ -0,0 +1,144 @@
+import React, { useRef, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../../constraints/constraints'
+import { saveWebConfiguration } from '../../../apollo' // Update with the correct import path
+import useStyles from '../styles'
+import useGlobalStyles from '../../../utils/globalStyles'
+import { Box, Typography, Input, Button } from '@mui/material'
+
+const SAVE_WEB_CONFIGURATION = gql`
+ ${saveWebConfiguration}
+`
+
+function WebConfiguration(props) {
+ const formRef = useRef()
+
+ const [googleMapLibraries] = useState(props.googleMapLibraries || '')
+ const [googleColor] = useState(props.googleColor || '')
+
+ const [googleMapLibrariesError, setGoogleMapLibrariesError] = useState(null)
+ const [googleColorError, setGoogleColorError] = useState(null)
+
+ const [mutate, { loading }] = useMutation(SAVE_WEB_CONFIGURATION)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const validateInput = () => {
+ let googleMapLibrariesResult = true
+ let googleColorResult = true
+
+ googleMapLibrariesResult = !validateFunc(
+ { googleMapLibraries: formRef.current['input-googleMapLibraries'].value },
+ 'googleMapLibraries'
+ )
+ googleColorResult = !validateFunc(
+ { googleColor: formRef.current['input-googleColor'].value },
+ 'googleColor'
+ )
+
+ setGoogleMapLibrariesError(googleMapLibrariesResult)
+ setGoogleColorError(googleColorResult)
+
+ return googleMapLibrariesResult && googleColorResult
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ Web Configuration
+
+
+
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(WebConfiguration)
diff --git a/enatega-multivendor-admin/src/components/Configuration/styles.js b/enatega-multivendor-admin/src/components/Configuration/styles.js
new file mode 100644
index 0000000..c3bb2f6
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Configuration/styles.js
@@ -0,0 +1,40 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Coupon/Coupon.jsx b/enatega-multivendor-admin/src/components/Coupon/Coupon.jsx
new file mode 100644
index 0000000..5f49d97
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Coupon/Coupon.jsx
@@ -0,0 +1,216 @@
+import React, { useRef, useState } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import { editCoupon, createCoupon, getCoupons } from '../../apollo'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import {
+ Box,
+ Switch,
+ Typography,
+ Input,
+ Button,
+ Alert,
+ Grid
+} from '@mui/material'
+
+const CREATE_COUPON = gql`
+ ${createCoupon}
+`
+const EDIT_COUPON = gql`
+ ${editCoupon}
+`
+const GET_COUPONS = gql`
+ ${getCoupons}
+`
+
+function Category(props) {
+ const formRef = useRef()
+ const title = props.coupon ? props.coupon.title : ''
+ const discount = props.coupon ? props.coupon.discount : ''
+ const [enabled, setEnabled] = useState(
+ props.coupon ? props.coupon.enabled : false
+ )
+ const mutation = props.coupon ? EDIT_COUPON : CREATE_COUPON
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [titleError, titleErrorSetter] = useState(null)
+ const [discountError, discountErrorSetter] = useState(null)
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const onCompleted = data => {
+ const message = props.coupon ? t('CouponUpdated') : t('CouponAdded')
+ successSetter(message)
+ mainErrorSetter('')
+ if (!props.coupon) clearFields()
+ }
+ const onError = error => {
+ let message = ''
+ try {
+ message = error.graphQLErrors[0].message
+ } catch (err) {
+ message = t('ActionFailedTryAgain')
+ }
+ successSetter('')
+ mainErrorSetter(message)
+ }
+ const [mutate, { loading }] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_COUPONS }],
+ onError,
+ onCompleted
+ })
+
+ const onSubmitValidaiton = () => {
+ const titleError = !validateFunc(
+ { title: formRef.current['input-code'].value },
+ 'title'
+ )
+ const discountError = !validateFunc(
+ { discount: formRef.current['input-discount'].value },
+ 'discount'
+ )
+ titleErrorSetter(titleError)
+ discountErrorSetter(discountError)
+ return titleError && discountError
+ }
+ const clearFields = () => {
+ formRef.current.reset()
+ titleErrorSetter(null)
+ discountErrorSetter(null)
+ }
+
+ const { t } = props
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {props.coupon ? t('EditCoupon') : t('AddCoupon')}
+
+
+
+ {enabled ? t('Disable') : t('Enable')}
+ setEnabled(e.target.checked)}
+ id="input-enabled"
+ name="input-enabled"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+
+ )
+}
+
+export default withTranslation()(Category)
diff --git a/enatega-multivendor-admin/src/components/Coupon/styles.js b/enatega-multivendor-admin/src/components/Coupon/styles.js
new file mode 100644
index 0000000..c1fbd42
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Coupon/styles.js
@@ -0,0 +1,51 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Cuisine/Cuisine.jsx b/enatega-multivendor-admin/src/components/Cuisine/Cuisine.jsx
new file mode 100644
index 0000000..68042ef
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Cuisine/Cuisine.jsx
@@ -0,0 +1,206 @@
+import React, { useRef, useState } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import { createCuisine, editCuisine, getCuisines } from '../../apollo'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import {
+ Box,
+ Typography,
+ Input,
+ Button,
+ Alert,
+ Grid
+} from '@mui/material'
+
+const CREATE_CUISINE = gql`
+ ${createCuisine}
+`
+const EDIT_CUISINE = gql`
+ ${editCuisine}
+`
+const GET_CUISINES = gql`
+ ${getCuisines}
+`
+
+function Category(props) {
+ const formRef = useRef()
+ const name = props.cuisine ? props.cuisine.name : ''
+ const description = props.cuisine ? props.cuisine.description : ''
+ const mutation = props.cuisine ? EDIT_CUISINE : CREATE_CUISINE
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [nameError, setNameError] = useState(null)
+ const [descriptionError, setDescriptionError] = useState(null)
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const onCompleted = data => {
+ console.log('Data => ', data)
+ const message = props.cuisine ? t('CuisineUpdated') : t('CuisineAdded')
+ successSetter(message)
+ mainErrorSetter('')
+ if (!props.cuisine) clearFields()
+ }
+ const onError = error => {
+ console.log('Error => ', error)
+ let message = ''
+ try {
+ message = error.graphQLErrors[0].message
+ } catch (err) {
+ message = t('ActionFailedTryAgain')
+ }
+ successSetter('')
+ mainErrorSetter(message)
+ }
+ const [mutate, { loading }] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_CUISINES }],
+ onError,
+ onCompleted
+ })
+
+ const onSubmitValidaiton = () => {
+ const nameError = !validateFunc(
+ { name: formRef.current['input-name'].value },
+ 'name'
+ )
+ const descriptionError = !validateFunc(
+ { description: formRef.current['input-description'].value },
+ 'description'
+ )
+ setNameError(nameError)
+ setDescriptionError(descriptionError)
+ return nameError && descriptionError
+ }
+ const clearFields = () => {
+ formRef.current.reset()
+ setNameError(null)
+ setDescriptionError(null)
+ }
+
+ const { t } = props
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {props.cuisine ? t('EditCuisine') : t('AddCuisine')}
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+
+ )
+}
+
+export default withTranslation()(Category)
diff --git a/enatega-multivendor-admin/src/components/Cuisine/styles.js b/enatega-multivendor-admin/src/components/Cuisine/styles.js
new file mode 100644
index 0000000..c1fbd42
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Cuisine/styles.js
@@ -0,0 +1,51 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Dropdown/index.jsx b/enatega-multivendor-admin/src/components/Dropdown/index.jsx
new file mode 100644
index 0000000..0b827f7
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Dropdown/index.jsx
@@ -0,0 +1,36 @@
+import React from 'react'
+import { Box, MenuItem, Select, Typography } from '@mui/material'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+
+function Dropdown({
+ defaultValue = '',
+ values,
+ title,
+ name,
+ id,
+ displayEmpty = true
+}) {
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+ {title}
+
+ {values.map(value => (
+
+ {value.toUpperCase()}
+
+ ))}
+
+
+ )
+}
+
+export default Dropdown
diff --git a/enatega-multivendor-admin/src/components/Dropdown/styles.js b/enatega-multivendor-admin/src/components/Dropdown/styles.js
new file mode 100644
index 0000000..d564e99
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Dropdown/styles.js
@@ -0,0 +1,13 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Food/Food.jsx b/enatega-multivendor-admin/src/components/Food/Food.jsx
new file mode 100644
index 0000000..7654ef6
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Food/Food.jsx
@@ -0,0 +1,676 @@
+import React, { useState, useRef } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import ConfigurableValues from '../../config/constants'
+import { getRestaurantDetail, createFood, editFood } from '../../apollo'
+import AddonComponent from '../Addon/Addon'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import {
+ Box,
+ Typography,
+ Input,
+ Alert,
+ Modal,
+ Button,
+ Select,
+ MenuItem,
+ Grid,
+ Checkbox,
+ FormControlLabel,
+ useTheme
+} from '@mui/material'
+import AddIcon from '@mui/icons-material/Add'
+import RemoveIcon from '@mui/icons-material/Remove'
+const CREATE_FOOD = gql`
+ ${createFood}
+`
+const EDIT_FOOD = gql`
+ ${editFood}
+`
+const GET_CATEGORIES = gql`
+ ${getRestaurantDetail}
+`
+const GET_ADDONS = gql`
+ ${getRestaurantDetail}
+`
+
+function Food(props) {
+ const theme = useTheme()
+
+ const { CLOUDINARY_UPLOAD_URL, CLOUDINARY_FOOD } = ConfigurableValues()
+ const formRef = useRef()
+ const mutation = props.food ? EDIT_FOOD : CREATE_FOOD
+ const [title, setTitle] = useState(props.food ? props.food.title : '')
+ const [description, setDescription] = useState(
+ props.food ? props.food.description : ''
+ )
+ const [category, setCategory] = useState(
+ props.food ? props.food.categoryId : ''
+ )
+ const [imgMenu, imgMenuSetter] = useState(props.food ? props.food.image : '')
+ const [variationIndex, variationIndexSetter] = useState(0)
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [titleError, titleErrorSetter] = useState(null)
+ const [categoryError, categoryErrorSetter] = useState(null)
+ const [addonModal, addonModalSetter] = useState(false)
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const onError = error => {
+ mainErrorSetter(`${t('ActionFailedTryAgain')} ${error}`)
+ successSetter('')
+ setTimeout(onDismiss, 3000)
+ }
+ const onCompleted = data => {
+ if (!props.food) clearFields()
+ const message = props.food
+ ? t('FoodUpdatedSuccessfully')
+ : t('FoodAddedSuccessfully')
+ mainErrorSetter('')
+ successSetter(message)
+ setTitle('')
+ setDescription('')
+ setTimeout(onDismiss, 3000)
+ }
+ const [mutate, { loading: mutateLoading }] = useMutation(mutation, {
+ onError,
+ onCompleted
+ })
+ const {
+ data: dataCategories,
+ error: errorCategories,
+ loading: loadingCategories
+ } = useQuery(GET_CATEGORIES, {
+ variables: {
+ id: restaurantId
+ }
+ })
+
+ const {
+ data: dataAddons,
+ error: errorAddons,
+ loading: loadingAddons
+ } = useQuery(GET_ADDONS, {
+ variables: {
+ id: restaurantId
+ }
+ })
+ const [variation, variationSetter] = useState(
+ props.food
+ ? props.food.variations.map(({ title, price, discounted, addons }) => {
+ return {
+ title,
+ price,
+ discounted,
+ addons,
+ titleError: null,
+ priceError: null
+ }
+ })
+ : [
+ {
+ title: '',
+ price: '',
+ discounted: '',
+ addons: [],
+ titleError: null,
+ priceError: null
+ }
+ ]
+ )
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const filterImage = event => {
+ let images = []
+ for (var i = 0; i < event.target.files.length; i++) {
+ images[i] = event.target.files.item(i)
+ }
+ images = images.filter(image => image.name.match(/\.(jpg|jpeg|png|gif)$/))
+ return images.length ? images[0] : undefined
+ }
+ const selectImage = (event, state) => {
+ const result = filterImage(event)
+ if (result) imageToBase64(result)
+ }
+
+ const onAdd = index => {
+ const variations = variation
+ if (index === variations.length - 1) {
+ variations.push({
+ title: '',
+ price: '',
+ discounted: '',
+ addons: [],
+ titleError: null,
+ priceError: null
+ })
+ } else {
+ variations.splice(index + 1, 0, {
+ title: '',
+ price: '',
+ discounted: '',
+ addons: [],
+ titleError: null,
+ priceError: null
+ })
+ }
+ variationSetter([...variations])
+ }
+ const onRemove = index => {
+ if (variation.length === 1 && index === 0) {
+ return
+ }
+ const variations = variation
+ variations.splice(index, 1)
+ variationSetter([...variations])
+ }
+ const handleVariationChange = (event, index, type) => {
+ const variations = variation
+
+ if (type === 'title') {
+ variations[index][type] =
+ event.target.value.length === 1
+ ? event.target.value.toUpperCase()
+ : event.target.value
+ variationSetter([...variations])
+ } else {
+ variations[index][type] = event.target.value
+ variationSetter([...variations])
+ }
+ }
+ const onSubmitValidaiton = () => {
+ const titleError = !validateFunc(
+ { title: formRef.current['input-title'].value },
+ 'title'
+ )
+ const categoryError = !validateFunc(
+ { category: formRef.current['input-category'].value },
+ 'category'
+ )
+ const variations = variation
+ variations.map(variationItem => {
+ variationItem.priceError = !validateFunc(
+ { price: variationItem.price },
+ 'price'
+ )
+ let error = false
+ const occ = variation.filter(v => v.title === variationItem.title)
+ if (occ.length > 1) error = true
+ variationItem.titleError = error
+ ? !error
+ : variations.length > 1
+ ? !validateFunc({ title: variationItem.title }, 'title')
+ : true
+
+ return variationItem
+ })
+ const variationsError = !variation.filter(
+ variationItem => !variationItem.priceError || !variationItem.titleError
+ ).length
+ titleErrorSetter(titleError)
+ categoryErrorSetter(categoryError)
+ variationSetter([...variations])
+ return titleError && categoryError && variationsError
+ }
+ const clearFields = () => {
+ // formRef.current.reset()
+ variationSetter([
+ {
+ title: '',
+ price: '',
+ discounted: '',
+ addons: [],
+ titleError: null,
+ priceError: null
+ }
+ ])
+ imgMenuSetter('')
+ titleErrorSetter(null)
+ categoryErrorSetter(null)
+ }
+ const onBlurVariation = (index, type) => {
+ const variations = [...variation]
+ if (type === 'title') {
+ const occ = variations.filter(v => v.title === variations[index][type])
+ if (occ.length > 1) {
+ variations[index][type + 'Error'] = false
+ } else {
+ variations[index][type + 'Error'] =
+ variations.length > 1
+ ? !validateFunc({ [type]: variations[index][type] }, type)
+ : true
+ }
+ }
+
+ if (type === 'price') {
+ variations[index][type + 'Error'] = !validateFunc(
+ { [type]: variations[index][type] },
+ type
+ )
+ }
+ variationSetter([...variations])
+ }
+
+ const updateAddonsList = ids => {
+ const variations = variation
+ variations[variationIndex].addons = variations[
+ variationIndex
+ ].addons.concat(ids)
+ variationSetter([...variations])
+ }
+
+ // show Create Addon modal
+ const toggleModal = index => {
+ addonModalSetter(prev => !prev)
+ variationIndexSetter(index)
+ }
+ const onSelectAddon = (index, id) => {
+ const variations = variation
+ const addon = variations[index].addons.indexOf(id)
+ if (addon < 0) variations[index].addons.push(id)
+ else variations[index].addons.splice(addon, 1)
+ variationSetter([...variations])
+ }
+ const onDismiss = () => {
+ successSetter('')
+ mainErrorSetter('')
+ }
+ const imageToBase64 = imgUrl => {
+ const fileReader = new FileReader()
+ fileReader.onloadend = () => {
+ imgMenuSetter(fileReader.result)
+ }
+ fileReader.readAsDataURL(imgUrl)
+ }
+ const uploadImageToCloudinary = async() => {
+ if (imgMenu === '') return imgMenu
+ if (props.food && props.food.image === imgMenu) return imgMenu
+
+ const apiUrl = CLOUDINARY_UPLOAD_URL
+ const data = {
+ file: imgMenu,
+ upload_preset: CLOUDINARY_FOOD
+ }
+ try {
+ const result = await fetch(apiUrl, {
+ body: JSON.stringify(data),
+ headers: {
+ 'content-type': 'application/json'
+ },
+ method: 'POST'
+ })
+ const imageData = await result.json()
+ return imageData.secure_url
+ } catch (e) {
+ console.log(e)
+ }
+ }
+ const { t } = props
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+
+
+
+ {props.food ? t('Edit Food') : t('Add Food')}
+
+
+
+
+
+
+ {
+ toggleModal()
+ }}>
+
+
+
+ )
+}
+export default withTranslation()(Food)
diff --git a/enatega-multivendor-admin/src/components/Food/styles.js b/enatega-multivendor-admin/src/components/Food/styles.js
new file mode 100644
index 0000000..2516bd7
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Food/styles.js
@@ -0,0 +1,142 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ width60: {
+ width: '75%',
+ alignSelf: 'center'
+ },
+ innerContainer: {
+ padding: 12,
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 20,
+ textAlign: 'left'
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main3,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ },
+ fileUpload: {
+ marginTop: 10,
+ backgroundColor: theme.palette.primary.main2,
+ display: 'inlineBlock',
+ padding: '3px 6px',
+ cursor: 'pointer',
+ color: theme.palette.common.white,
+ borderRadius: 10,
+ fontSize: 12
+ },
+ file: {
+ display: 'none'
+ },
+ image: {
+ width: 120,
+ height: 120,
+ borderRadius: 30
+ },
+ button: {
+ backgroundColor: theme.palette.common.black,
+ height: 35,
+ borderRadius: 15,
+ color: theme.palette.primary.main2,
+ fontWeight: 'bold',
+ border: 'none',
+ margin: '20px 0 20px 0',
+ '&:hover': {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.common.white
+ }
+ },
+ space: {
+ display: 'flex',
+ justifyContent: 'space-between'
+ },
+ itemHeader: {
+ textAlign: 'left',
+ marginLeft: 20,
+ fontWeight: 'bold'
+ },
+ quantity: {
+ padding: 2,
+ border: '1px solid grey',
+ borderRadius: 5
+ },
+ items: {},
+ price: {
+ backgroundColor: theme.palette.common.black,
+ borderRadius: 20,
+ alignItems: 'center',
+ textAlign: 'center'
+ },
+ textBlack: {
+ color: theme.palette.common.black
+ },
+ textPrimary: {
+ color: theme.palette.primary.main2
+ },
+ pd: {
+ paddingTop: 10,
+ paddingBottom: 10,
+ marginBottom: 10
+ },
+ pb: {
+ paddingBottom: 20
+ },
+ btnBox: {
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ inputLength: {
+ width: '50%'
+ },
+ bgPrimary: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '70%',
+ marginLeft: '15%'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Footers/AdminFooter.jsx b/enatega-multivendor-admin/src/components/Footers/AdminFooter.jsx
new file mode 100644
index 0000000..e6d04b7
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Footers/AdminFooter.jsx
@@ -0,0 +1,61 @@
+import * as React from 'react'
+import {
+ Box,
+ Link,
+ BottomNavigation,
+ Typography,
+ useTheme
+} from '@mui/material'
+import useStyles from './styles'
+import { withTranslation } from 'react-i18next'
+
+function AdminFooter(props) {
+ const theme = useTheme()
+ const { t } = props
+ const [value, setValue] = React.useState(0)
+ const classes = useStyles()
+
+ return (
+
+ {
+ setValue(newValue)
+ }}>
+ ©2022
+
+
+ {t('EnategaMultivendor')}
+
+
+ {t('About Us')}
+
+
+ {t('Blog')}
+
+
+
+ )
+}
+
+export default withTranslation()(AdminFooter)
diff --git a/enatega-multivendor-admin/src/components/Footers/AuthFooter.jsx b/enatega-multivendor-admin/src/components/Footers/AuthFooter.jsx
new file mode 100644
index 0000000..386a19e
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Footers/AuthFooter.jsx
@@ -0,0 +1,45 @@
+import * as React from 'react'
+import { Box, Link, BottomNavigation, Typography } from '@mui/material'
+import useStyles from './styles'
+
+export default function AuthFooter(props) {
+ const classes = useStyles()
+
+ return (
+
+
+ ©2022
+
+
+ Enatega Multivendor
+
+
+ About Us
+
+
+ Blog
+
+
+
+ )
+}
diff --git a/enatega-multivendor-admin/src/components/Footers/styles.js b/enatega-multivendor-admin/src/components/Footers/styles.js
new file mode 100644
index 0000000..d3a0441
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Footers/styles.js
@@ -0,0 +1,20 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ footer: {
+ marginTop: '20%',
+ width: '100%',
+ padding: 3,
+ background: `linear-gradient(237.49deg, ${theme.palette.success.lightest} 0.63%, ${theme.palette.success.darkest} 85.49%)`
+ },
+ link: {
+ padding: 10,
+ color: theme.palette.secondary.dark,
+ '&:hover': { color: theme.palette.primary.main2 }
+ },
+ text: {
+ padding: 10
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/GoogleMapsLoader/GoogleMapsLoader.js b/enatega-multivendor-admin/src/components/GoogleMapsLoader/GoogleMapsLoader.js
new file mode 100644
index 0000000..57dd537
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/GoogleMapsLoader/GoogleMapsLoader.js
@@ -0,0 +1,34 @@
+import React from 'react'
+import { Box, CircularProgress } from '@mui/material'
+import { useJsApiLoader } from '@react-google-maps/api'
+
+const GoogleMapsLoader = ({ children, GOOGLE_MAPS_KEY }) => {
+ const { isLoaded } = useJsApiLoader({
+ id: 'google-map-script',
+ googleMapsApiKey: GOOGLE_MAPS_KEY,
+ libraries: [
+ 'drawing',
+ 'places',
+ 'geometry',
+ 'localContext',
+ 'visualization'
+ ]
+ })
+ console.log('isLoaded ', isLoaded)
+ if (!isLoaded) {
+ return (
+
+
+
+ )
+ }
+
+ return <>{children}>
+}
+export default GoogleMapsLoader
diff --git a/enatega-multivendor-admin/src/components/Headers/Header.jsx b/enatega-multivendor-admin/src/components/Headers/Header.jsx
new file mode 100644
index 0000000..c84e2d7
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Headers/Header.jsx
@@ -0,0 +1,29 @@
+import React from 'react'
+import { Box, useMediaQuery, useTheme } from '@mui/material'
+import HeaderIcon from '../../assets/svg/header.svg'
+function Header() {
+ const theme = useTheme()
+ const matches = useMediaQuery('(min-width:1350px)')
+ return (
+ <>
+
+ >
+ )
+}
+
+export default Header
diff --git a/enatega-multivendor-admin/src/components/Loader/CustomLoader.jsx b/enatega-multivendor-admin/src/components/Loader/CustomLoader.jsx
new file mode 100644
index 0000000..45a6e11
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Loader/CustomLoader.jsx
@@ -0,0 +1,20 @@
+import React from 'react'
+import Loader from 'react-loader-spinner'
+import { useTheme } from '@mui/material'
+
+const CustomLoader = () => {
+ const theme = useTheme()
+
+ return (
+
+
+
+ )
+}
+
+export default CustomLoader
diff --git a/enatega-multivendor-admin/src/components/Navbars/AdminNavbar.jsx b/enatega-multivendor-admin/src/components/Navbars/AdminNavbar.jsx
new file mode 100644
index 0000000..d36be4a
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Navbars/AdminNavbar.jsx
@@ -0,0 +1,208 @@
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import ResetPassword from '../ResetPassword/ResetPassword'
+import { useApolloClient } from '@apollo/client'
+import {
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Typography,
+ AppBar,
+ Box,
+ Toolbar,
+ Divider,
+ FormControl,
+ Select,
+ useTheme
+} from '@mui/material'
+
+function AdminNavbar(props) {
+ const theme = useTheme()
+ const client = useApolloClient()
+ const [modal, setModal] = useState(false)
+ const [language, setLanguage] = useState(
+ localStorage.getItem('enatega-language') || 'en'
+ )
+ const [anchorEl, setAnchorEl] = useState(null) // Define anchorEl state
+
+ const { t, i18n } = props
+
+ const toggleModal = () => {
+ setModal(prev => !prev)
+ }
+
+ const handleMenu = event => {
+ setAnchorEl(event.currentTarget)
+ }
+
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+
+ const handleChangeLanguage = event => {
+ const newLanguage = event.target.value
+ setLanguage(newLanguage)
+ localStorage.setItem('enatega-language', newLanguage)
+ i18n.changeLanguage(newLanguage)
+ handleClose()
+ }
+
+ const vendor = localStorage.getItem('user-enatega')
+ ? JSON.parse(localStorage.getItem('user-enatega')).userType === 'VENDOR'
+ : false
+
+ return (
+
+
+
+
+ {props.match.path === '/restaurant' ? '' : t(props.brandText)}
+
+
+
+
+
+
+
+
+ Ninja
+
+
+
+
+
+
+ {
+ toggleModal()
+ }}>
+
+
+
+ )
+}
+
+export default withTranslation()(AdminNavbar)
diff --git a/enatega-multivendor-admin/src/components/Navbars/AuthNavbar.jsx b/enatega-multivendor-admin/src/components/Navbars/AuthNavbar.jsx
new file mode 100644
index 0000000..c3d63c5
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Navbars/AuthNavbar.jsx
@@ -0,0 +1,23 @@
+import React from 'react'
+import { withTranslation } from 'react-i18next'
+import { Typography, AppBar, Box, Toolbar } from '@mui/material'
+
+function AdminNavbar(props) {
+ return (
+
+
+
+
+ {t('EnategaDashboard')}
+
+
+
+
+ )
+}
+
+export default withTranslation()(AdminNavbar)
diff --git a/enatega-multivendor-admin/src/components/Option/Option.jsx b/enatega-multivendor-admin/src/components/Option/Option.jsx
new file mode 100644
index 0000000..52592b3
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Option/Option.jsx
@@ -0,0 +1,327 @@
+import React, { useState } from 'react'
+import {
+ Box,
+ Typography,
+ Input,
+ Alert,
+ Button,
+ Grid,
+ useTheme
+} from '@mui/material'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql } from '@apollo/client'
+import { createOptions, editOption } from '../../apollo'
+import { validateFunc } from '../../constraints/constraints'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import AddIcon from '@mui/icons-material/Add'
+import RemoveIcon from '@mui/icons-material/Remove'
+
+const CREATE_OPTIONS = gql`
+ ${createOptions}
+`
+
+const EDIT_OPTION = gql`
+ ${editOption}
+`
+
+function Option(props) {
+ const theme = useTheme()
+ const { t } = props
+ const [option, optionSetter] = useState(
+ props.option
+ ? [{ ...props.option, titleError: false, priceError: false }]
+ : [
+ {
+ title: '',
+ description: '',
+ price: 0,
+ titleError: false,
+ priceError: false
+ }
+ ]
+ )
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const mutation = props.option ? EDIT_OPTION : CREATE_OPTIONS
+ const onCompleted = ({ createOptions, editOption }) => {
+ if (createOptions) {
+ optionSetter([
+ {
+ title: '',
+ description: '',
+ price: 0,
+ titleError: false,
+ priceError: false
+ }
+ ])
+ successSetter(t('Saved'))
+ mainErrorSetter('')
+ setTimeout(hideAlert, 3000)
+ }
+ if (editOption) {
+ successSetter(t('Saved'))
+ mainErrorSetter('')
+ }
+ }
+ const onError = error => {
+ mainErrorSetter(`${t('errorWhileSaving')} ${error}`)
+ successSetter('')
+ setTimeout(hideAlert, 3000)
+ }
+ const [mutate, { loading }] = useMutation(mutation, { onError, onCompleted })
+ const hideAlert = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+ const onBlur = (index, state) => {
+ const options = option
+ if (state === 'title') {
+ options[index].titleError = !!validateFunc(
+ { optionTitle: options[index][state] },
+ 'optionTitle'
+ )
+ }
+ if (state === 'price') {
+ options[index].priceError = !!validateFunc(
+ { optionPrice: options[index][state] },
+ 'optionPrice'
+ )
+ }
+ optionSetter([...options])
+ }
+ const onAdd = index => {
+ const options = option
+ if (index === options.length - 1) {
+ options.push({ title: '', description: '', price: 0 })
+ } else {
+ options.splice(index + 1, 0, { title: '', description: '', price: 0 })
+ }
+ optionSetter([...options])
+ }
+ const onRemove = index => {
+ if (option.length === 1 && index === 0) {
+ return
+ }
+ const options = option
+ options.splice(index, 1)
+ optionSetter([...options])
+ }
+ const onChange = (event, index, state) => {
+ const options = option
+ options[index][state] = event.target.value
+ optionSetter([...options])
+ }
+ const validate = () => {
+ const options = option
+ options.map((option, index) => {
+ onBlur(index, 'title')
+ onBlur(index, 'description')
+ onBlur(index, 'price')
+ return option
+ })
+ const error = options.filter(
+ option => option.titleError || option.priceError
+ )
+ if (!error.length) return true
+ return false
+ }
+
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {props.option ? t('UpdateOption') : t('AddOption')}
+
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+
+ )
+}
+export default withTranslation()(Option)
diff --git a/enatega-multivendor-admin/src/components/Option/styles.js b/enatega-multivendor-admin/src/components/Option/styles.js
new file mode 100644
index 0000000..61dcd30
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Option/styles.js
@@ -0,0 +1,70 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main3,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ btn: {
+ // height: 20,
+ // width: 20,
+ // padding: 0,
+ // borderRadius: '50%',
+ // marginTop: 20
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ addIcon: {
+ backgroundColor: theme.palette.primary.main2,
+ color: theme.palette.common.black,
+ borderRadius: '50%',
+ margin: '0 10px 0 0'
+ },
+ removeIcon: {
+ backgroundColor: theme.palette.common.black,
+ color: theme.palette.primary.main2,
+ borderRadius: '50%',
+ margin: '0 10px 0 0'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Order/Order.jsx b/enatega-multivendor-admin/src/components/Order/Order.jsx
new file mode 100644
index 0000000..9579f5a
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Order/Order.jsx
@@ -0,0 +1,291 @@
+import React, { useState } from 'react'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import { validateFunc } from '../../constraints/constraints'
+import { updateOrderStatus, getConfiguration } from '../../apollo'
+import Loader from 'react-loader-spinner'
+import {
+ Box,
+ Divider,
+ Grid,
+ Typography,
+ Alert,
+ Input,
+ Button,
+ useTheme
+} from '@mui/material'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+
+// constants
+const UPDATE_STATUS = gql`
+ ${updateOrderStatus}
+`
+
+const GET_CONFIGURATION = gql`
+ ${getConfiguration}
+`
+
+function Order(props) {
+ const theme = useTheme()
+ const { order, t } = props
+ const [reason, reasonSetter] = useState('')
+ const [reasonError, reasonErrorSetter] = useState(null)
+ const [error, errorSetter] = useState('')
+ const [success, successSetter] = useState('')
+
+ const onCompleted = ({ updateOrderStatus }) => {
+ if (updateOrderStatus) {
+ successSetter(t('OrderStatusUpdated'))
+ }
+ setTimeout(onDismiss, 5000)
+ }
+ const onError = error => {
+ errorSetter(error.message)
+ setTimeout(onDismiss, 5000)
+ }
+ const { data } = useQuery(GET_CONFIGURATION)
+ const [mutate, { loading }] = useMutation(UPDATE_STATUS, {
+ onError,
+ onCompleted
+ })
+
+ const validateReason = () => {
+ const reasonError = !validateFunc({ reason }, 'reason')
+ reasonErrorSetter(reasonError)
+ return reasonError
+ }
+
+ const onDismiss = () => {
+ errorSetter('')
+ successSetter('')
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ if (!props.order) return null
+ return (
+
+
+
+
+ {t('Order')} # {order.orderId}
+
+
+
+
+
+ {t('Items')}
+
+
+ {order &&
+ order.items.map(item => (
+ <>
+
+
+
+ {item.quantity}
+
+
+
+ {`${item.title}${
+ item.variation.title ? `(${item.variation.title})` : ''
+ }`}
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {(item.variation.price * item.quantity).toFixed(2)}
+
+
+ {item.specialInstructions.length > 0 && (
+
+ {t('SpecialInstructions')}
+
+ )}
+
+ >
+ ))}
+
+
+
+
+ {t('Charges')}
+
+
+
+
+ {t('Subtotal')}
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {(
+ order.orderAmount -
+ order.deliveryCharges -
+ order.tipping -
+ order.taxationAmount
+ ).toFixed(2)}
+
+
+
+
+
+ {t('DeliveryFee')}
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {order && order.deliveryCharges.toFixed(2)}
+
+
+
+
+
+ {t('TaxCharges')}
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {order && order.taxationAmount.toFixed(2)}
+
+
+
+
+
+ {t('Tip')}
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {order && order.tipping.toFixed(2)}
+
+
+
+
+
+ {t('Total')}
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {order && order.orderAmount.toFixed(2)}
+
+
+
+
+
+
+
+ {t('PaymentMethod')}
+
+
+
+
+
+ {order.paymentMethod}
+
+
+
+
+
+
+
+ {t('PaidAmount')}
+
+
+
+ {data && data.configuration.currencySymbol}{' '}
+ {order && order.paidAmount ? order.paidAmount.toFixed(2) : 0}
+
+
+
+
+ {order.orderStatus !== 'CANCELLED' && order.orderStatus !== 'DELIVERED' && (
+ <>
+ {loading && (
+
+ )}
+
+ {
+ mutate({
+ variables: {
+ id: order._id,
+ status: 'ACCEPTED',
+ reason: ''
+ }
+ })
+ }}>
+ {order && order.status === true ? t('Accepted') : t('Accept')}
+
+ {
+ if (validateReason()) {
+ mutate({
+ variables: {
+ id: order._id,
+ status: 'CANCELLED',
+ reason: order.reason
+ }
+ })
+ }
+ }}>
+ {order.status === false ? t('Cancelled') : t('Cancel')}
+
+ {
+ reasonSetter(event.target.value)
+ }}
+ className={[globalClasses.input, classes.inputLength]}
+ />
+
+ {reasonError ? null : null}
+ >
+ )}
+
+ {success && (
+
+ {success}
+
+ )}
+ {error && (
+
+ {error}
+
+ )}
+
+
+ )
+}
+export default withTranslation()(Order)
diff --git a/enatega-multivendor-admin/src/components/Order/OrdersData.jsx b/enatega-multivendor-admin/src/components/Order/OrdersData.jsx
new file mode 100644
index 0000000..89850df
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Order/OrdersData.jsx
@@ -0,0 +1,188 @@
+/* eslint-disable react/display-name */
+import React, { useEffect, useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { transformToNewline } from '../../utils/stringManipulations'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import CustomLoader from '../Loader/CustomLoader'
+import { subscribePlaceOrder, orderCount } from '../../apollo'
+import { useQuery, gql } from '@apollo/client'
+import SearchBar from '../TableHeader/SearchBar'
+import { customStyles } from '../../utils/tableCustomStyles'
+import TableHeader from '../TableHeader'
+import { useTheme } from '@mui/material'
+
+const ORDERCOUNT = gql`
+ ${orderCount}
+`
+const ORDER_PLACED = gql`
+ ${subscribePlaceOrder}
+`
+
+const OrdersData = props => {
+ const theme = useTheme()
+ const { t } = props
+ const { selected, updateSelected } = props
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const getItems = items => {
+ return items
+ .map(
+ item =>
+ `${item.quantity}x${item.title}${
+ item.variation.title ? `(${item.variation.title})` : ''
+ }`
+ )
+ .join('\n')
+ }
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const { data, loading: loadingQuery } = useQuery(ORDERCOUNT, {
+ variables: { restaurant: restaurantId }
+ })
+
+ const propExists = (obj, path) => {
+ return path.split('.').reduce((obj, prop) => {
+ return obj && obj[prop] ? obj[prop] : ''
+ }, obj)
+ }
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (field && isNaN(propExists(row, field))) {
+ return propExists(row, field).toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const handlePerRowsChange = (perPage, page) => {
+ props.page(page)
+ props.rows(perPage)
+ }
+
+ const handlePageChange = async page => {
+ props.page(page)
+ }
+
+ const columns = [
+ {
+ name: t('OrderID'),
+ sortable: true,
+ selector: 'orderId'
+ },
+ {
+ name: t('Items'),
+ cell: row => <>{getItems(row.items)}>
+ },
+ {
+ name: t('Payment'),
+ selector: 'paymentMethod',
+ sortable: true
+ },
+ {
+ name: t('Status'),
+ selector: 'orderStatus',
+ sortable: true
+ },
+ {
+ name: t('Datetime'),
+ cell: row => (
+ <>{new Date(row.createdAt).toLocaleString().replace(/ /g, '\n')}>
+ )
+ },
+ {
+ name: t('Address'),
+ cell: row => (
+ <>{transformToNewline(row.deliveryAddress.deliveryAddress, 3)}>
+ )
+ }
+ ]
+
+ const conditionalRowStyles = [
+ {
+ when: row =>
+ row.orderStatus !== 'DELIVERED' && row.orderStatus !== 'CANCELLED',
+ style: {
+ backgroundColor: theme.palette.warning.lightest
+ }
+ }
+ ]
+ useEffect(() => {
+ props.subscribeToMore({
+ document: ORDER_PLACED,
+ variables: { id: restaurantId },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ if (subscriptionData.data.subscribePlaceOrder.origin === 'new') {
+ return {
+ ordersByRestId: [
+ subscriptionData.data.subscribePlaceOrder.order,
+ ...prev.ordersByRestId
+ ]
+ }
+ } else {
+ const orderIndex = prev.ordersByRestId.findIndex(
+ o => subscriptionData.data.subscribePlaceOrder.order._id === o._id
+ )
+ prev.ordersByRestId[orderIndex] =
+ subscriptionData.data.subscribePlaceOrder.order
+ return { ordersByRestId: [...prev.ordersByRestId] }
+ }
+ },
+ onError: error => {
+ console.log('onError', error)
+ }
+ })
+ }, [])
+ useEffect(() => {
+ if (selected) {
+ const order = props.orders.find(o => o._id === selected._id)
+ updateSelected(order)
+ }
+ }, [props.orders])
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? props && props.orders
+ : props.orders &&
+ props.orders.filter(order => {
+ return order.orderId.toLowerCase().search(regex) > -1
+ })
+
+ return (
+ <>
+ }
+ columns={columns}
+ data={filtered}
+ onRowClicked={props.toggleModal}
+ progressPending={props.loading || loadingQuery}
+ pointerOnHover
+ progressComponent={ }
+ sortFunction={customSort}
+ subHeader
+ subHeaderComponent={
+
+ }
+ pagination
+ paginationServer
+ paginationTotalRows={data && data.orderCount}
+ onChangeRowsPerPage={handlePerRowsChange}
+ onChangePage={handlePageChange}
+ conditionalRowStyles={conditionalRowStyles}
+ customStyles={customStyles}
+ selectableRows
+ paginationIconLastPage=""
+ paginationIconFirstPage=""
+ />
+ >
+ )
+}
+export default withTranslation()(OrdersData)
diff --git a/enatega-multivendor-admin/src/components/Order/styles.js b/enatega-multivendor-admin/src/components/Order/styles.js
new file mode 100644
index 0000000..29db4e1
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Order/styles.js
@@ -0,0 +1,86 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ color: 'red',
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ marginLeft: '15%',
+ marginRight: '15%'
+ // paddingBottom: 5
+ },
+ bgPrimary: {
+ backgroundColor: theme.palette.primary.main2
+ },
+ innerContainer: {
+ padding: 12,
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 20,
+ textAlign: 'left'
+ },
+ heading: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ text: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ itemHeader: {
+ textAlign: 'left',
+ marginLeft: 20,
+ fontWeight: 'bold',
+ color: 'black'
+ },
+ quantity: {
+ padding: 2,
+ border: '1px solid grey',
+ borderRadius: 5
+ },
+ items: {},
+ price: {
+ backgroundColor: theme.palette.common.black,
+ borderRadius: 20,
+ alignItems: 'center',
+ textAlign: 'center'
+ },
+ textBlack: {
+ color: theme.palette.common.black
+ },
+ textPrimary: {
+ color: theme.palette.primary.main2
+ },
+ pd: {
+ paddingTop: 10,
+ paddingBottom: 10,
+ marginBottom: 10
+ },
+ pb: {
+ paddingBottom: 20
+ },
+ btnBox: {
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ inputLength: {
+ width: '50%'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/ResetPassword/ResetPassword.jsx b/enatega-multivendor-admin/src/components/ResetPassword/ResetPassword.jsx
new file mode 100644
index 0000000..16ea6eb
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/ResetPassword/ResetPassword.jsx
@@ -0,0 +1,164 @@
+import React, { useState, useRef } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import { vendorResetPassword } from '../../apollo'
+import { Box, Typography, Input, Alert, Button } from '@mui/material'
+import useStyles from '../Configuration/styles'
+import useGlobalStyles from '../../utils/globalStyles'
+const CHANGE_PASSWORD = gql`
+ ${vendorResetPassword}
+`
+
+function ResetPassword(props) {
+ const { t } = props
+ const formRef = useRef()
+ const [passError, passErrorSetter] = useState(null)
+ const [confirmPassError, confirmPassErrorSetter] = useState(null)
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const onSubmitValidaiton = () => {
+ const oldPassword = !validateFunc(
+ { password: formRef.current['input-oldPassword'].value },
+ 'password'
+ )
+ const newPassword = !validateFunc(
+ { password: formRef.current['input-newPassword'].value },
+ 'password'
+ )
+ passErrorSetter(oldPassword)
+ confirmPassErrorSetter(newPassword)
+
+ return oldPassword && newPassword
+ }
+ const onCompleted = data => {
+ const message = t('PasswordChangedSuccessfully')
+ mainErrorSetter('')
+ successSetter(message)
+ setTimeout(hideAlert, 5000)
+ }
+ const onError = ({ graphQLErrors, networkError }) => {
+ if (graphQLErrors) {
+ mainErrorSetter(graphQLErrors[0].message)
+ }
+ if (networkError) {
+ mainErrorSetter(networkError.result.errors[0].message)
+ }
+ successSetter('')
+ setTimeout(hideAlert, 5000)
+ }
+ const hideAlert = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+ const [mutate] = useMutation(CHANGE_PASSWORD, {
+ onError,
+ onCompleted
+ })
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {t('ResetPassword')}
+
+
+
+
+
+
+
+ {success && (
+
+ Success
+
+ )}
+ {mainError && (
+
+ Error
+
+ )}
+
+
+
+ )
+}
+
+export default withTranslation()(ResetPassword)
diff --git a/enatega-multivendor-admin/src/components/Restaurant/Card.jsx b/enatega-multivendor-admin/src/components/Restaurant/Card.jsx
new file mode 100644
index 0000000..c48ebac
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Restaurant/Card.jsx
@@ -0,0 +1,59 @@
+import * as React from 'react'
+import Card from '@mui/material/Card'
+import CardContent from '@mui/material/CardContent'
+import CardMedia from '@mui/material/CardMedia'
+import Typography from '@mui/material/Typography'
+import { CardActionArea, useTheme } from '@mui/material'
+
+export default function RestaurantCard(props) {
+ const theme = useTheme()
+ return (
+
+
+
+
+
+
+ {props.rest.name}
+
+
+ {props.rest.address}
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-admin/src/components/Restaurant/CreateRestaurant.jsx b/enatega-multivendor-admin/src/components/Restaurant/CreateRestaurant.jsx
new file mode 100644
index 0000000..84ede30
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Restaurant/CreateRestaurant.jsx
@@ -0,0 +1,590 @@
+import React, { useState, useRef, useMemo } from 'react'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import { useMutation, gql, useQuery } from '@apollo/client'
+import { createRestaurant, getCuisines, restaurantByOwner } from '../../apollo'
+
+import {
+ Box,
+ Alert,
+ Typography,
+ Button,
+ Input,
+ Switch,
+ Grid,
+ Checkbox,
+ InputLabel,
+ Select,
+ OutlinedInput,
+ MenuItem,
+ ListItemText
+} from '@mui/material'
+
+import ConfigurableValues from '../../config/constants'
+
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+import { SHOP_TYPE } from '../../utils/enums'
+import Dropdown from '../Dropdown'
+
+const CREATE_RESTAURANT = gql`
+ ${createRestaurant}
+`
+const RESTAURANT_BY_OWNER = gql`
+ ${restaurantByOwner}
+`
+const CUISINES = gql`
+ ${getCuisines}
+`
+const ITEM_HEIGHT = 48
+const ITEM_PADDING_TOP = 8
+const MenuProps = {
+ PaperProps: {
+ style: {
+ maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,
+ width: 250
+ }
+ }
+}
+
+const CreateRestaurant = props => {
+ const { CLOUDINARY_UPLOAD_URL, CLOUDINARY_FOOD } = ConfigurableValues()
+
+ const { t } = props
+
+ const owner = props.owner
+ const [showPassword, setShowPassword] = useState(false)
+ const [imgUrl, setImgUrl] = useState('')
+ const [nameError, setNameError] = useState(null)
+ const [usernameError, setUsernameError] = useState(null)
+ const [passwordError, setPasswordError] = useState(null)
+ const [addressError, setAddressError] = useState(null)
+ const [deliveryTimeError, setDeliveryTimeError] = useState(null)
+ const [minimumOrderError, setMinimumOrderError] = useState(null)
+ const [salesTaxError, setSalesTaxError] = useState(null)
+ const [restaurantCuisines, setRestaurantCuisines] = React.useState([])
+
+ // const [shopType, setShopType] = useState(SHOP_TYPE.RESTAURANT)
+ const [errors, setErrors] = useState('')
+ const [success, setSuccess] = useState('')
+ const onCompleted = data => {
+ console.log('on complete here')
+ setNameError(null)
+ setAddressError(null)
+ setUsernameError(null)
+ setPasswordError(null)
+ setDeliveryTimeError(null)
+ setMinimumOrderError(null)
+ setErrors('')
+ setSalesTaxError(null)
+ setSuccess(t('RestaurantAdded'))
+ clearFormValues()
+ setTimeout(hideAlert, 5000)
+ }
+ const onError = ({ graphQLErrors, networkError }) => {
+ console.log('graphQLErrors', graphQLErrors)
+ console.log('networkErrors', networkError)
+ setNameError(null)
+ setAddressError(null)
+ setUsernameError(null)
+ setPasswordError(null)
+ setDeliveryTimeError(null)
+ setMinimumOrderError(null)
+ setSalesTaxError(null)
+ setSuccess('')
+ if (graphQLErrors && graphQLErrors.length) {
+ setErrors(graphQLErrors[0].message)
+ }
+ if (networkError) {
+ setErrors(t('NetworkError'))
+ }
+ setTimeout(hideAlert, 5000)
+ }
+ const hideAlert = () => {
+ setErrors('')
+ setSuccess('')
+ }
+
+ const { data: cuisines } = useQuery(CUISINES)
+ const cuisinesInDropdown = useMemo(
+ () => cuisines?.cuisines?.map(item => item.name),
+ [cuisines]
+ )
+ console.log('cuisines => ', cuisinesInDropdown)
+
+ const [mutate, { loading }] = useMutation(CREATE_RESTAURANT, {
+ onError,
+ onCompleted,
+ update
+ })
+
+ const formRef = useRef(null)
+
+ const selectImage = (event, state) => {
+ const result = filterImage(event)
+ if (result) imageToBase64(result)
+ }
+
+ const filterImage = event => {
+ let images = []
+ for (var i = 0; i < event.target.files.length; i++) {
+ images[i] = event.target.files.item(i)
+ }
+ images = images.filter(image => image.name.match(/\.(jpg|jpeg|png|gif)$/))
+ return images.length ? images[0] : undefined
+ }
+ const imageToBase64 = imgUrl => {
+ const fileReader = new FileReader()
+ fileReader.onloadend = () => {
+ setImgUrl(fileReader.result)
+ }
+ fileReader.readAsDataURL(imgUrl)
+ }
+ const uploadImageToCloudinary = async() => {
+ if (imgUrl === '') return imgUrl
+
+ const apiUrl = CLOUDINARY_UPLOAD_URL
+ const data = {
+ file: imgUrl,
+ upload_preset: CLOUDINARY_FOOD
+ }
+ try {
+ const result = await fetch(apiUrl, {
+ body: JSON.stringify(data),
+ headers: {
+ 'content-type': 'application/json'
+ },
+ method: 'POST'
+ })
+ const imageData = await result.json()
+ return imageData.secure_url
+ } catch (e) {
+ console.log(e)
+ }
+ }
+
+ const onSubmitValidaiton = data => {
+ const form = formRef.current
+ const name = form.name.value
+ const address = form.address.value
+ const username = form.username.value
+ const password = form.password.value
+ // IMPORTANT!!!!
+ const deliveryTime = form.deliveryTime.value
+ const minimumOrder = form.minimumOrder.value
+ const salesTax = +form.salesTax.value
+
+ const nameError = !validateFunc({ name }, 'name')
+ const addressError = !validateFunc({ address }, 'address')
+
+ const deliveryTimeError = !validateFunc(
+ { deliveryTime: deliveryTime },
+ 'deliveryTime'
+ )
+ const minimumOrderError = !validateFunc(
+ { minimumOrder: minimumOrder },
+ 'minimumOrder'
+ )
+ const usernameError = !validateFunc({ name: username }, 'name')
+ const passwordError = !validateFunc({ password }, 'password')
+ const salesTaxError = !validateFunc({ salesTax }, 'salesTax')
+ setNameError(nameError)
+ setAddressError(addressError)
+ setUsernameError(usernameError)
+ setPasswordError(passwordError)
+ setDeliveryTimeError(deliveryTimeError)
+ setMinimumOrderError(minimumOrderError)
+ setSalesTaxError(salesTaxError)
+ if (
+ !(
+ nameError &&
+ addressError &&
+ usernameError &&
+ passwordError &&
+ deliveryTimeError &&
+ minimumOrderError &&
+ salesTaxError
+ )
+ ) {
+ setErrors(t('FieldsRequired'))
+ }
+ return (
+ nameError &&
+ addressError &&
+ usernameError &&
+ passwordError &&
+ deliveryTimeError &&
+ minimumOrderError &&
+ salesTaxError
+ )
+ }
+ function update(cache, { data: { createRestaurant } }) {
+ const { restaurantByOwner } = cache.readQuery({
+ query: RESTAURANT_BY_OWNER,
+ variables: { id: owner }
+ })
+ cache.writeQuery({
+ query: RESTAURANT_BY_OWNER,
+ variables: { id: owner },
+ data: {
+ restaurantByOwner: {
+ ...restaurantByOwner,
+ restaurants: [...restaurantByOwner.restaurants, createRestaurant]
+ }
+ }
+ })
+ }
+ const clearFormValues = () => {
+ const form = formRef.current
+ form.name.value = ''
+ form.address.value = ''
+ form.username.value = ''
+ form.password.value = ''
+ form.deliveryTime.value = 20
+ form.minimumOrder.value = 0
+ setImgUrl('')
+ }
+
+ const handleCuisineChange = event => {
+ const {
+ target: { value }
+ } = event
+ setRestaurantCuisines(
+ typeof value === 'string' ? value.split(',') : value
+ )
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+
+ return (
+
+
+
+
+ {t('AddRestaurant')}
+
+
+
+ {t('Available')}
+
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {errors && (
+
+ {errors}
+
+ )}
+
+
+
+ )
+}
+export default withTranslation()(CreateRestaurant)
diff --git a/enatega-multivendor-admin/src/components/Restaurant/styles.js b/enatega-multivendor-admin/src/components/Restaurant/styles.js
new file mode 100644
index 0000000..dad1869
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Restaurant/styles.js
@@ -0,0 +1,69 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade})`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ heading2: {
+ backgroundColor: theme.palette.primary.main3,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ },
+ image: {
+ width: 120,
+ height: 120,
+ borderRadius: 30
+ },
+ file: {
+ display: 'none'
+ },
+ fileUpload: {
+ marginTop: 10,
+ backgroundColor: theme.palette.primary.main2,
+ display: 'inlineBlock',
+ padding: '3px 6px',
+ cursor: 'pointer',
+ color: theme.palette.common.white,
+ borderRadius: 10,
+ fontSize: 12
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Rider/Rider.jsx b/enatega-multivendor-admin/src/components/Rider/Rider.jsx
new file mode 100644
index 0000000..2999785
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Rider/Rider.jsx
@@ -0,0 +1,405 @@
+import React, { useState, useRef } from 'react'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import { validateFuncForRider } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+// core components
+import {
+ createRider,
+ editRider,
+ getRiders,
+ getZones,
+ getAvailableRiders
+} from '../../apollo'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import {
+ Box,
+ Switch,
+ Typography,
+ Input,
+ Alert,
+ Select,
+ MenuItem,
+ Button,
+ Grid,
+ Checkbox
+} from '@mui/material'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+
+const CREATE_RIDER = gql`
+ ${createRider}
+`
+const EDIT_RIDER = gql`
+ ${editRider}
+`
+const GET_RIDERS = gql`
+ ${getRiders}
+`
+const GET_ZONES = gql`
+ ${getZones}
+`
+const GET_AVAILABLE_RIDERS = gql`
+ ${getAvailableRiders}
+`
+
+function Rider(props) {
+ const formRef = useRef()
+ const mutation = props.rider ? EDIT_RIDER : CREATE_RIDER
+ const name = props.rider ? props.rider.name : ''
+ const userName = props.rider ? props.rider.username : ''
+ const password = props.rider ? props.rider.password : ''
+ const phone = props.rider ? props.rider.phone : ''
+ const zone = props.rider ? props.rider.zone._id : ''
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [nameError, nameErrorSetter] = useState(null)
+ const [usernameError, usernameErrorSetter] = useState(null)
+ const [passwordError, passwordErrorSetter] = useState(null)
+ const [phoneError, phoneErrorSetter] = useState(null)
+ const [userNameErrorMessage, setUserNameErrorMessage] = useState('')
+ const [zoneError, zoneErrorSetter] = useState(null)
+ const [showPassword, setShowPassword] = useState(false)
+ const [riderAvailable, setRiderAvailable] = useState(
+ props.rider ? props.rider.available : true
+ )
+ const [riderZone, setRiderZone] = useState(
+ props.rider ? props.rider.zone._id : ''
+ )
+
+ const onCompleted = data => {
+ if (!props.rider) clearFields()
+ const message = props.rider
+ ? t('RiderUpdatedSuccessfully')
+ : t('RiderAddedSuccessfully')
+ mainErrorSetter('')
+ successSetter(message)
+ setTimeout(hideAlert, 3000)
+ }
+ const onError = ({ graphQLErrors, networkError }) => {
+ if (graphQLErrors) {
+ mainErrorSetter(graphQLErrors[0].message)
+ }
+ if (networkError) {
+ mainErrorSetter(networkError.result.errors[0].message)
+ }
+ successSetter('')
+ setTimeout(hideAlert, 3000)
+ }
+ const [mutate, { loading }] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_RIDERS }, { query: GET_AVAILABLE_RIDERS }],
+ onError,
+ onCompleted
+ })
+ const { data } = useQuery(GET_ZONES)
+
+ const onBlur = (setter, field, state) => {
+ const validationResult = validateFuncForRider({ [field]: state }, field)
+ setter(validationResult.isValid)
+ }
+ const onSubmitValidaiton = () => {
+ const nameError = validateFuncForRider(
+ { name: formRef.current['input-name'].value },
+ 'name'
+ )
+ const usernameError = validateFuncForRider(
+ { username: formRef.current['input-userName'].value },
+ 'username'
+ )
+ const passwordError = validateFuncForRider(
+ { password: formRef.current['input-password'].value },
+ 'password'
+ )
+ const phoneError = validateFuncForRider(
+ { phone: formRef.current['input-phone'].value },
+ 'phone'
+ )
+ const zoneError = validateFuncForRider(
+ { zone: formRef.current['input-zone'].value },
+ 'zone'
+ )
+
+ nameErrorSetter(nameError.isValid)
+ usernameErrorSetter(usernameError.isValid)
+ setUserNameErrorMessage(usernameError.errorMessage)
+ phoneErrorSetter(phoneError.isValid)
+ passwordErrorSetter(passwordError.isValid)
+ zoneErrorSetter(zoneError.isValid)
+ return (
+ nameError.isValid &&
+ usernameError.isValid &&
+ phoneError.isValid &&
+ passwordError.isValid &&
+ zoneError.isValid
+ )
+ }
+ const clearFields = () => {
+ formRef.current.reset()
+ nameErrorSetter(null)
+ usernameErrorSetter(null)
+ passwordErrorSetter(null)
+ phoneErrorSetter(null)
+ zoneErrorSetter(null)
+ }
+
+ const hideAlert = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+ const { t } = props
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+
+
+
+ {props.rider ? t('EditRider') : t('AddRider')}
+
+
+
+ {t('Available')}
+ setRiderAvailable(e.target.checked)}
+ id="input-available"
+ name="input-available"
+ style={{ color: 'black' }}
+ />
+
+
+
+ {/* */}
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+ {/* */}
+
+ )
+}
+export default withTranslation()(Rider)
diff --git a/enatega-multivendor-admin/src/components/Rider/styles.js b/enatega-multivendor-admin/src/components/Rider/styles.js
new file mode 100644
index 0000000..f9e9a2f
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Rider/styles.js
@@ -0,0 +1,55 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ },
+ customNotification: {
+ borderRadius: '8px', // Use camelCase
+ boxShadow: 'none' // Use camelCase
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Section/Section.jsx b/enatega-multivendor-admin/src/components/Section/Section.jsx
new file mode 100644
index 0000000..eaaaee6
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Section/Section.jsx
@@ -0,0 +1,233 @@
+import React, { useState, useRef } from 'react'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import {
+ editSection,
+ restaurantList,
+ createSection,
+ getSections
+} from '../../apollo'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import {
+ Box,
+ Switch,
+ Typography,
+ Input,
+ Alert,
+ Button,
+ FormControlLabel,
+ Checkbox,
+ Grid
+} from '@mui/material'
+
+const CREATE_SECTION = gql`
+ ${createSection}
+`
+const EDIT_SECTION = gql`
+ ${editSection}
+`
+const GET_SECTIONS = gql`
+ ${getSections}
+`
+const GET_RESTAURANT = gql`
+ ${restaurantList}
+`
+
+function Section(props) {
+ const formRef = useRef()
+ const name = props.section ? props.section.name : ''
+ const mutation = props.section ? EDIT_SECTION : CREATE_SECTION
+ const [sectionEnable, setSectionEnable] = useState(
+ props.section ? props.section.enabled : false
+ )
+ const [restaurant, restaurantSetter] = useState(
+ props.section ? props.section.restaurants.map(r => r._id) : []
+ )
+ const [error, errorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [nameError, nameErrorSetter] = useState(null)
+
+ const onCompleted = data => {
+ const message = props.section
+ ? t('SectionUpdatedSuccessfully')
+ : t('SectionAddeduccessfully')
+ successSetter(message)
+ errorSetter('')
+ if (!props.section) clearFields()
+ }
+ function onError(error) {
+ const message = `${t('ActionFailedTryAgain')} ${error}`
+ successSetter('')
+ errorSetter(message)
+ }
+ const [mutate, { loading }] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_SECTIONS }],
+ onCompleted,
+ onError
+ })
+
+ const {
+ data,
+ error: errorQuery,
+ loading: loadingQuery
+ } = useQuery(GET_RESTAURANT, { onError })
+
+ const onChange = event => {
+ // added this to keep default checked on editing
+ const value = event.target.value
+ const ids = restaurant
+ if (event.target.checked) {
+ ids.push(value)
+ } else {
+ const index = ids.indexOf(value)
+ if (index > -1) ids.splice(index, 1)
+ }
+ restaurantSetter([...ids])
+ }
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const onSubmitValidation = () => {
+ const nameErrors = !validateFunc(
+ { name: formRef.current['input-name'].value },
+ 'name'
+ )
+ nameErrorSetter(nameErrors)
+ return nameErrors
+ }
+ const clearFields = () => {
+ formRef.current.reset()
+ nameErrorSetter(null)
+ }
+
+ const { t } = props
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+
+
+
+ {props.section ? t('EditSection') : t('AddSection')}
+
+
+
+ {sectionEnable ? t('Disable') : t('Enable')}
+ setSectionEnable(e.target.checked)}
+ id="input-enable"
+ name="input-enable"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {error && (
+
+ {error}
+
+ )}
+
+
+
+ )
+}
+
+export default withTranslation()(Section)
diff --git a/enatega-multivendor-admin/src/components/Section/styles.js b/enatega-multivendor-admin/src/components/Section/styles.js
new file mode 100644
index 0000000..8571b10
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Section/styles.js
@@ -0,0 +1,56 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ },
+ section: {
+ textAlign: 'left',
+ height: '300px',
+ overflowY: 'scroll'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Sidebar/AdminSidebar.jsx b/enatega-multivendor-admin/src/components/Sidebar/AdminSidebar.jsx
new file mode 100644
index 0000000..52e9eaf
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Sidebar/AdminSidebar.jsx
@@ -0,0 +1,159 @@
+import * as React from 'react'
+import {
+ AppBar,
+ Box,
+ Drawer,
+ IconButton,
+ Toolbar,
+ Typography,
+ Link,
+ SvgIcon,
+ useTheme
+} from '@mui/material'
+import MenuIcon from '@mui/icons-material/Menu'
+import routes from '../../routes'
+import useStyles from './styles'
+import { ReactComponent as Logo } from '../../assets/svg/logo.svg'
+import { useLocation } from 'react-router-dom'
+import { useTranslation, withTranslation } from 'react-i18next'
+
+const drawerWidth = 240
+function AdminSidebar(props) {
+ const theme = useTheme()
+ const { t } = useTranslation()
+ const location = useLocation()
+ const classes = useStyles()
+ const { window } = props
+ console.log('Admin Sidebarprops are here: ', props)
+ const [mobileOpen, setMobileOpen] = React.useState(false)
+
+ const handleDrawerToggle = () => {
+ setMobileOpen(!mobileOpen)
+ }
+
+ const createLinks = (
+ //
+
+
+
+
+ ENATEGA
+
+
+
+ {routes.map((prop, key) => {
+ console.log(key)
+ return prop.appearInSidebar && prop.admin ? (
+ <>
+ {key === 1 ? (
+
+ {t('GENERAL')}
+
+ ) : null}
+ {key === 6 ? (
+
+ {t('MANAGEMENT')}
+
+ ) : null}
+
+
+
+ {t(prop.name)}
+
+
+ >
+ ) : null
+ })}
+
+
+ //
+ )
+
+ const container =
+ window !== undefined ? () => window().document.body : undefined
+
+ return (
+ <>
+ {/* */}
+
+
+
+
+
+
+
+
+ {/* The implementation can be swapped with js to avoid SEO duplication of links. */}
+
+ {createLinks}
+
+
+ {createLinks}
+
+
+ >
+ )
+}
+
+export default withTranslation()(AdminSidebar)
diff --git a/enatega-multivendor-admin/src/components/Sidebar/Sidebar.jsx b/enatega-multivendor-admin/src/components/Sidebar/Sidebar.jsx
new file mode 100644
index 0000000..b440753
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Sidebar/Sidebar.jsx
@@ -0,0 +1,206 @@
+/*eslint-disable*/
+import React from 'react'
+import { withTranslation } from 'react-i18next'
+// nodejs library to set properties for components
+
+import {
+ AppBar,
+ Box,
+ Drawer,
+ IconButton,
+ Toolbar,
+ Typography,
+ Link,
+ SvgIcon,
+ useTheme
+} from '@mui/material'
+import MenuIcon from '@mui/icons-material/Menu'
+import routes from '../../routes'
+import useStyles from './styles'
+import { ReactComponent as Logo } from '../../assets/svg/logo.svg'
+import { useLocation } from 'react-router-dom'
+
+const drawerWidth = 240
+function Sidebar(props) {
+ const theme = useTheme()
+ const location = useLocation()
+ const classes = useStyles()
+ const restaurantId = localStorage.getItem('restaurantId')
+ const restaurantImage = localStorage.getItem('restaurantImage')
+ const restaurantName = localStorage.getItem('restaurantName')
+ const [mobileOpen, setMobileOpen] = React.useState(false)
+ const { window, t } = props
+ console.log('SideBar props are here: ', props)
+ const handleDrawerToggle = () => {
+ setMobileOpen(!mobileOpen)
+ }
+ const container =
+ window !== undefined ? () => window().document.body : undefined
+
+ const createLinks = (
+
+
+
+
+ ENATEGA
+
+
+ {restaurantName && restaurantImage ? (
+
+
+
+ {restaurantName}
+
+
+ ) : null}
+
+
+ {routes.map((prop, key) => {
+ console.log(key, prop.name)
+ if (
+ JSON.parse(localStorage.getItem('user-enatega')).userType ===
+ 'ADMIN'
+ ) {
+ return prop.appearInSidebar && !prop.admin ? (
+ <>
+ {key === 14 ? (
+
+ {t('RESTAURANT')}
+
+ ) : null}
+ {key === 19 ? (
+
+ {t('MANAGEMENT')}
+
+ ) : null}
+
+
+
+ {t(prop.name)}
+
+
+ >
+ ) : null
+ } else {
+ return prop.appearInSidebar &&
+ !prop.admin &&
+ prop.name != t('BackToAdmin') ? (
+ <>
+
+
+
+ {prop.name}
+
+
+ >
+ ) : null
+ }
+ })}
+
+
+ )
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+ {/* The implementation can be swapped with js to avoid SEO duplication of links. */}
+
+ {createLinks}
+
+
+ {createLinks}
+
+
+ >
+ )
+}
+
+export default withTranslation()(Sidebar)
diff --git a/enatega-multivendor-admin/src/components/Sidebar/styles.js b/enatega-multivendor-admin/src/components/Sidebar/styles.js
new file mode 100644
index 0000000..4aeb1c7
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Sidebar/styles.js
@@ -0,0 +1,85 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ rowDisplay: { display: 'flex', flexDirection: 'row' },
+ logo: {
+ marginLeft: -10
+ },
+ sidebarContainer: {
+ backgroundColor: theme.palette.primary.main2,
+ overflowY: 'auto',
+ '&::-webkit-scrollbar': {
+ width: 0
+ }
+ },
+ sidebarBox: {
+ backgroundColor: theme.palette.common.white,
+ padding: '5px 15px 5px 5px',
+ borderRadius: '0px 35px 35px 0px',
+ overflowY: 'auto',
+ '&::-webkit-scrollbar': {
+ width: 0
+ },
+ height: '100%'
+ },
+ sidebarList: { padding: '5px 5px 20px 10px' },
+ sidebarLink: {
+ height: '18px',
+ backgroundColor: theme.palette.background.primary,
+ marginTop: 8,
+ padding: '7px 10px',
+ borderRadius: 10,
+
+ '&:hover': {
+ backgroundColor: theme.palette.primary.main2,
+ boxShadow: `0px 0px 5px ${theme.palette.warning.darkest}`
+ }
+ },
+ active: {
+ backgroundColor: theme.palette.primary.main2,
+ boxShadow: `0px 0px 5px ${theme.palette.warning.darkest}`
+ },
+ blackText: {
+ color: 'black',
+ fontWeight: 400
+ },
+ whiteText: {
+ color: 'white',
+ fontWeight: 400
+ },
+ linkText: {
+ fontSize: 13,
+ fontWeight: 400,
+ paddingLeft: 12,
+ marginTop: -2
+ },
+ headingText: {
+ marginTop: 10,
+ marginBottom: 10,
+ fontSize: 15,
+ color: theme.palette.common.black
+ },
+ logoText: {
+ fontWeight: 'bold',
+ paddingLeft: 10,
+ fontSize: 21
+ },
+ restContainer: {
+ marginLeft: 10,
+ padding: 10,
+ backgroundColor: theme.palette.background.primary,
+ borderRadius: 10,
+ marginRight: 7
+ },
+ restText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: theme.palette.common.black
+ },
+ restImage: {
+ borderRadius: 5,
+ marginRight: 10
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/TableHeader.jsx b/enatega-multivendor-admin/src/components/TableHeader.jsx
new file mode 100644
index 0000000..5fcc459
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/TableHeader.jsx
@@ -0,0 +1,6 @@
+import React from 'react'
+const TableHeader = ({ title }) => (
+ {title}
+)
+
+export default TableHeader
diff --git a/enatega-multivendor-admin/src/components/TableHeader/SearchBar.jsx b/enatega-multivendor-admin/src/components/TableHeader/SearchBar.jsx
new file mode 100644
index 0000000..f0c88d5
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/TableHeader/SearchBar.jsx
@@ -0,0 +1,51 @@
+import React from 'react'
+import { Input, InputAdornment, IconButton, Box, useTheme } from '@mui/material'
+import SearchIcon from '@mui/icons-material/Search'
+import RefreshIcon from '@mui/icons-material/Refresh'
+import useStyles from './styles'
+import { withTranslation, useTranslation } from 'react-i18next'
+
+function SearchBar(props) {
+ const theme = useTheme()
+ const { t } = useTranslation()
+ const classes = useStyles()
+
+ return (
+
+
+
+
+
+
+
+ }
+ disableUnderline
+ id="basic-input"
+ />
+
+ )
+}
+
+export default withTranslation()(SearchBar)
diff --git a/enatega-multivendor-admin/src/components/TableHeader/styles.js b/enatega-multivendor-admin/src/components/TableHeader/styles.js
new file mode 100644
index 0000000..ebc8eb3
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/TableHeader/styles.js
@@ -0,0 +1,8 @@
+import { makeStyles } from '@mui/styles'
+const useStyles = makeStyles(theme => ({
+ container: {
+ marginTop: -40
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Tipping/Tipping.jsx b/enatega-multivendor-admin/src/components/Tipping/Tipping.jsx
new file mode 100644
index 0000000..57eb801
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Tipping/Tipping.jsx
@@ -0,0 +1,239 @@
+import React, { useRef, useState } from 'react'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import { Box, Typography, Input, Button, Alert, Grid } from '@mui/material'
+import { editTipping, getTipping, createTipping } from '../../apollo'
+
+const GET_TIPPING = gql`
+ ${getTipping}
+`
+const EDIT_TIPPING = gql`
+ ${editTipping}
+`
+
+const CREATE_TIPPING = gql`
+ ${createTipping}
+`
+
+function Tipping(props) {
+ const { t } = props
+ const formRef = useRef()
+ // const mutation = props.coupon ? EDIT_COUPON : CREATE_COUPON
+ const [tip1Error, setTip1Error] = useState(null)
+ const [tip2Error, setTip2Error] = useState(null)
+ const [tip3Error, setTip3Error] = useState(null)
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const onCompleted = data => {
+ const message = t('TippingUpdated')
+ successSetter(message)
+ setTip1Error(null)
+ setTip2Error(null)
+ setTip3Error(null)
+ mainErrorSetter('')
+ clearFields()
+ setTimeout(hideAlert, 3000)
+ }
+ const onError = error => {
+ let message = ''
+ try {
+ message = error.graphQLErrors[0].message
+ } catch (err) {
+ message = t('ActionFailedTryAgain')
+ }
+ successSetter('')
+ mainErrorSetter(message)
+ setTimeout(hideAlert, 3000)
+ }
+ const onSubmitValidaiton = () => {
+ const form = formRef.current
+ const tip1 = form.tip1.value
+ const tip2 = form.tip2.value
+ const tip3 = form.tip3.value
+
+ const tip1Errors = !validateFunc({ tip: tip1 }, 'tip')
+ const tip2Errors = !validateFunc({ tip: tip2 }, 'tip')
+ const tip3Errors = !validateFunc({ tip: tip3 }, 'tip')
+
+ setTip1Error(tip1Errors)
+ setTip2Error(tip2Errors)
+ setTip3Error(tip3Errors)
+
+ if (!(tip1Errors && tip2Errors && tip3Errors)) {
+ mainErrorSetter(t('FieldsRequired'))
+ }
+ return tip1Errors && tip2Errors && tip3Errors
+ // setTimeout(hideAlert, 3000)
+ }
+ const { data } = useQuery(GET_TIPPING, onError, onCompleted)
+ const mutation = data && data.tips._id ? EDIT_TIPPING : CREATE_TIPPING
+
+ const [mutate, { loading }] = useMutation(mutation, { onError, onCompleted })
+
+ const clearFields = () => {
+ formRef.current.reset()
+ }
+
+ const hideAlert = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {props.coupon ? t('EditTipping') : t('AddTipping')}
+
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+
+ )
+}
+
+export default withTranslation()(Tipping)
diff --git a/enatega-multivendor-admin/src/components/Tipping/styles.js b/enatega-multivendor-admin/src/components/Tipping/styles.js
new file mode 100644
index 0000000..c1fbd42
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Tipping/styles.js
@@ -0,0 +1,51 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/Vendor/Vendor.jsx b/enatega-multivendor-admin/src/components/Vendor/Vendor.jsx
new file mode 100644
index 0000000..40ad660
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Vendor/Vendor.jsx
@@ -0,0 +1,211 @@
+import React, { useRef, useState } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+import { createVendor, editVendor, getVendors } from '../../apollo'
+import { Input, Button, Alert, Box, Typography, Checkbox } from '@mui/material'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+
+const CREATE_VENDOR = gql`
+ ${createVendor}
+`
+const EDIT_VENDOR = gql`
+ ${editVendor}
+`
+const GET_VENDORS = gql`
+ ${getVendors}
+`
+
+function Vendor(props) {
+ const formRef = useRef()
+ const [showPassword, setShowPassword] = useState(false)
+ const mutation = props.vendor ? EDIT_VENDOR : CREATE_VENDOR
+ const email = props.vendor ? props.vendor.email : ''
+ const [error, errorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [emailError, emailErrorSetter] = useState(null)
+ const [passError, passErrorSetter] = useState(null)
+ const { t } = props
+ console.log('vendor props: ', props)
+ const onCompleted = data => {
+ if (!props.vendor) clearFields()
+ const message = props.vendor
+ ? t('VendorUpdatedSuccessfully')
+ : t('VendorAddedSuccessfully')
+ errorSetter('')
+ successSetter(message)
+ setTimeout(hideAlert, 3000)
+ }
+
+ const onError = ({ graphQLErrors, networkError }) => {
+ successSetter('')
+ if (graphQLErrors) errorSetter(graphQLErrors[0].message)
+ else if (networkError) errorSetter(networkError.result.errors[0].message)
+ else errorSetter('Something went wrong!')
+ setTimeout(hideAlert, 3000)
+ }
+ const [mutate, { loading: mutateLoading }] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_VENDORS }],
+ onError,
+ onCompleted
+ })
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+
+ const onSubmitValidaiton = () => {
+ const emailError = !validateFunc(
+ { email: formRef.current['input-email'].value },
+ 'email'
+ )
+ const passwordError = props.vendor
+ ? true
+ : !validateFunc(
+ { password: formRef.current['input-password'].value },
+ 'password'
+ )
+
+ emailErrorSetter(emailError)
+ passErrorSetter(passwordError)
+ return emailError && passwordError
+ }
+ const clearFields = () => {
+ formRef.current.reset()
+ emailErrorSetter('')
+ passErrorSetter('')
+ }
+
+ const hideAlert = () => {
+ errorSetter('')
+ successSetter('')
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+
+
+ {props.vendor ? t('EditVendor') : t('AddVendor')}
+
+
+ {/* */}
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {error && (
+
+ {error}
+
+ )}
+
+
+
+ )
+}
+export default withTranslation()(Vendor)
diff --git a/enatega-multivendor-admin/src/components/Vendor/styles.js b/enatega-multivendor-admin/src/components/Vendor/styles.js
new file mode 100644
index 0000000..9f1a26a
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Vendor/styles.js
@@ -0,0 +1,47 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/WithdrawRequest/WithdrawRequest.jsx b/enatega-multivendor-admin/src/components/WithdrawRequest/WithdrawRequest.jsx
new file mode 100644
index 0000000..9361d6e
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/WithdrawRequest/WithdrawRequest.jsx
@@ -0,0 +1,326 @@
+import React, { useState, useRef } from 'react'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+// core components
+import {
+ createRider,
+ editRider,
+ getRiders,
+ getZones,
+ getAvailableRiders
+} from '../../apollo'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import {
+ Box,
+ Switch,
+ Typography,
+ Input,
+ Alert,
+ Select,
+ MenuItem,
+ Button
+} from '@mui/material'
+
+const CREATE_RIDER = gql`
+ ${createRider}
+`
+const EDIT_RIDER = gql`
+ ${editRider}
+`
+const GET_RIDERS = gql`
+ ${getRiders}
+`
+const GET_ZONES = gql`
+ ${getZones}
+`
+const GET_AVAILABLE_RIDERS = gql`
+ ${getAvailableRiders}
+`
+
+function WithdrawRequest(props) {
+ const formRef = useRef()
+ const mutation = props.rider ? EDIT_RIDER : CREATE_RIDER
+ const name = props.rider ? props.rider.name : ''
+ const userName = props.rider ? props.rider.username : ''
+ const password = props.rider ? props.rider.password : ''
+ const phone = props.rider ? props.rider.phone : ''
+ const zone = props.rider ? props.rider.zone._id : ''
+ const [mainError, mainErrorSetter] = useState('')
+ const [success, successSetter] = useState('')
+ const [nameError, nameErrorSetter] = useState(null)
+ const [usernameError, usernameErrorSetter] = useState(null)
+ const [passwordError, passwordErrorSetter] = useState(null)
+ const [phoneError, phoneErrorSetter] = useState(null)
+ const [zoneError, zoneErrorSetter] = useState(null)
+ const [riderAvailable, setRiderAvailable] = useState(
+ props.rider ? props.rider.available : true
+ )
+ const [riderZone, setRiderZone] = useState(
+ props.rider ? props.rider.zone._id : ''
+ )
+
+ const onCompleted = data => {
+ if (!props.rider) clearFields()
+ const message = props.rider
+ ? t('RiderUpdatedSuccessfully')
+ : t('RiderAddedSuccessfully')
+ mainErrorSetter('')
+ successSetter(message)
+ setTimeout(hideAlert, 5000)
+ }
+ const onError = ({ graphQLErrors, networkError }) => {
+ if (graphQLErrors) {
+ mainErrorSetter(graphQLErrors[0].message)
+ }
+ if (networkError) {
+ mainErrorSetter(networkError.result.errors[0].message)
+ }
+ successSetter('')
+ setTimeout(hideAlert, 5000)
+ }
+ const [mutate, { loading }] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_RIDERS }, { query: GET_AVAILABLE_RIDERS }],
+ onError,
+ onCompleted
+ })
+ const { data } = useQuery(GET_ZONES)
+
+ const onBlur = (setter, field, state) => {
+ setter(!validateFunc({ [field]: state }, field))
+ }
+ const onSubmitValidaiton = () => {
+ const nameError = !validateFunc(
+ { name: formRef.current['input-name'].value },
+ 'name'
+ )
+ const usernameError = !validateFunc(
+ { username: formRef.current['input-userName'].value },
+ 'username'
+ )
+ const passwordError = !validateFunc(
+ { password: formRef.current['input-password'].value },
+ 'password'
+ )
+ const phoneError = !validateFunc(
+ { phone: formRef.current['input-phone'].value },
+ 'phone'
+ )
+ const zoneError = !validateFunc(
+ { zone: formRef.current['input-zone'].value },
+ 'zone'
+ )
+
+ nameErrorSetter(nameError)
+ usernameErrorSetter(usernameError)
+ phoneErrorSetter(phoneError)
+ passwordErrorSetter(passwordError)
+ zoneErrorSetter(zoneError)
+ return (
+ nameError && usernameError && phoneError && passwordError && zoneError
+ )
+ }
+ const clearFields = () => {
+ formRef.current.reset()
+ nameErrorSetter(null)
+ usernameErrorSetter(null)
+ passwordErrorSetter(null)
+ phoneErrorSetter(null)
+ zoneErrorSetter(null)
+ }
+
+ const hideAlert = () => {
+ mainErrorSetter('')
+ successSetter('')
+ }
+ const { t } = props
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+
+
+
+
+ {props.rider ? t('EditRider') : t('AddRider')}
+
+
+
+ {t('Available')}
+ setRiderAvailable(e.target.checked)}
+ id="input-available"
+ name="input-available"
+ style={{ color: 'black' }}
+ />
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+
+ )
+}
+export default withTranslation()(WithdrawRequest)
diff --git a/enatega-multivendor-admin/src/components/Zone/Zone.jsx b/enatega-multivendor-admin/src/components/Zone/Zone.jsx
new file mode 100644
index 0000000..dacdbbd
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Zone/Zone.jsx
@@ -0,0 +1,292 @@
+import React, { useState, useRef, useCallback } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { validateFunc } from '../../constraints/constraints'
+import { withTranslation } from 'react-i18next'
+
+import { GoogleMap, Polygon } from '@react-google-maps/api'
+import useStyles from './styles'
+import useGlobalStyles from '../../utils/globalStyles'
+import { Box, Typography, Input, Button, Alert, Grid } from '@mui/material'
+
+// core components
+import { createZone, editZone, getZones } from '../../apollo'
+import { transformPath, transformPolygon } from '../../utils/coordinates'
+import ConfigurableValues from '../../config/constants'
+
+const CREATE_ZONE = gql`
+ ${createZone}
+`
+const EDIT_ZONE = gql`
+ ${editZone}
+`
+const GET_ZONE = gql`
+ ${getZones}
+`
+
+const Zone = props => {
+ const [path, setPath] = useState(
+ props.zone ? transformPolygon(props.zone.location.coordinates[0]) : []
+ )
+ const {PAID_VERSION}=ConfigurableValues()
+ const [mutation] = useState(props.zone ? EDIT_ZONE : CREATE_ZONE)
+ const [title, setTitle] = useState(props.zone ? props.zone.title : '')
+ const [description, setDescription] = useState(
+ props.zone ? props.zone.description : ''
+ )
+ const listenersRef = useRef([])
+ const [errors, setErrors] = useState('')
+ const [success, setSuccess] = useState('')
+ const [titleError, setTitleError] = useState(null)
+ const [descriptionError, setDescriptionError] = useState(null)
+
+ const onCompleted = data => {
+ if (!props.zone) clearFields()
+ const message = props.zone
+ ? t('ZoneUpdatedSuccessfully')
+ : t('ZoneAddedSuccessfully')
+ setErrors('')
+ setSuccess(message)
+ setTimeout(hideAlert, 3000)
+ }
+
+ const onError = error => {
+ setErrors(error.message)
+ setSuccess('')
+ setTimeout(hideAlert, 3000)
+ }
+
+ const [mutate /*{ loading }*/] = useMutation(mutation, {
+ refetchQueries: [{ query: GET_ZONE }],
+ onError,
+ onCompleted
+ })
+
+ const [center] = useState(
+ props.zone
+ ? setCenter(props.zone.location.coordinates[0])
+ : { lat: 33.684422, lng: 73.047882 }
+ )
+
+ const polygonRef = useRef()
+
+ const onClick = e => {
+ setPath([...path, { lat: e.latLng.lat(), lng: e.latLng.lng() }])
+ }
+
+ // Call setPath with new edited path
+ const onEdit = useCallback(() => {
+ if (polygonRef.current) {
+ const nextPath = polygonRef.current
+ .getPath()
+ .getArray()
+ .map(latLng => {
+ return { lat: latLng.lat(), lng: latLng.lng() }
+ })
+ setPath(nextPath)
+ }
+ }, [setPath])
+
+ const onLoadPolygon = useCallback(
+ polygon => {
+ polygonRef.current = polygon
+ const path = polygon.getPath()
+ listenersRef.current.push(
+ path.addListener('set_at', onEdit),
+ path.addListener('insert_at', onEdit),
+ path.addListener('remove_at', onEdit)
+ )
+ },
+ [onEdit]
+ )
+
+ const onUnmount = useCallback(() => {
+ listenersRef.current.forEach(lis => lis.remove())
+ polygonRef.current = null
+ }, [])
+
+ function setCenter(coordinates) {
+ return { lat: coordinates[0][1], lng: coordinates[0][0] }
+ }
+
+ const onSubmitValidation = () => {
+ setErrors('')
+ const titleErrors = !validateFunc({ title: title }, 'title')
+ const descriptionErrors = !validateFunc(
+ { description: description },
+ 'description'
+ )
+ let zoneErrors = true
+ if (path.length < 3) {
+ zoneErrors = false
+ setErrors(t('SetZoneOnMap'))
+ return false
+ }
+
+ setTitleError(titleErrors)
+ setDescriptionError(descriptionErrors)
+ return titleErrors && descriptionErrors && zoneErrors
+ }
+
+ const clearFields = () => {
+ setTitle('')
+ setDescription('')
+ setTitleError(null)
+ setDescriptionError(null)
+ setPath([])
+ }
+
+ const hideAlert = () => {
+ setErrors('')
+ setSuccess('')
+ }
+
+ const { t } = props
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+ {props.zone ? t('EditZone') : t('AddZone')}
+
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {errors && (
+
+ {errors}
+
+ )}
+
+
+
+ )
+}
+
+export default withTranslation()(Zone)
diff --git a/enatega-multivendor-admin/src/components/Zone/styles.js b/enatega-multivendor-admin/src/components/Zone/styles.js
new file mode 100644
index 0000000..c1fbd42
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/Zone/styles.js
@@ -0,0 +1,51 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/components/styles.js b/enatega-multivendor-admin/src/components/styles.js
new file mode 100644
index 0000000..2335e72
--- /dev/null
+++ b/enatega-multivendor-admin/src/components/styles.js
@@ -0,0 +1,58 @@
+import { makeStyles } from '@mui/styles'
+
+const useStyles = makeStyles(theme => ({
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ container: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center',
+ paddingBottom: 5
+ },
+ heading: {
+ backgroundColor: theme.palette.primary.main2,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ heading2: {
+ backgroundColor: theme.palette.primary.main3,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ headingBlack: {
+ backgroundColor: theme.palette.common.black,
+ width: '50%',
+ padding: 10,
+ borderRadius: '20px 20px 20px 0',
+ textAlign: 'center'
+ },
+ text: {
+ color: theme.palette.common.black,
+ fontWeight: 'bold'
+ },
+ textWhite: {
+ color: theme.palette.common.white,
+ fontWeight: 'bold'
+ },
+ form: {
+ margin: 25,
+ alignItems: 'center'
+ },
+ labelText: {
+ textAlign: 'left',
+ marginLeft: '4%',
+ fontSize: '15px',
+ fontWeight: '500',
+ marginTop: '10px'
+ }
+}))
+
+export default useStyles
diff --git a/enatega-multivendor-admin/src/config/constants.js b/enatega-multivendor-admin/src/config/constants.js
new file mode 100644
index 0000000..ff38daa
--- /dev/null
+++ b/enatega-multivendor-admin/src/config/constants.js
@@ -0,0 +1,45 @@
+import { useContext } from 'react'
+import ConfigurationContext from '../context/Configuration'
+
+const ConfigurableValues = () => {
+ const configuration = useContext(ConfigurationContext)
+ console.log('configuration', configuration)
+ const SERVER_URL = 'https://enatega-multivendor.up.railway.app'
+ const WS_SERVER_URL = 'wss://enatega-multivendor.up.railway.app'
+ // const SERVER_URL = 'http://10.97.17.9:8001'
+ // const WS_SERVER_URL = 'wss://10.97.17.9:8001'
+ const GOOGLE_MAPS_KEY = configuration.googleApiKey
+ const FIREBASE_KEY = configuration.firebaseKey
+ const APP_ID = configuration.appId
+ const AUTH_DOMAIN = configuration.authDomain
+ const STORAGE_BUCKET = configuration.storageBucket
+ const MSG_SENDER_ID = configuration.msgSenderId
+ const MEASUREMENT_ID = configuration.measurementId
+ const PROJECT_ID = configuration.projectId
+ const SENTRY_DSN = configuration.dashboardSentryUrl
+ const CLOUDINARY_UPLOAD_URL = configuration.cloudinaryUploadUrl
+ const CLOUDINARY_FOOD = configuration.cloudinaryApiKey
+ const VAPID_KEY =
+ 'BOpVOtmawD0hzOR0F5NQTz_7oTlNVwgKX_EgElDnFuILsaE_jWYPIExAMIIGS-nYmy1lhf2QWFHQnDEFWNG_Z5w'
+ const PAID_VERSION = configuration.isPaidVersion
+
+ return {
+ GOOGLE_MAPS_KEY,
+ FIREBASE_KEY,
+ APP_ID,
+ AUTH_DOMAIN,
+ STORAGE_BUCKET,
+ MSG_SENDER_ID,
+ MEASUREMENT_ID,
+ PROJECT_ID,
+ SERVER_URL,
+ WS_SERVER_URL,
+ SENTRY_DSN,
+ CLOUDINARY_UPLOAD_URL,
+ CLOUDINARY_FOOD,
+ VAPID_KEY,
+ PAID_VERSION
+ }
+}
+
+export default ConfigurableValues
diff --git a/enatega-multivendor-admin/src/config/currencies.js b/enatega-multivendor-admin/src/config/currencies.js
new file mode 100644
index 0000000..4dfb2c3
--- /dev/null
+++ b/enatega-multivendor-admin/src/config/currencies.js
@@ -0,0 +1,165 @@
+export const stripeCurrencies = [
+ { currency: 'USD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AED', currencySymbol: 'د.إ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AFN', currencySymbol: '؋', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ALL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AMD', currencySymbol: '֏', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ANG', currencySymbol: 'ƒ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AOA', currencySymbol: 'Kz', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ARS', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AUD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AWG', currencySymbol: 'ƒ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AZN', currencySymbol: '₼', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BAM', currencySymbol: 'BAM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BBD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BDT', currencySymbol: '৳', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BGN', currencySymbol: 'лв', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BIF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'BMD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BND', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BOB', currencySymbol: 'Bs.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BRL', currencySymbol: 'R$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BSD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BWP', currencySymbol: 'P', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BZD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CAD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CDF', currencySymbol: 'Fr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CHF', currencySymbol: 'Fr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CLP', currencySymbol: '$', multiplier: 1, type: 'STRIPE' },
+ { currency: 'CNY', currencySymbol: '¥', multiplier: 100, type: 'STRIPE' },
+ { currency: 'COP', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CRC', currencySymbol: '₡', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CVE', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CZK', currencySymbol: 'Kč', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DJF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'DKK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DOP', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DZD', currencySymbol: 'د.ج', multiplier: 100, type: 'STRIPE' },
+ { currency: 'EGP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ETB', currencySymbol: 'Br', multiplier: 100, type: 'STRIPE' },
+ { currency: 'EUR', currencySymbol: '€', multiplier: 100, type: 'STRIPE' },
+ { currency: 'FJD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'FKP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GBP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GEL', currencySymbol: '₾', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GIP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GMD', currencySymbol: 'D', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GNF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'GTQ', currencySymbol: 'Q', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GYD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HKD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HNL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HRK', currencySymbol: 'kn', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HTG', currencySymbol: 'G', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HUF', currencySymbol: 'Ft', multiplier: 100, type: 'STRIPE' },
+ { currency: 'IDR', currencySymbol: 'Rp', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ILS', currencySymbol: 'ع.د', multiplier: 100, type: 'STRIPE' },
+ { currency: 'INR', currencySymbol: '₹', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ISK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'JMD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'JPY', currencySymbol: '¥', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KES', currencySymbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KGS', currencySymbol: 'с', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KHR', currencySymbol: '៛', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KMF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KRW', currencySymbol: '₩', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KYD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KZT', currencySymbol: '₸', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LAK', currencySymbol: '₭', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LBP', currencySymbol: 'ل.ل', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LKR', currencySymbol: 'Rs', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LRD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LSL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MAD', currencySymbol: 'د.م.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MDL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MGA', currencySymbol: 'Ar', multiplier: 1, type: 'STRIPE' },
+ { currency: 'MKD', currencySymbol: 'ден', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MMK', currencySymbol: 'Ks', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MNT', currencySymbol: '₮', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MOP', currencySymbol: 'P', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MRO', currencySymbol: 'UM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MUR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MVR', currencySymbol: '.ރ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MWK', currencySymbol: 'MK', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MXN', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MYR', currencySymbol: 'RM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MZN', currencySymbol: 'MT', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NAD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NGN', currencySymbol: '₦', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NIO', currencySymbol: 'C$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NOK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NPR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NZD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PAB', currencySymbol: 'B/.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PEN', currencySymbol: 'S/.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PGK', currencySymbol: 'K', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PHP', currencySymbol: '₱', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PKR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PLN', currencySymbol: 'zł', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PYG', currencySymbol: '₲', multiplier: 1, type: 'STRIPE' },
+ { currency: 'QAR', currencySymbol: 'ر.ق', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RON', currencySymbol: 'lei', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RSD', currencySymbol: 'дин', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RUB', currencySymbol: '₽', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RWF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'SAR', currencySymbol: 'ر.س', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SBD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SCR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SEK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SGD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SHP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SLL', currencySymbol: 'Le', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SOS', currencySymbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SRD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'STD', currencySymbol: 'Db', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SZL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'THB', currencySymbol: '฿', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TJS', currencySymbol: 'ЅМ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TOP', currencySymbol: 'T$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TRY', currencySymbol: '₺', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TTD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TWD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TZS', currencySymbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UAH', currencySymbol: '₴', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UGX', currencySymbol: 'Sh', multiplier: 1, type: 'STRIPE' },
+ { currency: 'UYU', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UZS', currencySymbol: 'сўм', multiplier: 100, type: 'STRIPE' },
+ { currency: 'VND', currencySymbol: '₫', multiplier: 1, type: 'STRIPE' },
+ { currency: 'VUV', currencySymbol: 'Vt', multiplier: 1, type: 'STRIPE' },
+ { currency: 'WST', currencySymbol: 'T', multiplier: 100, type: 'STRIPE' },
+ { currency: 'XAF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'XCD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'XOF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'XPF', currencySymbol: '₣', multiplier: 1, type: 'STRIPE' },
+ { currency: 'YER', currencySymbol: '﷼', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ZAR', currencySymbol: 'Rs', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ZMW', currencySymbol: 'ZK', multiplier: 100, type: 'STRIPE' }
+]
+
+export const paypalCurrencies = [
+ { currency: 'AUD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'BRL', currencySymbol: 'R$', type: 'PAYPAL' },
+ { currency: 'CAD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'CZK', currencySymbol: 'Kč', type: 'PAYPAL' },
+ { currency: 'DKK', currencySymbol: 'kr', type: 'PAYPAL' },
+ { currency: 'EUR', currencySymbol: '€', type: 'PAYPAL' },
+ { currency: 'HKD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'HUF', currencySymbol: 'Ft', type: 'PAYPAL' },
+ { currency: 'INR', currencySymbol: '₹', type: 'PAYPAL' },
+ { currency: 'ILS', currencySymbol: 'ع.د', type: 'PAYPAL' },
+ { currency: 'JPY', currencySymbol: '¥', type: 'PAYPAL' },
+ { currency: 'MYR', currencySymbol: 'RM', type: 'PAYPAL' },
+ { currency: 'MXN', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'TWD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'NZD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'NOK', currencySymbol: 'kr', type: 'PAYPAL' },
+ { currency: 'PHP', currencySymbol: '₱', type: 'PAYPAL' },
+ { currency: 'PLN', currencySymbol: 'zł', type: 'PAYPAL' },
+ { currency: 'GBP', currencySymbol: '£', type: 'PAYPAL' },
+ { currency: 'RUB', currencySymbol: '₽', type: 'PAYPAL' },
+ { currency: 'SGD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'SEK', currencySymbol: 'kr', type: 'PAYPAL' },
+ { currency: 'CHF', currencySymbol: 'Fr', type: 'PAYPAL' },
+ { currency: 'THB', currencySymbol: '฿', type: 'PAYPAL' },
+ { currency: 'USD', currencySymbol: '$', type: 'PAYPAL' }
+]
diff --git a/enatega-multivendor-admin/src/constraints/constraints.js b/enatega-multivendor-admin/src/constraints/constraints.js
new file mode 100644
index 0000000..8249a03
--- /dev/null
+++ b/enatega-multivendor-admin/src/constraints/constraints.js
@@ -0,0 +1,269 @@
+import { validate } from 'validate.js'
+
+const constraints = {
+ confirmPassword: {
+ presence: {
+ allowEmpty: false
+ },
+ equality: {
+ attribute: 'password',
+ message: '^The passwords does not match'
+ }
+ },
+ prefix: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ email: {
+ email: true
+ },
+ password: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ phone: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ address: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ lat: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ deliveryCharges: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ deliveryRate: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ deliveryTime: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ minimumOrder: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ orderPrefix: {
+ presence: true
+ },
+ long: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ name: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ username: {
+ presence: {
+ allowEmpty: false,
+ message: '^UsernameCannotBeBlank'
+ },
+ format: {
+ pattern: /^[^\s]+$/,
+ message: '^UsernameCannotContainSpaces'
+ }
+ },
+ title: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ description: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ categoryTitle: {
+ presence: true,
+ length: {
+ minimum: 1,
+ maximum: 25
+ }
+ },
+ categoryDescription: {
+ presence: true,
+ length: {
+ minimum: 0,
+ maximum: 60
+ }
+ },
+ category: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ zone: {
+ presence: true,
+ length: {
+ minimum: 5
+ }
+ },
+ price: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThan: 0
+ }
+ },
+ discounted: {},
+ type: {
+ presence: true,
+ length: {
+ minimum: 1,
+ maximum: 6
+ }
+ },
+ mongoUrl: {
+ url: {
+ scheme: ['mongodb']
+ }
+ },
+ currencyCode: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ currencySymbol: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ reason: {
+ presence: true,
+ length: {
+ minimum: 1,
+ maximum: 30
+ }
+ },
+ optionTitle: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ optionDescription: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ optionPrice: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThanOrEqualTo: 0
+ }
+ },
+ addonTitle: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ addonDescription: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ addonQuantityMinimum: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThanOrEqualTo: 0
+ }
+ },
+ addonQuantityMaximum: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThanOrEqualTo: 1
+ }
+ },
+ tag: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ stock: {
+ presence: true,
+ numericality: {
+ onlyInteger: true,
+ greaterThanOrEqualTo: 0
+ }
+ },
+ code: {
+ presence: {
+ allowEmpty: false
+ }
+ },
+ discount: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThan: 0,
+ lessThan: 100
+ }
+ },
+ tip: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThan: 0,
+ lessThan: 100
+ }
+ },
+ tax: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThan: 0
+ }
+ },
+ taxationCharges: {
+ presence: {
+ allowEmpty: false
+ },
+ numericality: {
+ greaterThanOrEqualTo: 0
+ }
+ }
+}
+
+export const validateFunc = (value, constraint) => {
+ return validate(value, { [constraint]: constraints[constraint] })
+}
+export const validateFuncForRider = (value, constraint) => {
+ const validationResult = validate(value, {
+ [constraint]: constraints[constraint]
+ })
+ if (validationResult !== undefined && validationResult !== null) {
+ if (!constraints[constraint]) {
+ return { isValid: false, errorMessage: 'Invalid constraint' }
+ }
+ return { isValid: false, errorMessage: validationResult[constraint][0] }
+ } else {
+ return { isValid: true, errorMessage: null }
+ }
+}
diff --git a/enatega-multivendor-admin/src/context/Configuration.js b/enatega-multivendor-admin/src/context/Configuration.js
new file mode 100644
index 0000000..0beb737
--- /dev/null
+++ b/enatega-multivendor-admin/src/context/Configuration.js
@@ -0,0 +1,25 @@
+import { gql, useQuery } from '@apollo/client'
+import React from 'react'
+import { getConfiguration } from '../apollo/queries'
+
+const GETCONFIGURATION = gql`
+ ${getConfiguration}
+`
+
+const ConfigurationContext = React.createContext({})
+
+export const ConfigurationProvider = props => {
+ const { loading, data, error } = useQuery(GETCONFIGURATION)
+ const configuration =
+ loading || error || !data.configuration
+ ? { currency: '', currencySymbol: '', deliveryRate: 0 }
+ : data.configuration
+
+ return (
+
+ {props.children}
+
+ )
+}
+export const ConfigurationConsumer = ConfigurationContext.Consumer
+export default ConfigurationContext
diff --git a/enatega-multivendor-admin/src/context/Restaurant.js b/enatega-multivendor-admin/src/context/Restaurant.js
new file mode 100644
index 0000000..8bafe93
--- /dev/null
+++ b/enatega-multivendor-admin/src/context/Restaurant.js
@@ -0,0 +1,14 @@
+import React, { useContext, useState } from 'react'
+export const RestContext = React.createContext()
+
+export const RestProvider = props => {
+ const [image, setImage] = useState()
+ const [name, setName] = useState()
+ const [id, setId] = useState()
+ return (
+
+ {props.children}
+
+ )
+}
+export const useRestaurantContext = () => useContext(RestContext)
diff --git a/enatega-multivendor-admin/src/firebase.js b/enatega-multivendor-admin/src/firebase.js
new file mode 100644
index 0000000..1f5e947
--- /dev/null
+++ b/enatega-multivendor-admin/src/firebase.js
@@ -0,0 +1,38 @@
+// Import the functions you need from the SDKs you need
+import * as firebase from 'firebase/app'
+import { getMessaging, isSupported } from 'firebase/messaging'
+
+// TODO: Add SDKs for Firebase products that you want to use
+// https://firebase.google.com/docs/web/setup#available-libraries
+
+// Your web app's Firebase configuration
+// For Firebase JS SDK v7.20.0 and later, measurementId is optional
+
+export const initialize = (
+ FIREBASE_KEY,
+ AUTH_DOMAIN,
+ PROJECT_ID,
+ STORAGE_BUCKET,
+ MSG_SENDER_ID,
+ APP_ID,
+ MEASUREMENT_ID
+) => {
+ const firebaseConfig = {
+ apiKey: 'AIzaSyCHrV6bF7YPbDjmU5bSd7umSuJen71uUgI',
+ authDomain: 'enatega-multivendor.firebaseapp.com',
+ projectId: 'enatega-multivendor',
+ storageBucket: 'enatega-multivendor.appspot.com',
+ messagingSenderId: '650001300965',
+ appId: '1:650001300965:web:68c10de22ea273b76bc30c',
+ measurementId: 'G-C229R9TNPS'
+ }
+
+ // Initialize Firebase
+ const app = firebase.initializeApp(firebaseConfig)
+ const messaging = getMessaging(app)
+ return messaging
+}
+
+export const isFirebaseSupported = async() => {
+ return await isSupported()
+}
diff --git a/enatega-multivendor-admin/src/i18n.js b/enatega-multivendor-admin/src/i18n.js
new file mode 100644
index 0000000..aa911c1
--- /dev/null
+++ b/enatega-multivendor-admin/src/i18n.js
@@ -0,0 +1,27 @@
+import i18n from 'i18next'
+import { initReactI18next } from 'react-i18next'
+import en from './translations/en'
+import de from './translations/de'
+import fr from './translations/fr'
+import km from './translations/km'
+import zh from './translations/zh'
+import ar from './translations/ar'
+i18n.use(initReactI18next).init({
+ // we init with resources
+ resources: {
+ en,
+ de,
+ fr,
+ km,
+ zh,
+ ar
+ },
+ lng: localStorage.getItem('enatega-language') || 'en',
+ fallbackLng: 'en',
+ debug: true,
+ interpolation: {
+ escapeValue: false // not needed for react!!
+ }
+})
+
+export default i18n
diff --git a/enatega-multivendor-admin/src/index.js b/enatega-multivendor-admin/src/index.js
new file mode 100644
index 0000000..3bdd91d
--- /dev/null
+++ b/enatega-multivendor-admin/src/index.js
@@ -0,0 +1,129 @@
+import React, { useEffect } from 'react'
+
+import ReactDOM from 'react-dom'
+import {
+ ApolloProvider,
+ ApolloClient,
+ InMemoryCache,
+ ApolloLink,
+ concat,
+ createHttpLink,
+ Observable,
+ split
+} from '@apollo/client'
+import { getMainDefinition } from '@apollo/client/utilities'
+import { WebSocketLink } from '@apollo/client/link/ws'
+import 'firebase/messaging'
+import * as Sentry from '@sentry/react'
+import { Integrations } from '@sentry/tracing'
+import ConfigurableValues from './config/constants'
+import { ConfigurationProvider } from './context/Configuration'
+import App from './app'
+import { RestProvider } from './context/Restaurant'
+import { ThemeProvider, StyledEngineProvider } from '@mui/material'
+import theme from './utils/theme'
+
+function Main() {
+ const {
+ SENTRY_DSN,
+ GOOGLE_MAPS_KEY,
+ SERVER_URL,
+ WS_SERVER_URL
+ } = ConfigurableValues()
+ console.log('GOOGLE_MAPS_KEY', GOOGLE_MAPS_KEY)
+ useEffect(() => {
+ Sentry.init({
+ dsn: SENTRY_DSN,
+ integrations: [new Integrations.BrowserTracing()],
+ tracesSampleRate: 0.1
+ })
+ }, [])
+
+ const cache = new InMemoryCache()
+ const httpLink = createHttpLink({
+ uri: `${SERVER_URL}/graphql`
+ })
+ const wsLink = new WebSocketLink({
+ uri: `${WS_SERVER_URL}/graphql`,
+ options: {
+ reconnect: true
+ }
+ })
+ const request = async operation => {
+ const data = localStorage.getItem('user-enatega')
+
+ let token = null
+ if (data) {
+ token = JSON.parse(data).token
+ }
+ operation.setContext({
+ headers: {
+ authorization: token ? `Bearer ${token}` : ''
+ }
+ })
+ }
+
+ const requestLink = new ApolloLink(
+ (operation, forward) =>
+ new Observable(observer => {
+ let handle
+ Promise.resolve(operation)
+ .then(oper => request(oper))
+ .then(() => {
+ handle = forward(operation).subscribe({
+ next: observer.next.bind(observer),
+ error: observer.error.bind(observer),
+ complete: observer.complete.bind(observer)
+ })
+ })
+ .catch(observer.error.bind(observer))
+
+ return () => {
+ if (handle) handle.unsubscribe()
+ }
+ })
+ )
+ const terminatingLink = split(({ query }) => {
+ const { kind, operation } = getMainDefinition(query)
+ return kind === 'OperationDefinition' && operation === 'subscription'
+ }, wsLink)
+
+ const client = new ApolloClient({
+ link: concat(ApolloLink.from([terminatingLink, requestLink]), httpLink),
+ cache,
+ resolvers: {},
+ connectToDevTools: true
+ })
+
+ return (
+
+
+ {/* */}
+
+
+
+
+ {/* */}
+
+ {/* */}
+
+
+
+
+ {/* */}
+
+
+ )
+}
+
+// eslint-disable-next-line react/no-deprecated
+ReactDOM.render( , document.getElementById('root'))
diff --git a/enatega-multivendor-admin/src/layouts/Admin.jsx b/enatega-multivendor-admin/src/layouts/Admin.jsx
new file mode 100644
index 0000000..3c76f74
--- /dev/null
+++ b/enatega-multivendor-admin/src/layouts/Admin.jsx
@@ -0,0 +1,67 @@
+import React, { useRef, useEffect } from 'react'
+import { Route, Switch } from 'react-router-dom'
+// core components
+import AdminNavbar from '../components/Navbars/AdminNavbar'
+import AdminFooter from '../components/Footers/AdminFooter'
+import Sidebar from '../components/Sidebar/Sidebar'
+import routes from '../routes'
+import { Box } from '@mui/material'
+
+function Admin(props) {
+ var divRef = useRef(null)
+
+ useEffect(() => {
+ document.documentElement.scrollTop = 0
+ document.scrollingElement.scrollTop = 0
+ divRef.current.scrollTop = 0
+ }, [])
+
+ const getRoutes = routes => {
+ return routes.map((prop, key) => {
+ if (prop.layout === '/admin') {
+ return (
+
+ )
+ } else {
+ return null
+ }
+ })
+ }
+ const getBrandText = path => {
+ for (let i = 0; i < routes.length; i++) {
+ if (
+ props.location.pathname.indexOf(routes[i].layout + routes[i].path) !==
+ -1
+ ) {
+ return routes[i].name
+ }
+ }
+ return 'Dispatch'
+ }
+
+ return (
+
+
+
+
+ {getRoutes(routes)}
+
+
+
+ )
+}
+
+export default Admin
diff --git a/enatega-multivendor-admin/src/layouts/Auth.jsx b/enatega-multivendor-admin/src/layouts/Auth.jsx
new file mode 100644
index 0000000..c011ed7
--- /dev/null
+++ b/enatega-multivendor-admin/src/layouts/Auth.jsx
@@ -0,0 +1,39 @@
+import React, { useEffect } from 'react'
+import { Route, Switch } from 'react-router-dom'
+
+import { Box } from '@mui/material'
+
+import routes from '../routes'
+
+function Auth() {
+ useEffect(() => {
+ document.body.classList.add('bg-default')
+ return () => {
+ document.body.classList.remove('bg-default')
+ }
+ }, [])
+ const getRoutes = routes => {
+ return routes.map((prop, key) => {
+ if (prop.layout === '/auth') {
+ return (
+
+ )
+ } else {
+ return null
+ }
+ })
+ }
+ return (
+
+
+ {getRoutes(routes)}
+
+
+ )
+}
+
+export default Auth
diff --git a/enatega-multivendor-admin/src/layouts/Restaurant.jsx b/enatega-multivendor-admin/src/layouts/Restaurant.jsx
new file mode 100644
index 0000000..aacc71b
--- /dev/null
+++ b/enatega-multivendor-admin/src/layouts/Restaurant.jsx
@@ -0,0 +1,59 @@
+import React, { useRef, useEffect } from 'react'
+import { Route, Switch } from 'react-router-dom'
+import { Container } from '@mui/material'
+import AdminNavbar from '../components/Navbars/AdminNavbar'
+import AdminFooter from '../components/Footers/AdminFooter'
+
+import routes from '../routes'
+
+function Restaurant(props) {
+ var divRef = useRef(null)
+ useEffect(() => {
+ document.documentElement.scrollTop = 0
+ document.scrollingElement.scrollTop = 0
+ divRef.current.scrollTop = 0
+ }, [])
+
+ const getRoutes = routes => {
+ return routes.map((prop, key) => {
+ if (prop.layout === '/restaurant') {
+ return (
+
+ )
+ } else {
+ return null
+ }
+ })
+ }
+ const getBrandText = path => {
+ for (let i = 0; i < routes.length; i++) {
+ if (
+ props.location.pathname.indexOf(routes[i].layout + routes[i].path) !==
+ -1
+ ) {
+ return routes[i].name
+ }
+ }
+ return 'Brand'
+ }
+ return (
+ <>
+
+
+
{getRoutes(routes)}
+
+
+
+
+ >
+ )
+}
+
+export default Restaurant
diff --git a/enatega-multivendor-admin/src/layouts/SuperAdmin.jsx b/enatega-multivendor-admin/src/layouts/SuperAdmin.jsx
new file mode 100644
index 0000000..e6f5c02
--- /dev/null
+++ b/enatega-multivendor-admin/src/layouts/SuperAdmin.jsx
@@ -0,0 +1,67 @@
+import React, { useEffect, useRef } from 'react'
+import { Route, Switch } from 'react-router-dom'
+// core components
+import AdminNavbar from '../components/Navbars/AdminNavbar'
+import AdminFooter from '../components/Footers/AdminFooter'
+import AdminSidebar from '../components/Sidebar/AdminSidebar'
+
+import routes from '../routes'
+import { Box } from '@mui/material'
+
+function SuperAdmin(props) {
+ var divRef = useRef(null)
+
+ useEffect(() => {
+ document.documentElement.scrollTop = 0
+ document.scrollingElement.scrollTop = 0
+ divRef.current.scrollTop = 0
+ }, [])
+
+ const getRoutes = routes => {
+ return routes.map((prop, key) => {
+ if (prop.layout === '/super_admin') {
+ return (
+
+ )
+ } else {
+ return null
+ }
+ })
+ }
+ const getBrandText = path => {
+ for (let i = 0; i < routes.length; i++) {
+ if (
+ props.location.pathname.indexOf(routes[i].layout + routes[i].path) !==
+ -1
+ ) {
+ return routes[i].name
+ }
+ }
+ return 'Brand'
+ }
+ return (
+
+
+
+
+ {getRoutes(routes)}
+
+
+
+ )
+}
+
+export default SuperAdmin
diff --git a/enatega-multivendor-admin/src/routes.js b/enatega-multivendor-admin/src/routes.js
new file mode 100644
index 0000000..c23f998
--- /dev/null
+++ b/enatega-multivendor-admin/src/routes.js
@@ -0,0 +1,339 @@
+import Login from './views/Login'
+import Category from './views/Category'
+import Food from './views/Food'
+import Profile from './views/VendorProfile'
+import Orders from './views/Orders'
+import Configuration from './views/Configuration' //uncomment this for paid version
+import DemoConfiguration from './views/Configuration1' //comment this for paid version
+import Users from './views/Users'
+import Vendors from './views/Vendors'
+import RestaurantList from './views/RestaurantList'
+import ResetPassword from './views/ForgotPassword'
+import Riders from './views/Riders'
+import Options from './views/Options'
+import Addons from './views/Addons'
+import Coupons from './views/Coupons'
+import Dashboard from './views/Dashboard'
+import Restaurant from './views/Restaurant'
+import Ratings from './views/Rating'
+import Dispatch from './views/Dispatch'
+import Timings from './views/Timings'
+import Tipping from './views/Tipping'
+import Zone from './views/Zone'
+import Sections from './views/Sections'
+import Notifications from './views/Notifications'
+import Payment from './views/Payment'
+import Commission from './views/Commission'
+import DeliveryBoundsAndLocation from './views/DeliveryBoundsAndLocation'
+import DispatchRestaurant from './views/DispatchRestaurant'
+import WithdrawRequest from './views/WithdrawRequest'
+import { ReactComponent as VendorIcon } from './assets/svg/vendor.svg'
+import { ReactComponent as RestaurantIcon } from './assets/svg/restaurant.svg'
+import { ReactComponent as CommissionsIcon } from './assets/svg/commission.svg'
+import { ReactComponent as ConfigurationIcon } from './assets/svg/configuration.svg'
+import { ReactComponent as CouponsIcon } from './assets/svg/coupons.svg'
+import { ReactComponent as DeliveryIcon } from './assets/svg/delivery.svg'
+import { ReactComponent as NotificationsIcon } from './assets/svg/notifications.svg'
+import { ReactComponent as RequestIcon } from './assets/svg/request.svg'
+import { ReactComponent as RiderIcon } from './assets/svg/riders.svg'
+import { ReactComponent as TippingsIcon } from './assets/svg/tipping.svg'
+import { ReactComponent as UserIcon } from './assets/svg/user.svg'
+import { ReactComponent as ZonesIcon } from './assets/svg/zones.svg'
+import { ReactComponent as HomeIcon } from './assets/svg/home.svg'
+import { ReactComponent as AddonsIcon } from './assets/svg/addons.svg'
+import { ReactComponent as BackIcon } from './assets/svg/back.svg'
+import { ReactComponent as CategoryIcon } from './assets/svg/category.svg'
+import { ReactComponent as DashboardIcon } from './assets/svg/dashboard.svg'
+import { ReactComponent as FoodIcon } from './assets/svg/food.svg'
+import { ReactComponent as LocationIcon } from './assets/svg/location.svg'
+import { ReactComponent as OptionIcon } from './assets/svg/option.svg'
+import { ReactComponent as OrderIcon } from './assets/svg/order.svg'
+import { ReactComponent as PaymentIcon } from './assets/svg/payment.svg'
+import { ReactComponent as RatingIcon } from './assets/svg/rating.svg'
+import { ReactComponent as TimingIcon } from './assets/svg/timings.svg'
+import { ReactComponent as RestaurantSectionIcon } from './assets/svg/restSection.svg'
+import SuperAdminDashboard from './views/SuperAdminDashboard'
+import Cuisines from './views/Cuisines'
+
+var routes = [
+ {
+ path: '/dashboard',
+ name: 'Home',
+ icon: HomeIcon,
+ component: SuperAdminDashboard,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/vendors',
+ name: 'Vendors',
+ icon: VendorIcon,
+ component: Vendors,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/restaurants',
+ name: 'Restaurants',
+ icon: RestaurantIcon,
+ component: RestaurantList,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/sections',
+ name: 'Restaurant Sections',
+ icon: RestaurantSectionIcon,
+ component: Sections,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/users',
+ name: 'Users',
+ icon: UserIcon,
+ component: Users,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/riders',
+ name: 'Riders',
+ icon: RiderIcon,
+ component: Riders,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/configuration',
+ name: 'Configuration',
+ icon: ConfigurationIcon,
+ component: Configuration,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/coupons',
+ name: 'Coupons',
+ icon: CouponsIcon,
+ component: Coupons,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/cuisines',
+ name: 'Cousines',
+ icon: CouponsIcon,
+ component: Cuisines,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/tipping',
+ name: 'Tipping',
+ icon: TippingsIcon,
+ component: Tipping,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/zones',
+ name: 'Zone',
+ icon: ZonesIcon,
+ component: Zone,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/dispatch',
+ name: 'Dispatch',
+ icon: DeliveryIcon,
+ component: Dispatch,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/notifications',
+ name: 'Notifications',
+ icon: NotificationsIcon,
+ component: Notifications,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/commission',
+ name: 'Commission Rates',
+ icon: CommissionsIcon,
+ component: Commission,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/withdraw/',
+ name: 'Withdraw Requests',
+ icon: RequestIcon,
+ component: WithdrawRequest,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: true
+ },
+ {
+ path: '/list',
+ name: 'List',
+ icon: 'ni ni-tv-2 text-primary',
+ component: Restaurant,
+ layout: '/restaurant',
+ appearInSidebar: false,
+ admin: false
+ },
+ {
+ path: '/dashboard',
+ name: 'Dashboard',
+ icon: DashboardIcon,
+ component: Dashboard,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/profile',
+ name: 'Profile',
+ icon: UserIcon,
+ component: Profile,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/food',
+ name: 'Food',
+ icon: FoodIcon,
+ component: Food,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/category',
+ name: 'Category',
+ icon: CategoryIcon,
+ component: Category,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/orders',
+ name: 'Orders',
+ icon: OrderIcon,
+ component: Orders,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+
+ {
+ path: '/option',
+ name: 'Option',
+ icon: OptionIcon,
+ component: Options,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/ratings',
+ name: 'Ratings',
+ icon: RatingIcon,
+ component: Ratings,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/addons',
+ name: 'Addons',
+ icon: AddonsIcon,
+ component: Addons,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/timings',
+ name: 'Timings',
+ icon: TimingIcon,
+ component: Timings,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/payment',
+ name: 'Payment',
+ icon: PaymentIcon,
+ component: Payment,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/deliverybounds',
+ name: 'Location',
+ icon: LocationIcon,
+ component: DeliveryBoundsAndLocation,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+
+ {
+ path: '/login',
+ name: 'Login',
+ icon: 'ni ni-key-25 text-info',
+ component: Login,
+ layout: '/auth',
+ appearInSidebar: false
+ },
+ {
+ path: '/reset',
+ name: 'ResetPassword',
+ icon: 'ni ni-key-25 text-info',
+ component: ResetPassword,
+ layout: '/auth',
+ appearInSidebar: false
+ },
+ {
+ path: '/dispatch/:id',
+ name: 'Dispatch',
+ icon: DeliveryIcon,
+ component: DispatchRestaurant,
+ layout: '/admin',
+ appearInSidebar: true,
+ admin: false
+ },
+ {
+ path: '/vendors',
+ name: 'Back to Admin',
+ icon: BackIcon,
+ component: Vendors,
+ layout: '/super_admin',
+ appearInSidebar: true,
+ admin: false
+ }
+]
+export default routes
diff --git a/enatega-multivendor-admin/src/translations/ar.js b/enatega-multivendor-admin/src/translations/ar.js
new file mode 100644
index 0000000..620295b
--- /dev/null
+++ b/enatega-multivendor-admin/src/translations/ar.js
@@ -0,0 +1,305 @@
+const ar = {
+ translation: {
+ 'Sign in credentials': 'بيانات تسجيل الدخول',
+ 'Sign in': 'تسجيل الدخول',
+ 'Add Category': 'إضافة فئة',
+ Title: 'العنوان',
+ Description: 'الوصف',
+ Add: 'إضافة',
+ Remove: 'إزالة',
+ 'Add/Remove': 'إضافة/إزالة',
+ Success: 'نجاح',
+ Danger: 'خطر',
+ Categories: 'الفئات',
+ Image: 'صورة',
+ Header: 'رأس',
+ Loading: 'جار التحميل',
+ Error: 'خطأ',
+ Edit: 'تحرير',
+ Delete: 'حذف',
+ 'Edit Category': 'تحرير الفئة',
+ Save: 'حفظ',
+ 'OrderID prefix': 'بادئة رقم الطلب',
+ Order: 'الطلب',
+ Email: 'البريد الإلكتروني',
+ Password: 'كلمة المرور',
+ Enable: 'تمكين',
+ Disable: 'تعطيل',
+ 'Enable/Disable': 'تمكين/تعطيل',
+ Saving: 'جار الحفظ',
+ Paypal: 'بايبال',
+ 'Client ID': 'معرف العميل',
+ 'Client Secret': 'السر الخاص بالعميل',
+ Sandbox: 'صندوق الرمل',
+ 'Publishable Key': 'مفتاح النشر',
+ 'Secret Key': 'المفتاح السري',
+ 'Delivery Charges': 'رسوم التوصيل',
+ Price: 'السعر',
+ 'Add Food': 'إضافة طعام',
+ Category: 'الفئة',
+ Select: 'اختيار',
+ Variations: 'تغييرات',
+ Type: 'النوع',
+ 'Food Image': 'صورة الطعام',
+ Foods: 'الأطعمة',
+ Actions: 'الإجراءات',
+ 'Edit Food': 'تحرير الطعام',
+ OrderID: 'رقم الطلب',
+ Orders: 'الطلبات',
+ Name: 'الاسم',
+ Items: 'العناصر',
+ Payment: 'الدفع',
+ Status: 'الحالة',
+ Review: 'المراجعة',
+ 'Mark as': 'وسم كـ',
+ Users: 'المستخدمين',
+ Phone: 'الهاتف',
+ Address: 'العنوان',
+ 2019: '2019',
+ 'About Us': 'عنا',
+ Blog: 'المدونة',
+ Welcome: 'مرحبًا',
+ Logout: 'تسجيل الخروج',
+ Dashboard: 'لوحة التحكم',
+ Configuration: 'التكوين',
+ Login: 'تسجيل الدخول',
+ Food: 'طعام',
+ 'Character limit of max length 50': 'الحد الأقصى للحروف (50)',
+ 'Character limit of max length 15': 'الحد الأقصى للحروف (15)',
+ 'Character limit of max length 60': 'الحد الأقصى للحروف (60)',
+ 'Character limit of max length 20': 'الحد الأقصى للحروف (20)',
+ 'Character limit of max length 140': 'الحد الأقصى للحروف (140)',
+ Currency: 'العملة',
+ Delivery: 'التوصيل',
+ 'Currency Code': 'رمز العملة',
+ 'Delivery Rate': 'سعر التوصيل',
+ 'Currency Symbol': 'رمز العملة',
+ enterYourDetailsBelow: 'أدخل تفاصيلك أدناه',
+ LogintoEnatega: 'تسجيل الدخول إلى Enatega',
+ RememberMe: 'تذكرني',
+ ForgotYourPassword: 'نسيت كلمة المرور؟',
+ errorWhileSaving: 'حدث خطأ أثناء الحفظ، حاول مرة أخرى',
+ Saved: 'تم الحفظ',
+ Addons: 'إضافات',
+ AddRemoveAddon: 'إضافة أو إزالة الإضافة',
+ MinQuantity: 'الحد الأدنى للكمية',
+ MinimumQuantity: 'الحد الأدنى للكمية',
+ MaxQuantity: 'الحد الأقصى للكمية',
+ MaximumQuantity: 'الحد الأقصى للكمية',
+ Options: 'الخيارات',
+ NewOption: 'خيار جديد',
+ CategoryUpdatedSuccessfully: 'تم تحديث الفئة بنجاح',
+ CategoryAddedSuccessfully: 'تمت إضافة الفئة بنجاح',
+ ActionFailedTryAgain: 'فشلت العملية. يرجى المحاولة مرة أخرى',
+ PHCategory: 'الفئة، مثل وجبة الإفطار',
+ ChooseCurrency: 'اختيار العملة',
+ ChooseSymbol: 'اختيار الرمز',
+ PHMail: 'على سبيل المثال، something@email.com',
+ EmailName: 'اسم البريد الإلكتروني',
+ PHEnatega: 'على سبيل المثال، Enatega',
+ PHFood: 'على سبيل المثال، FOOD',
+ ClientSecretKey: 'مفتاح العميل السري',
+ Stripe: 'شريط',
+ PublishKey: 'مفتاح النشر',
+ CouponUpdated: 'تم تحديث القسيمة',
+ CouponAdded: 'تمت إضافة القسيمة',
+ Code: 'الرمز',
+ PHCode: 'مثل SALE50',
+ PHDiscount: 'نسبة الخصم، مثل 1-99',
+ FoodUpdatedSuccessfully: 'تم تحديث الطعام بنجاح',
+ FoodAddedSuccessfully: 'تمت إضافة الطعام بنجاح',
+ SelectCategory: 'اختيار الفئة',
+ UploadAnImage: 'تحميل صورة',
+ UniqueTitle: 'العنوان (يجب أن يكون فريداً)',
+ Discounted: 'بخصم',
+ LoadingDots: 'جار التحميل ...',
+ ErrorDots: 'خطأ ...',
+ NewAddon: 'إضافة جديدة',
+ EnategaMultivendor: 'Enatega Multivendor',
+ ResetPassword: 'إعادة تعيين كلمة المرور',
+ EnategaDashboard: 'لوحة تحكم Enatega',
+ UpdateOption: 'تحديث الخيار',
+ AddOption: 'إضافة الخيار',
+ OrderStatusUpdated: 'تم تحديث حالة الطلب',
+ SpecialInstructions: 'تعليمات خاصة',
+ Charges: 'الرسوم',
+ Subtotal: 'المجموع الفرعي',
+ DeliveryFee: 'رسوم التوصيل',
+ TaxCharges: 'رسوم الضرائب',
+ Tip: 'بقشيش',
+ Total: 'الإجمالي',
+ PaymentMethod: 'طريقة الدفع',
+ PaidAmount: 'المبلغ المدفوع',
+ Accepted: 'تم القبول',
+ Accept: 'قبول',
+ Cancelled: 'تم الإلغاء',
+ Cancel: 'إلغاء',
+ PHReasonIfRejected: 'السبب إذا تم رفضه',
+ Datetime: 'التاريخ والوقت',
+ PasswordChangedSuccessfully: 'تم تغيير كلمة المرور بنجاح',
+ ConfirmPassword: 'تأكيد كلمة المرور',
+ Reset: 'إعادة تعيين',
+ RestaurantAdded: 'تمت إضافة المطعم',
+ NetworkError: 'خطأ في الشبكة',
+ FieldsRequired: 'الحقول مطلوبة',
+ Username: 'اسم المستخدم',
+ RestaurantUsername: 'اسم مستخدم المطعم',
+ RestaurantPassword: 'كلمة مرور المطعم',
+ RestaurantName: 'اسم المطعم',
+ RestaurantAddress: 'عنوان المطعم',
+ DeliveryTime: 'وقت التوصيل',
+ MinOrder: 'الحد الأدنى للطلب',
+ SalesTax: 'ضريبة المبيعات',
+ RiderUpdatedSuccessfully: 'تم تحديث الراكب بنجاح',
+ RiderAddedSuccessfully: 'تمت إضافة الراكب بنجاح',
+ UsernameCannotBeBlank: 'لا يمكن أن يكون اسم المستخدم فارغًا',
+ UsernameCannotContainSpaces: 'لا يمكن أن يحتوي اسم المستخدم على مسافات',
+ EditRider: 'تحرير الراكب',
+ AddRider: 'إضافة الراكب',
+ Available: 'متاح',
+ PHRiderName: 'اسم الراكب',
+ Number: 'الرقم',
+ PhoneNumber: 'رقم الهاتف',
+ RiderZone: 'منطقة الراكب',
+ SectionUpdatedSuccessfully: 'تم تحديث القسم بنجاح',
+ SectionAddedSuccessfully: 'تمت إضافة القسم بنجاح',
+ EditSection: 'تحرير القسم',
+ AddSection: 'إضافة القسم',
+ SectionName: 'اسم القسم',
+ Update: 'تحديث',
+ GENERAL: 'عام',
+ MANAGEMENT: 'الإدارة',
+ RESTAURANT: 'المطعم',
+ BackToAdmin: 'العودة إلى الإدارة',
+ Search: 'بحث',
+ TippingUpdated: 'تم تحديث البقشيش',
+ EditTipping: 'تحرير البقشيش',
+ AddTipping: 'إضافة البقشيش',
+ Tip1: 'البقشيش 1',
+ Tip2: 'البقشيش 2',
+ Tip3: 'البقشيش 3',
+ PHTip1: 'البقشيش 1، مثل 10',
+ PHTip2: 'البقشيش 2، مثل 20',
+ PHTip3: 'البقشيش 3، مثل 30',
+ EditVendor: 'تحرير البائع',
+ AddVendor: 'إضافة بائع',
+ PHNumber: 'مثل 123',
+ ZoneUpdatedSuccessfully: 'تم تحديث المنطقة بنجاح',
+ ZoneAddedSuccessfully: 'تمت إضافة المنطقة بنجاح',
+ SetZoneOnMap: 'تحديد المنطقة على الخريطة',
+ EditZone: 'تحرير المنطقة',
+ AddZone: 'إضافة المنطقة',
+ Minimum: 'الحد الأدنى',
+ Maximum: 'الحد الأقصى',
+ Action: 'الإجراء',
+ AvailableAfterPurchasing: 'ستكون هذه الميزة متاحة بعد شراء المنتج',
+ CommissionRates: 'أسعار العمولة',
+ PHCommission: 'نسبة العمولة',
+ Discount: 'خصم %',
+ Coupons: 'قسائم',
+ StartDate: 'تاريخ البداية',
+ GraphFilter: 'مرشح الرسم البياني',
+ EndDate: 'تاريخ الانتهاء',
+ Apply: 'تطبيق',
+ UpdatingLocationError: 'حدث خطأ أثناء تحديث الموقع والحدود',
+ LocationMarkerRequired: 'مطلوب علامة الموقع',
+ DeliveryAreaRequired: 'منطقة التوصيل مطلوبة',
+ LocationUpdatedSuccessfully: 'تم تحديث الموقع والحدود بنجاح',
+ SetLocation: 'تعيين الموقع',
+ DrawDeliveryBounds: 'رسم حدود التوصيل',
+ SetRestaurantLocation: 'تعيين موقع المطعم',
+ RemoveDeliveryBounds: 'إزالة حدود التوصيل',
+ RemoveRestaurantLocation: 'إزالة موقع المطعم',
+ Reject: 'رفض',
+ Delivered: 'تم التوصيل',
+ OrderInformation: 'معلومات الطلب',
+ RestaurantCol: 'مطعم',
+ Rider: 'سائق',
+ OrderTime: 'وقت الطلب',
+ Dispatch: 'إرسال',
+ PasswordUpdated: 'تم تحديث كلمة المرور',
+ ForgotPassword: 'نسيت كلمة المرور',
+ NotificationSentAuccessfully: 'تم إرسال الإشعار بنجاح',
+ Notifications: 'الإشعارات',
+ Body: 'المحتوى',
+ Zones: 'المناطق',
+ RequestID: 'رقم الطلب',
+ Amount: 'المبلغ',
+ Date: 'التاريخ',
+ REQUESTED: 'طُلب',
+ TRANSFERRED: 'تم التحويل',
+ CANCELLEDStatus: 'ملغاة',
+ WithdrawRequests: 'طلبات السحب',
+ TotalRestaurants: 'إجمالي المطاعم',
+ Restaurants: 'مطاعم',
+ Vendors: 'بائعون',
+ RestaurantUpdatedSuccessfully: 'تم تحديث المطعم بنجاح',
+ UpdateProfile: 'تحديث الملف الشخصي',
+ PHRestaurantPassword: 'كلمة مرور المطعم',
+ PHRestaurantName: 'اسم المطعم',
+ PHRestaurantAddress: 'عنوان المطعم',
+ OrderPrefix: 'بادئة الطلب',
+ Days: 'أيام',
+ OpenTimes: 'أوقات العمل',
+ TimeSavedSuccessfully: 'تم حفظ الوقت بنجاح',
+ ErrorWhileSavingTime: 'حدث خطأ أثناء حفظ الوقت',
+ SavingDots: 'جاري الحفظ...',
+ January: 'يناير',
+ February: 'فبراير',
+ March: 'مارس',
+ April: 'إبريل',
+ May: 'مايو',
+ June: 'يونيو',
+ July: 'يوليو',
+ MainPageText: 'برمجيات متعددة المنصات',
+ MainPageText1: 'حلا كاملا يصلح تمامًا لإنشاء أي مطعم.',
+ ViewSite: 'عرض الموقع',
+ TotalUsers: 'إجمالي المستخدمين',
+ TotalVendors: 'إجمالي البائعين',
+ TotalRiders: 'إجمالي السائقين',
+ RestaurantSections: 'أقسام المطعم',
+ ImageMenu: 'قائمة الصور',
+ Vendor: 'بائع',
+ AddNewRestaurant: 'إضافة مطعم جديد',
+ Ratings: 'التقييمات',
+ StripeDetailsAttached: 'تم إرفاق تفاصيل Stripe',
+ EditStripeDetails: 'تحرير تفاصيل Stripe',
+ SubmitStripeDetails: 'إرسال تفاصيل Stripe',
+ 'Restaurant Sections': 'أقسام المطعم',
+ Riders: 'الفرسان',
+ Tipping: 'البقشيش',
+ Zone: 'المنطقة',
+ 'Commission Rates': 'أسعار العمولة',
+ 'Withdraw Requests': 'طلبات السحب',
+ Home: 'الرئيسية',
+ Profile: 'الملف الشخصي',
+ Option: 'خيار',
+ Timings: 'أوقات العمل',
+ Location: 'الموقع',
+ 'Back to Admin': 'العودة إلى لوحة التحكم',
+ TotalOrders: 'إجمالي الطلبات',
+ TotalSales: 'إجمالي المبيعات',
+ ClosedAllDay: 'مغلق طوال اليوم',
+ AddRestaurant: 'إضافة مطعم',
+ EditCoupon: 'تعديل الكوبون',
+ AddCoupon: 'إضافة كوبون',
+ SalesAmount: 'مبلغ المبيعات',
+ OrderCount: 'عدد الطلبات',
+ MON: 'الاثنين',
+ TUE: 'الثلاثاء',
+ WED: 'الأربعاء',
+ THU: 'الخميس',
+ FRI: 'الجمعة',
+ SAT: 'السبت',
+ SUN: 'الأحد',
+ Open: 'مفتوح',
+ ACCEPTED: 'تم قبوله',
+ PENDING: 'قيد الانتظار',
+ PICKED: 'تم اختياره',
+ ASSIGNED: 'تم التعيين',
+ DELIVERED: 'تم التسليم',
+ REJECTED: 'تم رفضه'
+ }
+}
+
+export default ar
diff --git a/enatega-multivendor-admin/src/translations/de.js b/enatega-multivendor-admin/src/translations/de.js
new file mode 100644
index 0000000..d3ec74b
--- /dev/null
+++ b/enatega-multivendor-admin/src/translations/de.js
@@ -0,0 +1,317 @@
+const de = {
+ translation: {
+ 'Sign in credentials': 'Anmeldeinformationen',
+ 'Sign in': 'Einloggen',
+ 'Add Category': 'Kategorie hinzufügen',
+ Title: 'Titel',
+ Description: 'Beschreibung',
+ Add: 'Hinzufügen',
+ Remove: 'Löschen',
+ 'Add/Remove': 'Hinzufügen/Entfernen',
+ Success: 'Erfolg',
+ Danger: 'Achtung',
+ Categories: 'Kategorien',
+ Image: 'Bild',
+ Header: 'Header',
+ Loading: 'Wird geladen',
+ Error: 'Error',
+ Edit: 'Bearbeiten',
+ Delete: 'Löschen',
+ 'Edit Category': 'Kategorie bearbeiten',
+ Save: 'sparen',
+ 'OrderID prefix': 'OrderID-Präfix',
+ Order: 'Auftrag',
+ Email: 'Email',
+ Password: 'Passwort',
+ Enable: 'Aktivieren',
+ Disable: 'Deaktivieren',
+ 'Enable/Disable': 'Aktivieren deaktivieren',
+ Saving: 'Speichern',
+ Paypal: 'Paypal',
+ 'Client ID': 'Kunden ID',
+ 'Client Secret': 'Kundengeheimnis',
+ Sandbox: 'Sandkasten',
+ 'Publishable Key': 'Veröffentlichbarer Schlüssel',
+ 'Secret Key': 'Geheimer Schlüssel',
+ 'Delivery Charges': 'Versandkosten',
+ Price: 'Preis',
+ 'Add Food': 'Lebensmittel hinzufügen',
+ Category: 'Kategorie',
+ Select: 'Wählen',
+ Variations: 'Variationen',
+ Type: 'Art',
+ 'Food Image': 'Food Image',
+ Foods: 'Lebensmittel',
+ Actions: 'Aktionen',
+ 'Edit Food': 'Essen bearbeiten',
+ OrderID: 'Auftragsnummer',
+ Orders: 'Aufträge',
+ Name: 'Name',
+ Items: 'Artikel',
+ Payment: 'Zahlung',
+ Status: 'Status',
+ Review: 'Rezension',
+ 'Mark as': 'markieren als',
+ Users: 'Benutzer',
+ Phone: 'Telefon',
+ Address: 'Adresse',
+ 2019: '2019',
+ 'About Us': 'Über uns',
+ Blog: 'Blog',
+ Welcome: 'Herzlich willkommen',
+ Logout: 'Ausloggen',
+ Dashboard: 'Instrumententafel',
+ Configuration: 'Aufbau',
+ Login: 'Anmeldung',
+ Food: 'Essen',
+ 'Character limit of max length 50':
+ 'Zeichenbegrenzung von maximaler Länge 50',
+ 'Character limit of max length 15':
+ 'Zeichenbegrenzung von maximaler Länge 15',
+ 'Character limit of max length 60':
+ 'Zeichenbegrenzung von maximaler Länge 60',
+ 'Character limit of max length 20':
+ 'Zeichenbegrenzung von maximaler Länge 20',
+ 'Character limit of max length 140':
+ 'Zeichenbegrenzung von maximaler Länge 140',
+ Currency: 'Währung',
+ Delivery: 'Lieferung',
+ 'Currency Code': 'Währungscode',
+ 'Delivery Rate': 'Lieferpreis',
+ 'Currency Symbol': 'Währungssymbol',
+ enterYourDetailsBelow: 'Geben Sie Ihre Details unten ein',
+ LogintoEnatega: 'Einloggen bei Enatega',
+ RememberMe: 'Erinnere dich an mich',
+ ForgotYourPassword: 'Passwort vergessen?',
+ errorWhileSaving:
+ 'Ein Fehler ist aufgetreten beim Speichern, Versuchen Sie es erneut',
+ Saved: 'Gespeichert',
+ Addons: 'Erweiterungen',
+ AddRemoveAddon: 'Erweiterung hinzufügen oder entfernen',
+ MinQuantity: 'Mindestmenge',
+ MinimumQuantity: 'Mindestmenge',
+ MaxQuantity: 'Maximale Menge',
+ MaximumQuantity: 'Maximale Menge',
+ Options: 'Optionen',
+ NewOption: 'Neue Option',
+ CategoryUpdatedSuccessfully: 'Kategorie erfolgreich aktualisiert',
+ CategoryAddedSuccessfully: 'Kategorie erfolgreich hinzugefügt',
+ ActionFailedTryAgain:
+ 'Aktion fehlgeschlagen. Bitte versuchen Sie es erneut',
+ PHCategory: 'Kategorie, z.B. Frühstück',
+ ChooseCurrency: 'Währung wählen',
+ ChooseSymbol: 'Symbol wählen',
+ PHMail: 'z.B. something@email.com',
+ EmailName: 'E-Mail-Name',
+ PHEnatega: 'z.B. Enatega',
+ PHFood: 'z.B. ESSEN',
+ ClientSecretKey: 'Geheimer Client-Schlüssel',
+ Stripe: 'Stripe',
+ PublishKey: 'Veröffentlichungsschlüssel',
+ CouponUpdated: 'Gutschein aktualisiert',
+ CouponAdded: 'Gutschein hinzugefügt',
+ Code: 'Code',
+ PHCode: 'Code, z.B. SALE50',
+ PHDiscount: 'Rabatt %, d.h. 1-99',
+ FoodUpdatedSuccessfully: 'Essen erfolgreich aktualisiert',
+ FoodAddedSuccessfully: 'Essen erfolgreich hinzugefügt',
+ SelectCategory: 'Kategorie auswählen',
+ UploadAnImage: 'Ein Bild hochladen',
+ UniqueTitle: 'Titel (muss einzigartig sein)',
+ Discounted: 'Reduziert',
+ LoadingDots: 'Laden ...',
+ ErrorDots: 'Fehler ...',
+ NewAddon: 'Neue Erweiterung',
+ EnategaMultivendor: 'Enatega Multivendor',
+ ResetPassword: 'Passwort zurücksetzen',
+ EnategaDashboard: 'Enatega-Dashboard',
+ UpdateOption: 'Option aktualisieren',
+ AddOption: 'Option hinzufügen',
+ OrderStatusUpdated: 'Bestellstatus aktualisiert',
+ SpecialInstructions: 'Besondere Anweisungen',
+ Charges: 'Gebühren',
+ Subtotal: 'Zwischensumme',
+ DeliveryFee: 'Liefergebühr',
+ TaxCharges: 'Steuergebühren',
+ Tip: 'Trinkgeld',
+ Total: 'Gesamt',
+ PaymentMethod: 'Zahlungsmethode',
+ PaidAmount: 'Bezahlter Betrag',
+ Accepted: 'Akzeptiert',
+ Accept: 'Akzeptieren',
+ Cancelled: 'Abgebrochen',
+ Cancel: 'Abbrechen',
+ PHReasonIfRejected: 'Grund, wenn abgelehnt',
+ Datetime: 'Datum und Uhrzeit',
+ PasswordChangedSuccessfully: 'Passwort erfolgreich geändert',
+ ConfirmPassword: 'Passwort bestätigen',
+ Reset: 'Zurücksetzen',
+ RestaurantAdded: 'Restaurant hinzugefügt',
+ NetworkError: 'Netzwerkfehler',
+ FieldsRequired: 'Felder erforderlich',
+ Username: 'Benutzername',
+ RestaurantUsername: 'Benutzername des Restaurants',
+ RestaurantPassword: 'Passwort des Restaurants',
+ RestaurantName: 'Name des Restaurants',
+ RestaurantAddress: 'Adresse des Restaurants',
+ DeliveryTime: 'Lieferzeit',
+ MinOrder: 'Mindestbestellung',
+ SalesTax: 'Umsatzsteuer',
+ RiderUpdatedSuccessfully: 'Fahrer erfolgreich aktualisiert',
+ RiderAddedSuccessfully: 'Fahrer erfolgreich hinzugefügt',
+ UsernameCannotBeBlank: 'Der Benutzername darf nicht leer sein',
+ UsernameCannotContainSpaces:
+ 'Der Benutzername darf keine Leerzeichen enthalten',
+ EditRider: 'Fahrer bearbeiten',
+ AddRider: 'Fahrer hinzufügen',
+ Available: 'Verfügbar',
+ PHRiderName: 'Name des Fahrers',
+ Number: 'Nummer',
+ PhoneNumber: 'Telefonnummer',
+ RiderZone: 'Fahrerzone',
+ SectionUpdatedSuccessfully: 'Abschnitt erfolgreich aktualisiert',
+ SectionAddedSuccessfully: 'Abschnitt erfolgreich hinzugefügt',
+ EditSection: 'Abschnitt bearbeiten',
+ AddSection: 'Abschnitt hinzufügen',
+ SectionName: 'Name des Abschnitts',
+ Update: 'Aktualisieren',
+ GENERAL: 'ALLGEMEIN',
+ MANAGEMENT: 'MANAGEMENT',
+ RESTAURANT: 'RESTAURANT',
+ BackToAdmin: 'Zurück zum Admin',
+ Search: 'Suche',
+ TippingUpdated: 'Trinkgeld aktualisiert',
+ EditTipping: 'Trinkgeld bearbeiten',
+ AddTipping: 'Trinkgeld hinzufügen',
+ Tip1: 'Trinkgeld 1',
+ Tip2: 'Trinkgeld 2',
+ Tip3: 'Trinkgeld 3',
+ PHTip1: 'Trinkgeld 1, z.B. 10',
+ PHTip2: 'Trinkgeld 2, z.B. 20',
+ PHTip3: 'Trinkgeld 3, z.B. 30',
+ EditVendor: 'Verkäufer bearbeiten',
+ AddVendor: 'Verkäufer hinzufügen',
+ PHNumber: 'z.B. 123',
+ ZoneUpdatedSuccessfully: 'Zone erfolgreich aktualisiert',
+ ZoneAddedSuccessfully: 'Zone erfolgreich hinzugefügt',
+ SetZoneOnMap: 'Zone auf Karte festlegen',
+ EditZone: 'Zone bearbeiten',
+ AddZone: 'Zone hinzufügen',
+ Minimum: 'Minimum',
+ Maximum: 'Maximum',
+ Action: 'Aktion',
+ AvailableAfterPurchasing:
+ 'Diese Funktion ist nach dem Kauf des Produkts verfügbar',
+ CommissionRates: 'Provisionsraten',
+ PHCommission: 'Prozentsatz der Provision',
+ Discount: 'Rabatt %',
+ Coupons: 'Gutscheine',
+ StartDate: 'Startdatum',
+ GraphFilter: 'Grafikfilter',
+ EndDate: 'Enddatum',
+ Apply: 'Anwenden',
+ UpdatingLocationError:
+ 'Ein Fehler ist aufgetreten beim Aktualisieren von Standort und Begrenzungen',
+ LocationMarkerRequired: 'Standortmarker ist erforderlich',
+ DeliveryAreaRequired: 'Lieferbereich ist erforderlich',
+ LocationUpdatedSuccessfully:
+ 'Standort und Begrenzungen erfolgreich aktualisiert',
+ SetLocation: 'Standort festlegen',
+ DrawDeliveryBounds: 'Liefergrenzen zeichnen',
+ SetRestaurantLocation: 'Restaurantstandort festlegen',
+ RemoveDeliveryBounds: 'Liefergrenzen entfernen',
+ RemoveRestaurantLocation: 'Restaurantstandort entfernen',
+ Reject: 'Ablehnen',
+ Delivered: 'Geliefert',
+ OrderInformation: 'Bestellinformation',
+ RestaurantCol: 'Restaurant',
+ Rider: 'Fahrer',
+ OrderTime: 'Bestellzeit',
+ Dispatch: 'Versand',
+ PasswordUpdated: 'Passwort wurde aktualisiert',
+ ForgotPassword: 'Passwort vergessen',
+ NotificationSentAuccessfully: 'Benachrichtigung erfolgreich gesendet',
+ Notifications: 'Benachrichtigungen',
+ Body: 'Text',
+ Zones: 'Zonen',
+ RequestID: 'Anfrage-ID',
+ Amount: 'Betrag',
+ Date: 'Datum',
+ REQUESTED: 'ANGEFORDERT',
+ TRANSFERRED: 'ÜBERTRAGEN',
+ CANCELLEDStatus: 'ABGEBROCHEN',
+ WithdrawRequests: 'Auszahlungsanfragen',
+ TotalRestaurants: 'Gesamtzahl der Restaurants',
+ Restaurants: 'Restaurants',
+ Vendors: 'Verkäufer',
+ RestaurantUpdatedSuccessfully: 'Restaurant erfolgreich aktualisiert',
+ UpdateProfile: 'Profil aktualisieren',
+ PHRestaurantPassword: 'Passwort des Restaurants',
+ PHRestaurantName: 'Name des Restaurants',
+ PHRestaurantAddress: 'Adresse des Restaurants',
+ OrderPrefix: 'Bestellpräfix',
+ Days: 'Tage',
+ OpenTimes: 'Öffnungszeiten',
+ TimeSavedSuccessfully: 'Zeit erfolgreich gespeichert',
+ ErrorWhileSavingTime: 'Fehler beim Speichern der Zeit',
+ SavingDots: 'Speichern...',
+ January: 'Januar',
+ February: 'Februar',
+ March: 'März',
+ April: 'April',
+ May: 'Mai',
+ June: 'Juni',
+ July: 'Juli',
+ MainPageText: 'Eine plattformübergreifende Software',
+ MainPageText1:
+ 'Eine umfassende Lösung, die sich hervorragend zum Aufbau eines Restaurants eignet.',
+ ViewSite: 'Website anzeigen',
+ TotalUsers: 'Gesamtzahl der Benutzer',
+ TotalVendors: 'Gesamtzahl der Verkäufer',
+ TotalRiders: 'Gesamtzahl der Fahrer',
+ RestaurantSections: 'Restaurantabschnitte',
+ ImageMenu: 'Bildermenü',
+ Vendor: 'Verkäufer',
+ AddNewRestaurant: 'Neues Restaurant hinzufügen',
+ Ratings: 'Bewertungen',
+ StripeDetailsAttached: 'Stripe-Details angefügt',
+ EditStripeDetails: 'Stripe-Details bearbeiten',
+ SubmitStripeDetails: 'Stripe-Details senden',
+ 'Restaurant Sections': 'Restaurant Abschnitte',
+ Riders: 'Fahrer',
+ Tipping: 'Trinkgeld',
+ Zone: 'Zone',
+ 'Commission Rates': 'Provisionsraten',
+ 'Withdraw Requests': 'Auszahlungsanfragen',
+ Home: 'Startseite',
+ Profile: 'Profil',
+ Option: 'Option',
+ Timings: 'Öffnungszeiten',
+ Location: 'Ort',
+ 'Back to Admin': 'Zurück zum Admin',
+ TotalOrders: 'Gesamtbestellungen',
+ TotalSales: 'Gesamtumsatz',
+ ClosedAllDay: 'Den ganzen Tag geschlossen',
+ AddRestaurant: 'Restaurant hinzufügen',
+ EditCoupon: 'Gutschein bearbeiten',
+ AddCoupon: 'Gutschein hinzufügen',
+ SalesAmount: 'Verkaufsbetrag',
+ OrderCount: 'Bestellanzahl',
+ MON: 'Mo',
+ TUE: 'Di',
+ WED: 'Mi',
+ THU: 'Do',
+ FRI: 'Fr',
+ SAT: 'Sa',
+ SUN: 'So',
+ Open: 'Geöffnet',
+ ACCEPTED: 'GEACCEPTEERD',
+ PENDING: 'IN AFWACHTING',
+ PICKED: 'GEKOZEN',
+ ASSIGNED: 'TOEGEWEZEN',
+ DELIVERED: 'BEZORGD',
+ REJECTED: 'AFGEWEZEN'
+ }
+}
+
+export default de
diff --git a/enatega-multivendor-admin/src/translations/en.js b/enatega-multivendor-admin/src/translations/en.js
new file mode 100644
index 0000000..f97fbd7
--- /dev/null
+++ b/enatega-multivendor-admin/src/translations/en.js
@@ -0,0 +1,313 @@
+const en = {
+ translation: {
+ 'Sign in credentials': 'Sign in credentials',
+ 'Sign in': 'Sign in',
+ 'Add Category': 'Add Category',
+ Title: 'Title',
+ Description: 'Description',
+ Add: 'Add',
+ Remove: 'Remove',
+ 'Add/Remove': 'Add/Remove',
+ Success: 'Success',
+ Danger: 'Danger',
+ Categories: 'Categories',
+ Image: 'Image',
+ Header: 'Header',
+ Loading: 'Loading',
+ Error: 'Error',
+ Edit: 'Edit',
+ Delete: 'Delete',
+ 'Edit Category': 'Edit Category',
+ Save: 'Save',
+ 'OrderID prefix': 'OrderID prefix',
+ Order: 'Order',
+ Email: 'Email',
+ Password: 'Password',
+ Enable: 'Enable',
+ Disable: 'Disable',
+ 'Enable/Disable': 'Enable/Disable',
+ Saving: 'Saving',
+ Paypal: 'Paypal',
+ 'Client ID': 'Client ID',
+ 'Client Secret': 'Client Secret',
+ Sandbox: 'Sandbox',
+ 'Publishable Key': 'Publishable Key',
+ 'Secret Key': 'Secret Key',
+ 'Delivery Charges': 'Delivery Charges',
+ Price: 'Price',
+ 'Add Food': 'Add Food',
+ Category: 'Category',
+ Select: 'Select',
+ Variations: 'Variations',
+ Type: 'Type',
+ 'Food Image': 'Food Image',
+ Foods: 'Foods',
+ Actions: 'Actions',
+ 'Edit Food': 'Edit Food',
+ OrderID: 'OrderID',
+ Orders: 'Orders',
+ Name: 'Name',
+ Items: 'Items',
+ Payment: 'Payment',
+ Status: 'Status',
+ Review: 'Review',
+ 'Mark as': 'Mark as',
+ Users: 'Users',
+ Phone: 'Phone',
+ Address: 'Address',
+ 2019: '2019',
+ 'About Us': 'About Us',
+ Blog: 'Blog',
+ Welcome: 'Welcome',
+ Logout: 'Logout',
+ Dashboard: 'Dashboard',
+ Configuration: 'Configuration',
+ Login: 'Login',
+ Food: 'Food',
+ 'Character limit of max length 50': 'Character limit of max length 50',
+ 'Character limit of max length 15': 'Character limit of max length 15',
+ 'Character limit of max length 60': 'Character limit of max length 60',
+ 'Character limit of max length 20': 'Character limit of max length 20',
+ 'Character limit of max length 140': 'Character limit of max length 140',
+ Currency: 'Currency',
+ Delivery: 'Delivery',
+ 'Currency Code': 'Currency Code',
+ 'Delivery Rate': 'Delivery Rate',
+ 'Currency Symbol': 'Currency Symbol',
+ enterYourDetailsBelow: 'Enter your details below',
+ LogintoEnatega: 'Login to Enatega',
+ RememberMe: 'Remember me',
+ ForgotYourPassword: 'Forgot your password?',
+ errorWhileSaving: 'An error occured while saving,Try again',
+ Saved: 'Saved',
+ Addons: 'Addons',
+ AddRemoveAddon: 'Add or Remove Addon',
+ MinQuantity: 'Min quantity',
+ MinimumQuantity: 'Minimum Quantity',
+ MaxQuantity: 'Max quantity',
+ MaximumQuantity: 'Maximum quantity',
+ Options: 'Options',
+ NewOption: 'New Option',
+ CategoryUpdatedSuccessfully: 'Category updated successfully',
+ CategoryAddedSuccessfully: 'Category added successfully',
+ ActionFailedTryAgain: 'Action failed. Please Try again',
+ PHCategory: 'Category i.e Breakfast',
+ ChooseCurrency: 'Choose Currency',
+ ChooseSymbol: 'Choose Symbol',
+ PHMail: 'e.g something@email.com',
+ EmailName: 'Email Name',
+ PHEnatega: 'e.g Enatega',
+ PHFood: 'e.g FOOD',
+ ClientSecretKey: 'Client Secret Key',
+ Stripe: 'Stripe',
+ PublishKey: 'Publish Key',
+ CouponUpdated: 'Coupon updated',
+ CouponAdded: 'Coupon Added',
+ CuisineUpdated: 'Cuisine updated',
+ CuisineAdded: 'Cuisine Added',
+ Code: 'Code',
+ PHCode: 'Code e.g SALE50',
+ PHDiscount: 'Discount % i.e 1-99',
+ FoodUpdatedSuccessfully: 'Food updated successfully',
+ FoodAddedSuccessfully: 'Food added successfully',
+ SelectCategory: 'Select Category',
+ UploadAnImage: 'Upload an image',
+ UniqueTitle: 'Title (must be unique)',
+ Discounted: 'Discounted',
+ LoadingDots: 'Loading ...',
+ ErrorDots: 'Error ...',
+ NewAddon: 'New Addon',
+ EnategaMultivendor: 'Enatega Multivendor',
+ ResetPassword: 'Reset Password',
+ EnategaDashboard: 'Enatega Dashboard',
+ UpdateOption: 'Update Option',
+ AddOption: 'Add Option',
+ OrderStatusUpdated: 'Order status updated',
+ SpecialInstructions: 'Special Instructions',
+ Charges: 'Charges',
+ Subtotal: 'Subtotal',
+ DeliveryFee: 'Delivery Fee',
+ TaxCharges: 'Tax Charges',
+ Tip: 'Tip',
+ Total: 'Total',
+ PaymentMethod: 'Payment Method',
+ PaidAmount: 'PaidAmount',
+ Accepted: 'Accepted',
+ Accept: 'Accept',
+ Cancelled: 'Cancelled',
+ Cancel: 'Cancel',
+ PHReasonIfRejected: 'Reason if Rejected',
+ Datetime: 'Datetime',
+ PasswordChangedSuccessfully: 'Password Changed successfully',
+ ConfirmPassword: 'Confirm Password',
+ Reset: 'Reset',
+ RestaurantAdded: 'Restaurant added',
+ NetworkError: 'Network error',
+ FieldsRequired: 'Fields Required',
+ Username: 'Username',
+ RestaurantUsername: "Restaurant's username",
+ RestaurantPassword: "Restaurant's password",
+ RestaurantName: "Restaurant's name",
+ RestaurantAddress: "Restaurant's address",
+ DeliveryTime: 'Delivery Time',
+ MinOrder: 'Min Order',
+ SalesTax: 'Sales Tax',
+ RiderUpdatedSuccessfully: 'Rider updated successfully',
+ RiderAddedSuccessfully: 'Rider added successfully',
+ EditRider: 'Edit Rider',
+ UsernameCannotBeBlank: "Username can't be blank",
+ UsernameCannotContainSpaces: "Username can't contain spaces",
+ AddRider: 'Add Rider',
+ Available: 'Available',
+ PHRiderName: 'Rider name',
+ Number: 'Number',
+ PhoneNumber: 'Phone Number',
+ RiderZone: 'Rider Zone',
+ SectionUpdatedSuccessfully: 'Section updated successfully',
+ SectionAddedSuccessfully: 'Section added successfully',
+ EditSection: 'Edit Section',
+ AddSection: 'Add Section',
+ SectionName: 'Section Name',
+ Update: 'Update',
+ GENERAL: 'GENERAL',
+ MANAGEMENT: 'MANAGEMENT',
+ RESTAURANT: 'RESTAURANT',
+ BackToAdmin: 'Back to Admin',
+ Search: 'Search',
+ TippingUpdated: 'Tipping updated',
+ EditTipping: 'Edit Tipping',
+ AddTipping: 'Add Tipping',
+ Tip1: 'Tip 1',
+ Tip2: 'Tip 2',
+ Tip3: 'Tip 3',
+ PHTip1: 'Tip 1 e.g 10',
+ PHTip2: 'Tip 2 e.g 20',
+ PHTip3: 'Tip 3 e.g 30',
+ EditVendor: 'Edit Vendor',
+ AddVendor: 'Add Vendor',
+ PHNumber: 'e.g 123',
+ ZoneUpdatedSuccessfully: 'Zone updated successfully',
+ ZoneAddedSuccessfully: 'Zone added successfully',
+ SetZoneOnMap: 'Set Zone on Map',
+ EditZone: 'Edit Zone',
+ AddZone: 'Add Zone',
+ Minimum: 'Minimum',
+ Maximum: 'Maximum',
+ Action: 'Action',
+ AvailableAfterPurchasing:
+ 'This feature will available after purchasing product',
+ CommissionRates: 'Commission Rates',
+ PHCommission: 'Commission percent',
+ Discount: 'Discount',
+ Coupons: 'Coupons',
+ Cuisines: 'Cuisines',
+ StartDate: 'Start Date',
+ GraphFilter: 'Graph Filter',
+ EndDate: 'End Date',
+ Apply: 'Apply',
+ UpdatingLocationError:
+ 'An error occurred while updating location and bounds',
+ LocationMarkerRequired: 'Location marker is required',
+ DeliveryAreaRequired: 'Delivery area is required',
+ LocationUpdatedSuccessfully: 'Location and bounds updated successfully',
+ SetLocation: 'Set Location',
+ DrawDeliveryBounds: 'Draw Delivery Bounds',
+ SetRestaurantLocation: 'Set Restaurant Location',
+ RemoveDeliveryBounds: 'Remove Delivery Bounds',
+ RemoveRestaurantLocation: 'Remove Restaurant Location',
+ Reject: 'Reject',
+ Delivered: 'Delivered',
+ OrderInformation: 'Order Information',
+ RestaurantCol: 'Restaurant',
+ Rider: 'Rider',
+ OrderTime: 'Order time',
+ Dispatch: 'Dispatch',
+ PasswordUpdated: 'Password has been updated',
+ ForgotPassword: 'Forgot Password',
+ NotificationSentAuccessfully: 'Notification sent successfully',
+ Notifications: 'Notifications',
+ Body: 'Body',
+ Zones: 'Zones',
+ RequestID: 'Request ID',
+ Amount: 'Amount',
+ Date: 'Date',
+ REQUESTED: 'REQUESTED',
+ TRANSFERRED: 'TRANSFERRED',
+ CANCELLEDStatus: 'CANCELLED',
+ WithdrawRequests: 'Withdraw Requests',
+ TotalRestaurants: 'Total Restaurants',
+ Restaurants: 'Restaurants',
+ Vendors: 'Vendors',
+ RestaurantUpdatedSuccessfully: 'Restaurant updated successfully',
+ UpdateProfile: 'Update Profile',
+ PHRestaurantPassword: "Restaurant's password",
+ PHRestaurantName: "Restaurant's name",
+ PHRestaurantAddress: "Restaurant's address",
+ OrderPrefix: 'Order Prefix',
+ Days: 'Days',
+ OpenTimes: 'Open Times',
+ TimeSavedSuccessfully: 'Time saved successfully',
+ ErrorWhileSavingTime: 'Error while saving time',
+ SavingDots: 'Saving...',
+ January: 'January',
+ February: 'February',
+ March: 'March',
+ April: 'April',
+ May: 'May',
+ June: 'June',
+ July: 'July',
+ MainPageText: 'A cross-plalform software',
+ MainPageText1:
+ 'A full fledged solution highly suitable to build any restaurant.',
+ ViewSite: 'View Site',
+ TotalUsers: 'Total Users',
+ TotalVendors: 'Total Vendors',
+ TotalRiders: 'Total Riders',
+ RestaurantSections: 'Restaurant Sections',
+ ImageMenu: 'image menu',
+ Vendor: 'Vendor',
+ AddNewRestaurant: 'Add New Restaurant',
+ Ratings: 'Ratings',
+ StripeDetailsAttached: 'Stripe Details Attached',
+ EditStripeDetails: 'Edit Stripe details',
+ SubmitStripeDetails: 'Submit Stripe details',
+ 'Restaurant Sections': 'Restaurant Sections',
+ Riders: 'Riders',
+ Tipping: 'Tipping',
+ Zone: 'Zone',
+ 'Commission Rates': 'Commission Rates',
+ 'Withdraw Requests': 'Withdraw Requests',
+ Home: 'Home',
+ Profile: 'Profile',
+ Option: 'Option',
+ Timings: 'Timings',
+ Location: 'Location',
+ 'Back to Admin': 'Back to Admin',
+ TotalOrders: 'Total Orders',
+ TotalSales: 'Total Sales',
+ ClosedAllDay: 'Closed All Day',
+ AddRestaurant: 'Add Restaurant',
+ EditCoupon: 'Edit Coupon',
+ AddCoupon: 'Add Coupon',
+ EditCuisine: 'Edit Cuisine',
+ AddCuisine: 'Add Cuisine',
+ SalesAmount: 'Sales Amount',
+ OrderCount: 'Order Count',
+ MON: 'MON',
+ TUE: 'TUE',
+ WED: 'WED',
+ THU: 'THU',
+ FRI: 'FRI',
+ SAT: 'SAT',
+ SUN: 'SUN',
+ Open: 'Open',
+ ACCEPTED: 'ACCEPTED',
+ PENDING: 'PENDING',
+ PICKED: 'PICKED',
+ ASSIGNED: 'ASSIGNED',
+ DELIVERED: 'DELIVERED',
+ REJECTED: 'REJECTED'
+ }
+}
+
+export default en
diff --git a/enatega-multivendor-admin/src/translations/fr.js b/enatega-multivendor-admin/src/translations/fr.js
new file mode 100644
index 0000000..26b2339
--- /dev/null
+++ b/enatega-multivendor-admin/src/translations/fr.js
@@ -0,0 +1,316 @@
+const fr = {
+ translation: {
+ 'Sign in credentials': 'Identifiez-vous',
+ 'Sign in': 'se connecter',
+ 'Add Category': 'ajouter une catégorie',
+ Title: 'Titre',
+ Description: 'La description',
+ Add: 'Ajouter',
+ Remove: 'Retirer',
+ 'Add/Remove': 'Ajouter enlever',
+ Success: 'Succès',
+ Danger: 'Danger',
+ Categories: 'Les catégories',
+ Image: 'Image',
+ Header: 'Entête',
+ Loading: 'Chargement',
+ Error: 'Erreur',
+ Edit: 'modifier',
+ Delete: 'Effacer',
+ 'Edit Category': 'Modifier la catégorie',
+ Save: 'sauvegarder',
+ 'OrderID prefix': 'Préfixe OrderID',
+ Order: 'Ordre',
+ Email: 'Email',
+ Password: 'Mot de passe',
+ Enable: 'Activer',
+ Disable: 'Désactiver',
+ 'Enable/Disable': 'Activer désactiver',
+ Saving: 'Économie',
+ Paypal: 'Pay Pal',
+ 'Client ID': 'identité du client',
+ 'Client Secret': 'Secret du client',
+ Sandbox: 'bac à sable',
+ 'Publishable Key': 'Clé publiable',
+ 'Secret Key': 'Clef secrète',
+ 'Delivery Charges': 'Frais de livraison',
+ Price: 'Prix',
+ 'Add Food': 'Ajouter de la nourriture',
+ Category: 'Catégorie',
+ Select: 'Sélectionner',
+ Variations: 'Variations',
+ Type: 'Type',
+ 'Food Image': 'Image de nourriture',
+ Foods: 'nourriture',
+ Actions: 'actes',
+ 'Edit Food': 'Modifier un aliment',
+ OrderID: 'Numéro de commande',
+ Orders: 'Ordres',
+ Name: 'prénom',
+ Items: 'Articles',
+ Payment: 'Paiement',
+ Status: 'Statut',
+ Review: 'La revue',
+ 'Mark as': 'Marquer comme',
+ Users: 'Utilisateurs',
+ Phone: 'Téléphone',
+ Address: 'Adresse',
+ 2019: '2019',
+ 'About Us': 'À propos de nous',
+ Blog: 'Blog',
+ Welcome: 'Bienvenue',
+ Logout: 'Connectez - Out',
+ Dashboard: 'Tableau de bord',
+ Configuration: 'Configuration',
+ Login: "S'identifier",
+ Food: 'Aliments',
+ 'Character limit of max length 50':
+ 'Limite de caractères de longueur maximale 50',
+ 'Character limit of max length 15':
+ 'Limite de caractères de longueur maximale 15',
+ 'Character limit of max length 60':
+ 'Limite de caractères de longueur maximale 60',
+ 'Character limit of max length 20':
+ 'Limite de caractères de longueur maximale 20',
+ 'Character limit of max length 140':
+ 'Limite de caractères de longueur maximale 140',
+ Currency: 'Devise',
+ Delivery: 'Livraison',
+ 'Currency Code': 'Code de devise',
+ 'Delivery Rate': 'Frais de livraison',
+ 'Currency Symbol': 'Symbole de devise',
+ enterYourDetailsBelow: 'Entrez vos détails ci-dessous',
+ LogintoEnatega: 'Connectez-vous à Enatega',
+ RememberMe: 'Souviens-toi de moi',
+ ForgotYourPassword: 'Mot de passe oublié ?',
+ errorWhileSaving:
+ "Une erreur s'est produite lors de l'enregistrement, réessayez",
+ Saved: 'Enregistré',
+ Addons: 'Modules complémentaires',
+ AddRemoveAddon: 'Ajouter ou supprimer un module complémentaire',
+ MinQuantity: 'Quantité minimale',
+ MinimumQuantity: 'Quantité minimale',
+ MaxQuantity: 'Quantité maximale',
+ MaximumQuantity: 'Quantité maximale',
+ Options: 'Options',
+ NewOption: 'Nouvelle option',
+ CategoryUpdatedSuccessfully: 'Catégorie mise à jour avec succès',
+ CategoryAddedSuccessfully: 'Catégorie ajoutée avec succès',
+ ActionFailedTryAgain: 'Action échouée. Veuillez réessayer',
+ PHCategory: 'Catégorie, par exemple le petit déjeuner',
+ ChooseCurrency: 'Choisissez la devise',
+ ChooseSymbol: 'Choisissez le symbole',
+ PHMail: 'par exemple quelquechose@email.com',
+ EmailName: "Nom de l'email",
+ PHEnatega: 'par exemple Enatega',
+ PHFood: 'par exemple NOURRITURE',
+ ClientSecretKey: 'Clé secrète du client',
+ Stripe: 'Stripe',
+ PublishKey: 'Clé de publication',
+ CouponUpdated: 'Coupon mis à jour',
+ CouponAdded: 'Coupon ajouté',
+ Code: 'Code',
+ PHCode: 'Code, par exemple SALE50',
+ PHDiscount: "Remise %, c'est-à-dire 1-99",
+ FoodUpdatedSuccessfully: 'Nourriture mise à jour avec succès',
+ FoodAddedSuccessfully: 'Nourriture ajoutée avec succès',
+ SelectCategory: 'Sélectionnez une catégorie',
+ UploadAnImage: 'Téléchargez une image',
+ UniqueTitle: 'Titre (doit être unique)',
+ Discounted: 'Remisé',
+ LoadingDots: 'Chargement...',
+ ErrorDots: 'Erreur...',
+ NewAddon: 'Nouveau module complémentaire',
+ EnategaMultivendor: 'Enatega Multivendor',
+ ResetPassword: 'Réinitialiser le mot de passe',
+ EnategaDashboard: 'Tableau de bord Enatega',
+ UpdateOption: "Mettre à jour l'option",
+ AddOption: 'Ajouter une option',
+ OrderStatusUpdated: 'Statut de la commande mis à jour',
+ SpecialInstructions: 'Instructions spéciales',
+ Charges: 'Frais',
+ Subtotal: 'Sous-total',
+ DeliveryFee: 'Frais de livraison',
+ TaxCharges: 'Frais de taxe',
+ Tip: 'Pourboire',
+ Total: 'Total',
+ PaymentMethod: 'Moyen de paiement',
+ PaidAmount: 'Montant payé',
+ Accepted: 'Acceptée',
+ Accept: 'Accepter',
+ Cancelled: 'Annulée',
+ Cancel: 'Annuler',
+ PHReasonIfRejected: 'Raison si rejetée',
+ Datetime: 'Date et heure',
+ PasswordChangedSuccessfully: 'Mot de passe changé avec succès',
+ ConfirmPassword: 'Confirmer le mot de passe',
+ Reset: 'Réinitialiser',
+ RestaurantAdded: 'Restaurant ajouté',
+ NetworkError: 'Erreur réseau',
+ FieldsRequired: 'Champs requis',
+ Username: "Nom d'utilisateur",
+ RestaurantUsername: "Nom d'utilisateur du restaurant",
+ RestaurantPassword: 'Mot de passe du restaurant',
+ RestaurantName: 'Nom du restaurant',
+ RestaurantAddress: 'Adresse du restaurant',
+ DeliveryTime: 'Temps de livraison',
+ MinOrder: 'Commande minimum',
+ SalesTax: 'Taxe de vente',
+ RiderUpdatedSuccessfully: 'Livreur mis à jour avec succès',
+ RiderAddedSuccessfully: 'Livreur ajouté avec succès',
+ UsernameCannotBeBlank: "Le nom d'utilisateur ne peut pas être vide",
+ UsernameCannotContainSpaces:
+ "Le nom d'utilisateur ne peut pas contenir d'espaces",
+ EditRider: 'Modifier le livreur',
+ AddRider: 'Ajouter un livreur',
+ Available: 'Disponible',
+ PHRiderName: 'Nom du livreur',
+ Number: 'Numéro',
+ PhoneNumber: 'Numéro de téléphone',
+ RiderZone: 'Zone du livreur',
+ SectionUpdatedSuccessfully: 'Section mise à jour avec succès',
+ SectionAddedSuccessfully: 'Section ajoutée avec succès',
+ EditSection: 'Modifier la section',
+ AddSection: 'Ajouter une section',
+ SectionName: 'Nom de la section',
+ Update: 'Mettre à jour',
+ GENERAL: 'GÉNÉRAL',
+ MANAGEMENT: 'GESTION',
+ RESTAURANT: 'RESTAURANT',
+ BackToAdmin: "Retour à l'administration",
+ Search: 'Recherche',
+ TippingUpdated: 'Pourboire mis à jour',
+ EditTipping: 'Modifier le pourboire',
+ AddTipping: 'Ajouter un pourboire',
+ Tip1: 'Pourboire 1',
+ Tip2: 'Pourboire 2',
+ Tip3: 'Pourboire 3',
+ PHTip1: 'Pourboire 1, par exemple 10',
+ PHTip2: 'Pourboire 2, par exemple 20',
+ PHTip3: 'Pourboire 3, par exemple 30',
+ EditVendor: 'Modifier le vendeur',
+ AddVendor: 'Ajouter un vendeur',
+ PHNumber: 'par exemple 123',
+ ZoneUpdatedSuccessfully: 'Zone mise à jour avec succès',
+ ZoneAddedSuccessfully: 'Zone ajoutée avec succès',
+ SetZoneOnMap: 'Définir la zone sur la carte',
+ EditZone: 'Modifier la zone',
+ AddZone: 'Ajouter une zone',
+ Minimum: 'Minimum',
+ Maximum: 'Maximum',
+ Action: 'Action',
+ AvailableAfterPurchasing:
+ "Cette fonctionnalité sera disponible après l'achat du produit",
+ CommissionRates: 'Taux de commission',
+ PHCommission: 'Pourcentage de commission',
+ Discount: 'Remise %',
+ Coupons: 'Coupons',
+ StartDate: 'Date de début',
+ GraphFilter: 'Filtre graphique',
+ EndDate: 'Date de fin',
+ Apply: 'Appliquer',
+ UpdatingLocationError:
+ "Une erreur s'est produite lors de la mise à jour de l'emplacement et des limites",
+ LocationMarkerRequired: "Le marqueur d'emplacement est requis",
+ DeliveryAreaRequired: 'La zone de livraison est requise',
+ LocationUpdatedSuccessfully:
+ 'Emplacement et limites mis à jour avec succès',
+ SetLocation: "Définir l'emplacement",
+ DrawDeliveryBounds: 'Dessiner les limites de livraison',
+ SetRestaurantLocation: "Définir l'emplacement du restaurant",
+ RemoveDeliveryBounds: 'Supprimer les limites de livraison',
+ RemoveRestaurantLocation: "Supprimer l'emplacement du restaurant",
+ Reject: 'Rejeter',
+ Delivered: 'Livré',
+ OrderInformation: 'Informations sur la commande',
+ RestaurantCol: 'Restaurant',
+ Rider: 'Livreur',
+ OrderTime: 'Heure de commande',
+ Dispatch: 'Expédition',
+ PasswordUpdated: 'Mot de passe mis à jour',
+ ForgotPassword: 'Mot de passe oublié',
+ NotificationSentAuccessfully: 'Notification envoyée avec succès',
+ Notifications: 'Notifications',
+ Body: 'Corps',
+ Zones: 'Zones',
+ RequestID: 'ID de demande',
+ Amount: 'Montant',
+ Date: 'Date',
+ REQUESTED: 'DEMANDÉ',
+ TRANSFERRED: 'TRANSFÉRÉ',
+ CANCELLEDStatus: 'ANNULÉE',
+ WithdrawRequests: 'Demandes de retrait',
+ TotalRestaurants: 'Total des restaurants',
+ Restaurants: 'Restaurants',
+ Vendors: 'Vendeurs',
+ RestaurantUpdatedSuccessfully: 'Restaurant mis à jour avec succès',
+ UpdateProfile: 'Mettre à jour le profil',
+ PHRestaurantPassword: 'Mot de passe du restaurant',
+ PHRestaurantName: 'Nom du restaurant',
+ PHRestaurantAddress: 'Adresse du restaurant',
+ OrderPrefix: 'Préfixe de commande',
+ Days: 'Jours',
+ OpenTimes: "Heures d'ouverture",
+ TimeSavedSuccessfully: 'Heure sauvegardée avec succès',
+ ErrorWhileSavingTime: "Erreur lors de la sauvegarde de l'heure",
+ SavingDots: 'Enregistrement...',
+ January: 'Janvier',
+ February: 'Février',
+ March: 'Mars',
+ April: 'Avril',
+ May: 'Mai',
+ June: 'Juin',
+ July: 'Juillet',
+ MainPageText: 'Un logiciel multiplateforme',
+ MainPageText1:
+ "Une solution complète parfaitement adaptée pour construire n'importe quel restaurant.",
+ ViewSite: 'Voir le site',
+ TotalUsers: 'Utilisateurs totaux',
+ TotalVendors: 'Vendeurs totaux',
+ TotalRiders: 'Livreurs totaux',
+ RestaurantSections: 'Sections du restaurant',
+ ImageMenu: 'Menu image',
+ Vendor: 'Vendeur',
+ AddNewRestaurant: 'Ajouter un nouveau restaurant',
+ Ratings: 'Évaluations',
+ StripeDetailsAttached: 'Détails Stripe attachés',
+ EditStripeDetails: 'Modifier les détails Stripe',
+ SubmitStripeDetails: 'Soumettre les détails Stripe',
+ 'Restaurant Sections': 'Sections du restaurant',
+ Riders: 'Cavaliers',
+ Tipping: 'Pourboire',
+ Zone: 'Zone',
+ 'Commission Rates': 'Taux de commission',
+ 'Withdraw Requests': 'Demandes de retrait',
+ Home: 'Accueil',
+ Profile: 'Profil',
+ Option: 'Option',
+ Timings: 'Horaires',
+ Location: 'Emplacement',
+ 'Back to Admin': "Retour à l'administration",
+ TotalOrders: 'Total des commandes',
+ TotalSales: 'Total des ventes',
+ ClosedAllDay: 'Fermé toute la journée',
+ AddRestaurant: 'Ajouter un restaurant',
+ EditCoupon: 'Modifier le coupon',
+ AddCoupon: 'Ajouter un coupon',
+ SalesAmount: 'Montant des ventes',
+ OrderCount: 'Nombre de commandes',
+ MON: 'Lun',
+ TUE: 'Mar',
+ WED: 'Mer',
+ THU: 'Jeu',
+ FRI: 'Ven',
+ SAT: 'Sam',
+ SUN: 'Dim',
+ Open: 'Ouvert',
+ ACCEPTED: 'ACCEPTÉ',
+ PENDING: 'EN ATTENTE',
+ PICKED: 'CHOISI',
+ ASSIGNED: 'ATTRIBUÉ',
+ DELIVERED: 'LIVRÉ',
+ REJECTED: 'REJETÉ'
+ }
+}
+
+export default fr
diff --git a/enatega-multivendor-admin/src/translations/km.js b/enatega-multivendor-admin/src/translations/km.js
new file mode 100644
index 0000000..5005274
--- /dev/null
+++ b/enatega-multivendor-admin/src/translations/km.js
@@ -0,0 +1,308 @@
+const km = {
+ translation: {
+ 'Sign in credentials': 'ចូលព័ត៌មានអត្តសញ្ញាណ',
+ 'Sign in': 'ចូល',
+ 'Add Category': 'បន្ថែមប្រភេទ',
+ Title: 'ចំណងជើង',
+ Description: 'ការពិពណ៌នា',
+ Add: 'បន្ថែម',
+ Remove: 'យកចេញ',
+ 'Add/Remove': 'បន្ថែម / យកចេញ',
+ Success: 'ជោគជ័យ',
+ Danger: 'គ្រោះថ្នាក់',
+ Categories: 'ប្រភេទ',
+ Image: 'រូបភាព',
+ Header: 'បឋមកថា',
+ Loading: 'កំពុងផ្ទុក',
+ Error: 'កំហុស',
+ Edit: 'កែប្រែ',
+ Delete: 'លុប',
+ 'Edit Category': 'កែសម្រួលប្រភេទ',
+ Save: 'រក្សាទុក',
+ 'OrderID prefix': 'បុព្វបទ ID លំដាប់',
+ Order: 'លំដាប់',
+ Email: 'អ៊ីមែល',
+ Password: 'ពាក្យសម្ងាត់',
+ Enable: 'អនុញ្ញាត',
+ Disable: 'បិទ',
+ 'Enable/Disable': 'អនុញ្ញាត / មិនអនុញ្ញាត',
+ Saving: 'កំពុងរក្សាទុក',
+ Paypal: 'Paypal',
+ 'Client ID': 'លេខសម្គាល់អតិថិជន',
+ 'Client Secret': 'អតិថិជនសម្ងាត់',
+ Sandbox: 'Sandbox',
+ 'Publishable Key': 'កូនសៀវភៅបោះពុម្ព',
+ 'Secret Key': 'កូនសៀវភៅបោះពុម្ព',
+ 'Delivery Charges': 'ការដឹកជញ្ជូន',
+ Price: 'តម្លៃ',
+ 'Add Food': 'បន្ថែមអាហារ',
+ Category: 'ប្រភេទ',
+ Select: 'ជ្រើសរើស',
+ Variations: 'បំរែបំរួល',
+ Type: 'វាយ',
+ 'Food Image': 'រូបភាពអាហារ',
+ Foods: 'អាហារ',
+ Actions: 'សកម្មភាព',
+ 'Edit Food': 'កែសម្រួលអាហារ',
+ OrderID: 'លេខសម្គាល់លំដាប់',
+ Orders: 'ការបញ្ជាទិញ',
+ Name: 'ឈ្មោះ',
+ Items: 'ធាតុ',
+ Payment: 'ការទូទាត់',
+ Status: 'ស្ថានភាព',
+ Review: 'ពិនិត្យឡើងវិញ',
+ 'Mark as': 'សម្គាល់ថា',
+ Users: 'អ្នកប្រើ',
+ Phone: 'ទូរស័ព្ទ',
+ Address: 'អាសយដ្ឋាន',
+ 2019: 'ពីរពាន់ដប់ប្រាំបួន',
+ 'About Us': 'អំពីពួកយើង',
+ Blog: 'កំណត់ហេតុបណ្ដាញ',
+ Welcome: 'ស្វាគមន៍',
+ Logout: 'ចាកចេញ',
+ Dashboard: 'ផ្ទាំងគ្រប់គ្រង',
+ Configuration: 'ការកំណត់រចនាសម្ព័ន្ធ',
+ Login: 'ចូល',
+ Food: 'អាហារ',
+ 'Character limit of max length 50': 'ដែនកំណត់តួអក្សរនៃប្រវែងអតិបរមា 50',
+ 'Character limit of max length 15': 'ដែនកំណត់តួអក្សរនៃប្រវែងអតិបរមា 15',
+ 'Character limit of max length 60': 'ដែនកំណត់តួអក្សរនៃប្រវែងអតិបរមា 60',
+ 'Character limit of max length 20': 'ដែនកំណត់តួអក្សរនៃប្រវែងអតិបរមា 20',
+ 'Character limit of max length 140': 'ដែនកំណត់តួអក្សរនៃប្រវែងអតិបរមា 140',
+ Currency: 'រូបិយប័ណ្ណ',
+ Delivery: 'បញ្ជូន',
+ 'Currency Code': 'កូដរូបិយប័ណ្ណ',
+ 'Delivery Rate': 'អត្រាបញ្ជូន',
+ 'Currency Symbol': 'និមិត្តសញ្ញារូបិយប័ណ្ណ',
+ enterYourDetailsBelow: 'បញ្ចូលពត៌មានរបស់អ្នកខាងក្រោម',
+ LogintoEnatega: 'ចូលទៅកាន់ Enatega',
+ RememberMe: 'ចងចាំខ្ញុំ',
+ ForgotYourPassword: 'ភ្លេចពាក្យសម្ងាត់របស់អ្នក?',
+ errorWhileSaving: 'កំហុសបានកើតឡើងនៅពេលកំពុងរក្សាទុក, ព្យាយាមម្តងទៀត',
+ Saved: 'បានរក្សាទុក',
+ Addons: 'បន្ថែមមកកាន់',
+ AddRemoveAddon: 'បន្ថែម ឬ ដកចេញសម្រាប់ Addon',
+ MinQuantity: 'បរិមាណអប្បប',
+ MinimumQuantity: 'បរិមាណអប្បបនៃអនុសាសន៍',
+ MaxQuantity: 'បរិមាណអតិបរិមា',
+ MaximumQuantity: 'បរិមាណអតិបរិមានៃអនុសាសន៍',
+ Options: 'ជម្រើស',
+ NewOption: 'ជម្រើសថ្មី',
+ CategoryUpdatedSuccessfully: 'បានធ្វើបច្ចុប្បន្នភាពប្រភេទដោយជោគជ័យ',
+ CategoryAddedSuccessfully: 'បានបន្ថែមប្រភេទដោយជោគជ័យ',
+ ActionFailedTryAgain: 'សកម្មភាពបានបរាជ័យ។ សូមព្យាយាមម្តងទៀត',
+ PHCategory: 'ប្រភេទ ឧ. ព៌សាប្រាំថ្ងៃ',
+ ChooseCurrency: 'ជ្រើសរើសរូបិយប័ណ្ណ',
+ ChooseSymbol: 'ជ្រើសរើសនិមិត្តសញ្ញារូបិយប័ណ្ណ',
+ PHMail: 'ឧ. ស្មតស្រលាញ់@ឧ. គេហទំព័រ. លំអិត',
+ EmailName: 'ឈ្មោះអ៊ីមែល',
+ PHEnatega: 'ឧ. ស្មតហោះ',
+ PHFood: 'ឧ. ស្មតម្ហូប',
+ ClientSecretKey: 'សំងាត់អក្សរសុវត្ថិភាពអតិថិជន',
+ Stripe: 'ស្ទ្រីព៍',
+ PublishKey: 'កូនិស្តាកម្មសុវត្ថិភាព',
+ CouponUpdated: 'បានធ្វើបច្ចុប្បន្នភាពគូប៉ុង',
+ CouponAdded: 'បានបន្ថែមគូប៉ុង',
+ Code: 'កូដ',
+ PHCode: 'កូដ ឧ. គេហទំព័រ SALE50',
+ PHDiscount: 'បញ្ចុះតម្លៃ % ឧ. ១-៩៩',
+ FoodUpdatedSuccessfully: 'បានធ្វើបច្ចុប្បន្នភាពម្ហូប',
+ FoodAddedSuccessfully: 'បានបន្ថែមម្ហូប',
+ SelectCategory: 'ជ្រើសរើសប្រភេទ',
+ UploadAnImage: 'ផ្ទុករូបភាព',
+ UniqueTitle: 'ចំណងជើង (ត្រូវតែមានតែមួយ)',
+ Discounted: 'បញ្ចុះតម្លៃ',
+ LoadingDots: 'កំពុងផ្ទុក ...',
+ ErrorDots: 'កំហុស ...',
+ NewAddon: 'គ្រប់គ្រងធាតុបន្ថែមថ្មី',
+ EnategaMultivendor: 'Enatega ម៉ាល់ទ័រពុទ្ធកម្ម',
+ ResetPassword: 'កំណត់រង្វាន់ឡើងវិញ',
+ EnategaDashboard: 'ផ្ទៃតាប្រើប្រាស់ Enatega',
+ UpdateOption: 'ធ្វើបច្ចុប្បន្នភាពជម្រើស',
+ AddOption: 'បន្ថែមជម្រើស',
+ OrderStatusUpdated: 'កំណត់ស្ថានភាពកម្មង់ទាន់សម័យ',
+ SpecialInstructions: 'ការបញ្ជាក់ពិសេស',
+ Charges: 'ថ្លៃដើម្បីប្រើ',
+ Subtotal: 'សរុបរង',
+ DeliveryFee: 'ថ្លៃបញ្ជូន',
+ TaxCharges: 'ថ្លៃពន្ធបញ្ចូល',
+ Tip: 'ប្រាក់ឥវ៉ាន់',
+ Total: 'សរុប',
+ PaymentMethod: 'វិធីសាស្រ្តទូទាត់',
+ PaidAmount: 'ចំនួនទូទាត់',
+ Accepted: 'បានទទួលយក',
+ Accept: 'ទទួលយក',
+ Cancelled: 'បានបោះបង់',
+ Cancel: 'បោះបង់',
+ PHReasonIfRejected: 'ហេតុសំខាន់ប្រសើរបើលទុកចោល',
+ Datetime: 'ព័ត៌មានកាលបរិច្ឆេទ',
+ PasswordChangedSuccessfully: 'ប្តូរលេខសម្ងាត់ដោយជោគជ័យ',
+ ConfirmPassword: 'បញ្ជាក់ពាក្យសម្ងាត់',
+ Reset: 'កំណត់ឡើងវិញ',
+ RestaurantAdded: 'បានបន្ថែមភោជនីយដ្ឋាន',
+ NetworkError: 'កំហុសបណ្តាញ',
+ FieldsRequired: 'តម្រូវឱ្យបំពេញវាល',
+ Username: 'ឈ្មោះអ្នកប្រើ',
+ RestaurantUsername: 'ឈ្មោះអ្នកប្រើភោជនីយដ្ឋាន',
+ RestaurantPassword: 'ពាក្យសម្ងាត់ភោជនីយដ្ឋាន',
+ RestaurantName: 'ឈ្មោះភោជនីយដ្ឋាន',
+ RestaurantAddress: 'អាសយដ្ឋានភោជនីយដ្ឋាន',
+ DeliveryTime: 'ពេលវេលាដឹកជញ្ជូន',
+ MinOrder: 'ការកម្មង់អបអរ',
+ SalesTax: 'ពន្ធលក់',
+ RiderUpdatedSuccessfully: 'ជូនដំណឹងតាមលំដាប់',
+ RiderAddedSuccessfully: 'ជូនដំណឹងតាមលំដាប់បានបន្ថែមដោយជោគជ័យ',
+ UsernameCannotBeBlank: 'ឈ្មោះអ្នកប្រើមិនអាចទទេបានទេ។',
+ UsernameCannotContainSpaces: 'ឈ្មោះអ្នកប្រើមិនអាចមានដកឃ្លាបានទេ។',
+ EditRider: 'កែប្រែជូនដំណឹង',
+ AddRider: 'បន្ថែមជូនដំណឹង',
+ Available: 'មាន',
+ PHRiderName: 'ឈ្មោះជូនដំណឹង',
+ Number: 'លេខ',
+ PhoneNumber: 'លេខទូរស័ព្ទ',
+ RiderZone: 'តំបន់ជូនដំណឹង',
+ SectionUpdatedSuccessfully: 'កែប្រែបែបបទជំនាញដោយជោគជ័យ',
+ SectionAddedSuccessfully: 'បានបន្ថែមបែបបទដោយជោគជ័យ',
+ EditSection: 'កែប្រែបែបបទ',
+ AddSection: 'បន្ថែមបែបបទ',
+ SectionName: 'ឈ្មោះបែបបទ',
+ Update: 'ធ្វើបច្ចុប្បន្នភាព',
+ GENERAL: 'ទូទៅ',
+ MANAGEMENT: 'គ្រប់គ្រង',
+ RESTAURANT: 'ភោជនីយដ្ឋាន',
+ BackToAdmin: 'ត្រឡប់ទៅកាន់អនុគមន៏',
+ Search: 'ស្វែងរក',
+ TippingUpdated: 'ការធ្វើដំណើរការទាមទារត្រូវបានធ្វើអោយទាន់សម័យ',
+ EditTipping: 'កែប្រែការធ្វើដំណើរ',
+ AddTipping: 'បន្ថែមការធ្វើដំណើរ',
+ Tip1: 'ការធ្វើដំណើរ 1',
+ Tip2: 'ការធ្វើដំណើរ 2',
+ Tip3: 'ការធ្វើដំណើរ 3',
+ PHTip1: 'ការធ្វើដំណើរ 1 ឧទាហរណ៍ 10',
+ PHTip2: 'ការធ្វើដំណើរ 2 ឧទាហរណ៍ 20',
+ PHTip3: 'ការធ្វើដំណើរ 3 ឧទាហរណ៍ 30',
+ EditVendor: 'កែប្រែអ្នកលក់',
+ AddVendor: 'បន្ថែមអ្នកលក់',
+ PHNumber: 'ឧទាហរណ៍ 123',
+ ZoneUpdatedSuccessfully: 'តំបន់ត្រូវបានធ្វើបច្ចុប្បន្នភាព',
+ ZoneAddedSuccessfully: 'តំបន់បន្ថែមបានជោគជ័យ',
+ SetZoneOnMap: 'ដាក់តំបន់នៅលើផែនទី',
+ EditZone: 'កែប្រែតំបន់',
+ AddZone: 'បន្ថែមតំបន់',
+ Minimum: 'អប្បបរមា',
+ Maximum: 'អតិបរមា',
+ Action: 'សកម្មភាព',
+ AvailableAfterPurchasing: 'លក់ពេលដែលបានទិញផលិតផល',
+ CommissionRates: 'អត្រាការចំណាយ',
+ PHCommission: 'អត្រាការចំណាយឧទាហរណ៍',
+ Discount: 'បញ្ចុះតម្លៃ',
+ Coupons: 'គូប៉ុង',
+ StartDate: 'ថ្ងៃចាប់ផ្តើម',
+ GraphFilter: 'ត្រង្គល់តុ',
+ EndDate: 'ថ្ងៃបញ្ចប់',
+ Apply: 'អនុវត្ត',
+ UpdatingLocationError:
+ 'មានកំហុសពេលកំពុងធ្វើបច្ចុប្បន្នភាពទីតាំងនិងដែនតម្លៃ',
+ LocationMarkerRequired: 'ត្រូវការសញ្ញាទីតាំង',
+ DeliveryAreaRequired: 'ត្រូវការតំបន់ដឹកជញ្ជូន',
+ LocationUpdatedSuccessfully:
+ 'ទីតាំងនិងដែនតម្លៃបានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ',
+ SetLocation: 'ដាក់ទីតាំង',
+ DrawDeliveryBounds: 'គូរដែនដឹកជញ្ជូន',
+ SetRestaurantLocation: 'ដាក់ទីតាំងហាងនៅលើផែនទី',
+ RemoveDeliveryBounds: 'ដកដែនដឹកជញ្ជូន',
+ RemoveRestaurantLocation: 'ដកទីតាំងហាង',
+ Reject: 'បដិសេធទំនិញ',
+ Delivered: 'បញ្ជូនរួច',
+ OrderInformation: 'ព័ត៌មានការកុម្មង់',
+ RestaurantCol: 'ហាងនៅលើផែនទី',
+ Rider: 'អ្នកបើកបរ',
+ OrderTime: 'ព័ត៌មានការកុម្មង់',
+ Dispatch: 'បញ្ជូន',
+ PasswordUpdated: 'ពាក្យសម្ងាត់បានធ្វើបច្ចុប្បន្នភាព',
+ ForgotPassword: 'ភ្លេចពាក្យសម្ងាត់',
+ NotificationSentAuccessfully: 'ការជូនដំណឹងបានបញ្ចូលដោយជោគជ័យ',
+ Notifications: 'ការជូនដំណឹង',
+ Body: 'តួនាទី',
+ Zones: 'តំបន់',
+ RequestID: 'សូមបញ្ជាក់លេខសម្គាល់',
+ Amount: 'ចំនួន',
+ Date: 'កាលបរិច្ឆេទ',
+ REQUESTED: 'បានស្នើសុំ',
+ TRANSFERRED: 'បានបញ្ជូន',
+ CANCELLEDStatus: 'ស្ថានភាពបានលុប',
+ WithdrawRequests: 'សំណើសុំដកប្រាក់',
+ TotalRestaurants: 'ចំនួនសំុក',
+ Restaurants: 'សំុក',
+ Vendors: 'អ្នកលក់',
+ RestaurantUpdatedSuccessfully:
+ 'ការធ្វើបច្ចុប្បន្នភាពកំណត់ហេតុរបស់សំុកបានបន្ថែមដោយជោគជ័យ',
+ UpdateProfile: 'ធ្វើបច្ចុប្បន្នភាពទម្រង់',
+ PHRestaurantPassword: 'ពាក្យសម្ងាត់សំុក',
+ PHRestaurantName: 'ឈ្មោះសំុក',
+ PHRestaurantAddress: 'អាសយដ្ឋានសំុក',
+ OrderPrefix: 'បុព្វបទបញ្ជាពន្ធ',
+ Days: 'ថ្ងៃ',
+ OpenTimes: 'ម៉ោងបើក',
+ TimeSavedSuccessfully: 'បានរក្សារទុកពេលដែលជោគជ័យ',
+ ErrorWhileSavingTime: 'មានកំហុសពេលរក្សារទុកពេល',
+ SavingDots: 'កំពុងរក្សារទុក...',
+ January: 'មករា',
+ February: 'កុម្ភៈ',
+ March: 'មីនា',
+ April: 'មេសា',
+ May: 'ឧសភា',
+ June: 'មិថុនា',
+ July: 'កក្កដា',
+ MainPageText: 'កម្មវិធីសំរាប់ប្រព័ន្ធកុំព្យូទ័រ',
+ MainPageText1: 'ប្រព័ន្ធមួយដែលមានសំរាប់ទើបអាចតាមដានសំរាប់សំុកណាមួយ។',
+ ViewSite: 'មើលទំព័រ',
+ TotalUsers: 'សរុបអ្នកប្រើប្រាស់',
+ TotalVendors: 'សរុបអ្នកលក់',
+ TotalRiders: 'សរុបអ្នកជើងលើ',
+ RestaurantSections: 'ផ្នែកសំុក',
+ ImageMenu: 'ម៉ឺនុយរូប',
+ Vendor: 'អ្នកលក់',
+ AddNewRestaurant: 'បន្ថែមសំុកថ្មី',
+ Ratings: 'ការវាយតម្លៃ',
+ StripeDetailsAttached: 'លម្អិតព័ត៌មាន Stripe',
+ EditStripeDetails: 'កែសម្រួលព័ត៌មាន Stripe',
+ SubmitStripeDetails: 'ដាក់ពាក្យសម្ងាត់ព័ត៌មាន Stripe',
+ 'Restaurant Sections': 'ផ្នែកសំុក',
+ Riders: 'អ្នកជើងលើ',
+ Tipping: 'បង់ជូនរថយន្ត',
+ Zone: 'តំបន់',
+ 'Commission Rates': 'អត្ថបទនៃការរួមបញ្ចូល',
+ 'Withdraw Requests': 'សំណើសុំដកប្រាក់',
+ Home: 'ទំព័រដើម',
+ Profile: 'ទម្រង់',
+ Option: 'ជម្រើស',
+ Timings: 'ពេលវេលា',
+ Location: 'ទីតាំង',
+ 'Back to Admin': 'ត្រឡប់ទៅអគ្គនាយក',
+ TotalOrders: 'សរុបការបញ្ជាទិញ',
+ TotalSales: 'សរុបការលក់',
+ ClosedAllDay: 'បានបិទជុំវិញរបស់ថ្ងៃ',
+ AddRestaurant: 'បន្ថែមសំុក',
+ EditCoupon: 'កែសម្រួលការបញ្ជារបស់អ្នក',
+ AddCoupon: 'បន្ថែមការបញ្ជារបស់អ្នក',
+ SalesAmount: 'ចំនួនលក់',
+ OrderCount: 'ចំនួនការបញ្ជាទិញ',
+ MON: 'ច័ន្ទ',
+ TUE: 'អង្គារ',
+ WED: 'ពុធ',
+ THU: 'ព្រហស្បត់',
+ FRI: 'សុក្រ',
+ SAT: 'សៅរ៍',
+ SUN: 'អាទិត្យ',
+ Open: 'បើក',
+ ACCEPTED: 'ត្រូវបានទទួលយក',
+ PENDING: 'កំពុងរងចាំ',
+ PICKED: 'ត្រូវបានជ្រើសរើស',
+ ASSIGNED: 'ត្រូវបានផ្ដល់បន្ថែម',
+ DELIVERED: 'ត្រូវបានដឹកជញ្ជូន',
+ REJECTED: 'ត្រូវបានបដិសេធចោល'
+ }
+}
+
+export default km
diff --git a/enatega-multivendor-admin/src/translations/zh.js b/enatega-multivendor-admin/src/translations/zh.js
new file mode 100644
index 0000000..60007f9
--- /dev/null
+++ b/enatega-multivendor-admin/src/translations/zh.js
@@ -0,0 +1,304 @@
+const zh = {
+ translation: {
+ 'Sign in credentials': '登录凭据',
+ 'Sign in': '登入',
+ 'Add Category': '添加类别',
+ Title: '标题',
+ Description: '描述',
+ Add: '加',
+ Remove: '去掉',
+ 'Add/Remove': '添加/删除',
+ Success: '成功',
+ Danger: '危险',
+ Categories: '分类',
+ Image: '图片',
+ Header: '头',
+ Loading: '载入中',
+ Error: '错误',
+ Edit: '编辑',
+ Delete: '删除',
+ 'Edit Category': '编辑类别',
+ Save: '保存',
+ 'OrderID prefix': '订单ID前缀',
+ Order: '订购',
+ Email: '电子邮件',
+ Password: '密码',
+ Enable: '启用',
+ Disable: '禁用',
+ 'Enable/Disable': '启用/禁用',
+ Saving: '保存',
+ Paypal: '贝宝',
+ 'Client ID': '客户ID',
+ 'Client Secret': '客户秘密',
+ Sandbox: '砂箱',
+ 'Publishable Key': '可发布的密钥',
+ 'Secret Key': '密钥',
+ 'Delivery Charges': '送货费',
+ Price: '价钱',
+ 'Add Food': '添加食物',
+ Category: '类别',
+ Select: '选择',
+ Variations: '变化',
+ Type: '类型',
+ 'Food Image': '食物形象',
+ Foods: '食品',
+ Actions: '操作',
+ 'Edit Food': '编辑食物',
+ OrderID: '订单ID',
+ Orders: '命令',
+ Name: '名称',
+ Items: '项目',
+ Payment: '付款',
+ Status: '状态',
+ Review: '评论',
+ 'Mark as': '标记为',
+ Users: '用户',
+ Phone: '电话',
+ Address: '地址',
+ 2019: '2019',
+ 'About Us': '关于我们',
+ Blog: '博客',
+ Welcome: '欢迎',
+ Logout: '登出',
+ Dashboard: '仪表板',
+ Configuration: '组态',
+ Login: '登录',
+ Food: '餐饮',
+ 'Character limit of max length 50': '最大长度50的字符限制',
+ 'Character limit of max length 15': '最大长度15的字符限制',
+ 'Character limit of max length 60': '最大长度60的字符限制',
+ 'Character limit of max length 20': '最大长度20的字符限制',
+ 'Character limit of max length 140': '最大长度的字符限制140',
+ Currency: '货币',
+ Delivery: '送货',
+ 'Currency Code': '货币代码',
+ 'Delivery Rate': '送货费率',
+ 'Currency Symbol': '货币符号',
+ enterYourDetailsBelow: '在下面输入您的详细信息',
+ LogintoEnatega: '登录到Enatega',
+ RememberMe: '记住我',
+ ForgotYourPassword: '忘记密码?',
+ errorWhileSaving: '保存时出现错误,请重试',
+ Saved: '已保存',
+ Addons: '附加组件',
+ AddRemoveAddon: '添加或删除插件',
+ MinQuantity: '最小数量',
+ MinimumQuantity: '最小数量',
+ MaxQuantity: '最大数量',
+ MaximumQuantity: '最大数量',
+ Options: '选项',
+ NewOption: '新选项',
+ CategoryUpdatedSuccessfully: '类别成功更新',
+ CategoryAddedSuccessfully: '类别添加成功',
+ ActionFailedTryAgain: '操作失败,请重试',
+ PHCategory: '类别,例如早餐',
+ ChooseCurrency: '选择货币',
+ ChooseSymbol: '选择符号',
+ PHMail: '例如something@email.com',
+ EmailName: '电子邮件名称',
+ PHEnatega: '例如Enatega',
+ PHFood: '例如FOOD',
+ ClientSecretKey: '客户端秘钥',
+ Stripe: '条纹',
+ PublishKey: '发布密钥',
+ CouponUpdated: '优惠券已更新',
+ CouponAdded: '已添加优惠券',
+ Code: '代码',
+ PHCode: '例如SALE50的代码',
+ PHDiscount: '折扣百分比,即1-99',
+ FoodUpdatedSuccessfully: '食品成功更新',
+ FoodAddedSuccessfully: '食品成功添加',
+ SelectCategory: '选择类别',
+ UploadAnImage: '上传图片',
+ UniqueTitle: '标题(必须唯一)',
+ Discounted: '打折',
+ LoadingDots: '加载中...',
+ ErrorDots: '错误...',
+ NewAddon: '新插件',
+ EnategaMultivendor: 'Enatega 多供应商',
+ ResetPassword: '重置密码',
+ EnategaDashboard: 'Enatega 仪表板',
+ UpdateOption: '更新选项',
+ AddOption: '添加选项',
+ OrderStatusUpdated: '订单状态已更新',
+ SpecialInstructions: '特殊说明',
+ Charges: '费用',
+ Subtotal: '小计',
+ DeliveryFee: '运费',
+ TaxCharges: '税费',
+ Tip: '小费',
+ Total: '总计',
+ PaymentMethod: '支付方式',
+ PaidAmount: '已支付金额',
+ Accepted: '已接受',
+ Accept: '接受',
+ Cancelled: '已取消',
+ Cancel: '取消',
+ PHReasonIfRejected: '拒绝原因',
+ Datetime: '日期时间',
+ PasswordChangedSuccessfully: '密码已成功更改',
+ ConfirmPassword: '确认密码',
+ Reset: '重置',
+ RestaurantAdded: '餐厅已添加',
+ NetworkError: '网络错误',
+ FieldsRequired: '必填字段',
+ Username: '用户名',
+ RestaurantUsername: '餐厅用户名',
+ RestaurantPassword: '餐厅密码',
+ RestaurantName: '餐厅名称',
+ RestaurantAddress: '餐厅地址',
+ DeliveryTime: '送货时间',
+ MinOrder: '最低订单金额',
+ SalesTax: '销售税',
+ RiderUpdatedSuccessfully: '骑手已成功更新',
+ RiderAddedSuccessfully: '骑手已成功添加',
+ UsernameCannotBeBlank: '用户名不能为空',
+ UsernameCannotContainSpaces: '用户名不能包含空格',
+ EditRider: '编辑骑手',
+ AddRider: '添加骑手',
+ Available: '可用',
+ PHRiderName: '骑手姓名',
+ Number: '号码',
+ PhoneNumber: '电话号码',
+ RiderZone: '骑手区域',
+ SectionUpdatedSuccessfully: '部分已成功更新',
+ SectionAddedSuccessfully: '部分已成功添加',
+ EditSection: '编辑部分',
+ AddSection: '添加部分',
+ SectionName: '部分名称',
+ Update: '更新',
+ GENERAL: '常规',
+ MANAGEMENT: '管理',
+ RESTAURANT: '餐厅',
+ BackToAdmin: '返回管理员',
+ Search: '搜索',
+ TippingUpdated: '小费已更新',
+ EditTipping: '编辑小费',
+ AddTipping: '添加小费',
+ Tip1: '小费 1',
+ Tip2: '小费 2',
+ Tip3: '小费 3',
+ PHTip1: '小费 1,例如 10',
+ PHTip2: '小费 2,例如 20',
+ PHTip3: '小费 3,例如 30',
+ EditVendor: '编辑供应商',
+ AddVendor: '添加供应商',
+ PHNumber: '例如 123',
+ ZoneUpdatedSuccessfully: '区域已成功更新',
+ ZoneAddedSuccessfully: '区域已成功添加',
+ SetZoneOnMap: '在地图上设置区域',
+ EditZone: '编辑区域',
+ AddZone: '添加区域',
+ Minimum: '最小值',
+ Maximum: '最大值',
+ Action: '操作',
+ AvailableAfterPurchasing: '此功能将在购买产品后可用',
+ CommissionRates: '佣金率',
+ PHCommission: '佣金百分比',
+ Discount: '折扣',
+ Coupons: '优惠券',
+ StartDate: '开始日期',
+ GraphFilter: '图表筛选',
+ EndDate: '结束日期',
+ Apply: '应用',
+ UpdatingLocationError: '更新位置和边界时发生错误',
+ LocationMarkerRequired: '需要位置标记',
+ DeliveryAreaRequired: '需要交付区域',
+ LocationUpdatedSuccessfully: '位置和边界已成功更新',
+ SetLocation: '设置位置',
+ DrawDeliveryBounds: '绘制交付边界',
+ SetRestaurantLocation: '设置餐厅位置',
+ RemoveDeliveryBounds: '删除交付边界',
+ RemoveRestaurantLocation: '删除餐厅位置',
+ Reject: '拒绝',
+ Delivered: '已交付',
+ OrderInformation: '订单信息',
+ RestaurantCol: '餐厅',
+ Rider: '骑手',
+ OrderTime: '订单时间',
+ Dispatch: '派送',
+ PasswordUpdated: '密码已更新',
+ ForgotPassword: '忘记密码',
+ NotificationSentAuccessfully: '通知发送成功',
+ Notifications: '通知',
+ Body: '内容',
+ Zones: '区域',
+ RequestID: '请求 ID',
+ Amount: '金额',
+ Date: '日期',
+ REQUESTED: '请求中',
+ TRANSFERRED: '已转账',
+ CANCELLEDStatus: '已取消',
+ WithdrawRequests: '提款请求',
+ TotalRestaurants: '总餐厅',
+ Restaurants: '餐厅',
+ Vendors: '商家',
+ RestaurantUpdatedSuccessfully: '餐厅更新成功',
+ UpdateProfile: '更新个人资料',
+ PHRestaurantPassword: '餐馆密码',
+ PHRestaurantName: '餐馆名称',
+ PHRestaurantAddress: '餐馆地址',
+ OrderPrefix: '订单前缀',
+ Days: '天',
+ OpenTimes: '开放时间',
+ TimeSavedSuccessfully: '时间保存成功',
+ ErrorWhileSavingTime: '保存时间时出错',
+ SavingDots: '保存中...',
+ January: '一月',
+ February: '二月',
+ March: '三月',
+ April: '四月',
+ May: '五月',
+ June: '六月',
+ July: '七月',
+ MainPageText: '一个跨平台软件',
+ MainPageText1: '一个功能齐全的解决方案,非常适合构建任何餐厅。',
+ ViewSite: '查看网站',
+ TotalUsers: '总用户',
+ TotalVendors: '总商家',
+ TotalRiders: '总骑手',
+ RestaurantSections: '餐厅部分',
+ ImageMenu: '图片菜单',
+ Vendor: '商家',
+ AddNewRestaurant: '新增餐厅',
+ Ratings: '评分',
+ StripeDetailsAttached: 'Stripe 详细信息已附加',
+ EditStripeDetails: '编辑 Stripe 详细信息',
+ SubmitStripeDetails: '提交 Stripe 详细信息',
+ 'Restaurant Sections': '餐厅部分',
+ Riders: '骑手',
+ Tipping: '小费',
+ Zone: '区域',
+ 'Commission Rates': '佣金率',
+ 'Withdraw Requests': '提款请求',
+ Home: '首页',
+ Profile: '个人资料',
+ Option: '选项',
+ Timings: '时间',
+ Location: '位置',
+ 'Back to Admin': '返回管理',
+ TotalOrders: '总订单',
+ TotalSales: '总销售额',
+ ClosedAllDay: '全天关闭',
+ AddRestaurant: '添加餐厅',
+ EditCoupon: '编辑优惠券',
+ AddCoupon: '添加优惠券',
+ SalesAmount: '销售额',
+ OrderCount: '订单数',
+ MON: '星期一',
+ TUE: '星期二',
+ WED: '星期三',
+ THU: '星期四',
+ FRI: '星期五',
+ SAT: '星期六',
+ SUN: '星期日',
+ Open: '打开',
+ ACCEPTED: '已接受',
+ PENDING: '待处理',
+ PICKED: '已选择',
+ ASSIGNED: '已分配',
+ DELIVERED: '已交付',
+ REJECTED: '已拒绝'
+ }
+}
+export default zh
diff --git a/enatega-multivendor-admin/src/utils/coordinates.js b/enatega-multivendor-admin/src/utils/coordinates.js
new file mode 100644
index 0000000..011733f
--- /dev/null
+++ b/enatega-multivendor-admin/src/utils/coordinates.js
@@ -0,0 +1,12 @@
+export function transformPolygon(coordinate) {
+ return coordinate.slice(0, coordinate.length - 1).map(item => {
+ return { lat: item[1], lng: item[0] }
+ })
+}
+export function transformPath(path) {
+ const geometry = path.map(coordinates => {
+ return [coordinates.lng, coordinates.lat]
+ })
+ geometry.push(geometry[0])
+ return [geometry]
+}
diff --git a/enatega-multivendor-admin/src/utils/enums.js b/enatega-multivendor-admin/src/utils/enums.js
new file mode 100644
index 0000000..58378eb
--- /dev/null
+++ b/enatega-multivendor-admin/src/utils/enums.js
@@ -0,0 +1,4 @@
+export const SHOP_TYPE = {
+ GROCERY: 'grocery',
+ RESTAURANT: 'restaurant'
+}
diff --git a/enatega-multivendor-admin/src/utils/globalStyles.js b/enatega-multivendor-admin/src/utils/globalStyles.js
new file mode 100644
index 0000000..94cd900
--- /dev/null
+++ b/enatega-multivendor-admin/src/utils/globalStyles.js
@@ -0,0 +1,122 @@
+import { makeStyles } from '@mui/styles'
+
+const useGlobalStyles = makeStyles(theme => ({
+ flex: {
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center'
+ },
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ input: {
+ backgroundColor: theme.palette.common.white,
+ margin: '20px 20px 0 0',
+ height: 40,
+ width: '90%',
+ fontSize: 15,
+ color: theme.palette.text.disabled,
+ padding: '5px 20px',
+ borderRadius: 31,
+ boxShadow: '0px 0px 18px rgba(0, 0, 0, 0.04)',
+ border: `1px solid ${theme.palette.grey[100]}`
+ },
+ inputError: {
+ border: `2px solid ${theme.palette.error.main}`
+ },
+ inputSuccess: {
+ border: `2px solid ${theme.palette.primary.main2}`
+ },
+ button: {
+ backgroundColor: theme.palette.primary.main2,
+ height: 35,
+ borderRadius: 15,
+ color: theme.palette.common.black,
+ fontWeight: 'bold',
+ border: 'none',
+ margin: '20px 0 0 0',
+ padding: '5px 25px',
+ '&:hover': {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.common.white
+ }
+ },
+ button100: {
+ width: '90%',
+ backgroundColor: theme.palette.primary.main2,
+ height: 35,
+ borderRadius: 15,
+ color: theme.palette.common.black,
+ fontWeight: 'bold',
+ border: 'none',
+ margin: '20px 0 0 0',
+ padding: '5px 25px',
+ '&:hover': {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.common.white
+ }
+ },
+ selectInput: {
+ height: 20,
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 10,
+ boxShadow: '0px 0px 18px rgba(0, 0, 0, 0.04)',
+ border: `1px solid ${theme.palette.grey[100]}`
+ },
+ timing: {
+ backgroundColor: theme.palette.background.primary,
+ margin: '30px 0',
+ borderRadius: 20,
+ boxShadow: `0px 0px 38px ${theme.palette.common.blackShade}`,
+ textAlign: 'center'
+ },
+ timingHeader: {
+ backgroundColor: theme.palette.primary.main2,
+ borderRadius: '20px 20px 0 0',
+ fontWeight: 'bold',
+ padding: '10px ',
+ color: theme.palette.common.black
+ },
+ dayComponent: {
+ // backgroundColor: theme.palette.grey[700],
+ padding: 5,
+ borderRadius: 15,
+ marginTop: 5,
+ marginBottom: 5
+ },
+ day: {
+ // backgroundColor: theme.palette.grey[200],
+ color: theme.palette.common.black,
+ borderRadius: 15
+ },
+ openBtn: {
+ borderRadius: 20,
+ padding: '0 5px',
+ backgroundColor: theme.palette.primary.main2,
+ color: theme.palette.common.black
+ },
+ closeBtn: {
+ borderRadius: 20,
+ padding: '0 5px',
+ color: theme.palette.primary.main2,
+ backgroundColor: theme.palette.common.black
+ },
+ mb: {
+ marginBottom: 20
+ },
+ alertSuccess: {
+ backgroundColor: theme.palette.primary.main2,
+ paddingTop: 0,
+ paddingBottom: 0
+ },
+ alertError: {
+ backgroundColor: theme.palette.warning.main,
+ paddingTop: 0,
+ paddingBottom: 0
+ }
+}))
+
+export default useGlobalStyles
diff --git a/enatega-multivendor-admin/src/utils/stringManipulations.js b/enatega-multivendor-admin/src/utils/stringManipulations.js
new file mode 100644
index 0000000..92acfa4
--- /dev/null
+++ b/enatega-multivendor-admin/src/utils/stringManipulations.js
@@ -0,0 +1,20 @@
+/*
+ * Transform string by adding newline after x spaces
+ * parameter: String, Number
+ * return: String
+ */
+const transformToNewline = (input, spaces = 3) => {
+ var spaceCount = 0
+ var result = []
+ var splittedDesc = input.split('')
+ for (let i = 0; i < splittedDesc.length; i++) {
+ result.push(splittedDesc[i])
+ if (splittedDesc[i] === ' ') {
+ ++spaceCount
+ if (spaceCount % spaces === 0 && spaceCount !== 0) result.push('\n')
+ }
+ }
+ return result.join('')
+}
+
+export { transformToNewline }
diff --git a/enatega-multivendor-admin/src/utils/tableCustomStyles.js b/enatega-multivendor-admin/src/utils/tableCustomStyles.js
new file mode 100644
index 0000000..ad6b223
--- /dev/null
+++ b/enatega-multivendor-admin/src/utils/tableCustomStyles.js
@@ -0,0 +1,81 @@
+export const customStyles = {
+ header: {
+ style: {
+ fontSize: '17px',
+ fontWeight: 'bold',
+ minHeight: '40px',
+ paddingLeft: '16px',
+ paddingRight: '8px',
+ borderRadius: '20px 20px 0 0'
+ }
+ },
+ headRow: {
+ style: {
+ backgroundColor: '#6FCF97',
+ color: '#FFFFFF',
+ fontSize: '16px',
+ fontWeight: 'bold',
+ minHeight: '40px',
+ borderRadius: '0 0 20px 20px',
+ borderBottom: 'none',
+ alignItems: 'center',
+ textAlign: 'center'
+ },
+ denseStyle: {
+ minHeight: '32px'
+ }
+ },
+ subHeader: {
+ style: {
+ minHeight: '0px',
+ marginTop: -14,
+ boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.09)'
+ }
+ },
+ headCells: {
+ style: {
+ fontSize: '14px',
+ color: 'white',
+ fontWeight: 'bold'
+ }
+ },
+
+ rows: {
+ style: {
+ fontSize: '13px',
+ fontWeight: 400,
+ minHeight: '40px',
+ textAlign: 'center',
+ '&:not(:last-of-type)': {
+ borderBottomStyle: 'solid',
+ borderBottomWidth: '0px'
+ },
+ '&:hover': {
+ backgroundColor: '#f9fafc'
+ }
+ }
+ },
+ pagination: {
+ style: {
+ fontSize: '13px',
+ minHeight: '50px',
+ borderRadius: '0 0 20px 20px',
+ textAlign: 'left'
+ },
+ pageButtonsStyle: {
+ backgroundColor: 'transparent',
+ '&:disabled': {
+ cursor: 'unset',
+ color: 'red',
+ fill: '#5A5858'
+ },
+ '&:hover:not(:disabled)': {
+ backgroundColor: '#90EA93'
+ },
+ '&:focus': {
+ outline: 'none',
+ backgroundColor: '#90EA93'
+ }
+ }
+ }
+}
diff --git a/enatega-multivendor-admin/src/utils/theme.js b/enatega-multivendor-admin/src/utils/theme.js
new file mode 100644
index 0000000..785c4ee
--- /dev/null
+++ b/enatega-multivendor-admin/src/utils/theme.js
@@ -0,0 +1,224 @@
+import { blue } from '@mui/material/colors'
+import { createTheme } from '@mui/material/styles'
+
+const theme = createTheme({
+ overrides: {
+ MuiPickersToolbar: {
+ toolbar: {
+ backgroundColor: blue.A200
+ }
+ },
+ MuiPickersCalendarHeader: {
+ switchHeader: {
+ // backgroundColor: blue.A200,
+ // color: "white",
+ }
+ },
+ MuiPickersDay: {
+ day: {
+ color: blue.A700
+ },
+ daySelected: {
+ backgroundColor: blue['400']
+ },
+ dayDisabled: {
+ color: blue['100']
+ },
+ current: {
+ color: blue['900']
+ }
+ },
+ MuiPickersModal: {
+ dialogAction: {
+ color: blue['400']
+ }
+ }
+ },
+ typography: {
+ fontFamily: ['Inter', 'Open Sans', 'sans-serif'].join(),
+ htmlFontSize: 16,
+ fontSize: 14,
+ fontWeightLight: 300,
+ fontWeightRegular: 400,
+ fontWeightMedium: 500,
+ fontWeightBold: 700,
+ h1: {
+ fontWeight: 300,
+ fontSize: '6rem',
+ lineHeight: 1.167,
+ letterSpacing: '-0.01562em'
+ },
+ h2: {
+ fontWeight: 300,
+ fontSize: '3.75rem',
+ lineHeight: 1.2,
+ letterSpacing: '-0.00833em'
+ },
+ h3: {
+ fontWeight: 400,
+ fontSize: '3rem',
+ lineHeight: 1.167,
+ letterSpacing: '0em'
+ },
+ h4: {
+ fontWeight: 400,
+ fontSize: '2.125rem',
+ lineHeight: 1.235,
+ letterSpacing: '0.00735em'
+ },
+ h5: {
+ fontWeight: 400,
+ fontSize: '1.5rem',
+ lineHeight: 1.334,
+ letterSpacing: '0em'
+ },
+ h6: {
+ fontWeight: 500,
+ fontSize: '1.25rem',
+ lineHeight: 1.6,
+ letterSpacing: '0.0075em'
+ },
+ subtitle1: {
+ fontWeight: 400,
+ fontSize: '1rem',
+ lineHeight: 1.75,
+ letterSpacing: '0.00938em'
+ },
+ subtitle2: {
+ fontWeight: 500,
+ fontSize: '0.875rem',
+ lineHeight: 1.57,
+ letterSpacing: '0.00714em'
+ },
+ body1: {
+ fontWeight: 400,
+ fontSize: '1rem',
+ lineHeight: 1.5,
+ letterSpacing: '0.00938em'
+ },
+ body2: {
+ fontWeight: 400,
+ fontSize: '1rem',
+ lineHeight: 1.5,
+ letterSpacing: '0.00938em'
+ },
+ button: {
+ fontWeight: 500,
+ fontSize: '0.875rem',
+ lineHeight: 1.75,
+ letterSpacing: '0.02857em',
+ textTransform: 'uppercase'
+ },
+ caption: {
+ fontWeight: 400,
+ fontSize: '0.75rem',
+ lineHeight: 1.66,
+ letterSpacing: '0.03333em'
+ },
+ overline: {
+ fontWeight: 400,
+ fontSize: '0.75rem',
+ lineHeight: 2.66,
+ letterSpacing: '0.08333em',
+ textTransform: 'uppercase'
+ },
+ shape: {
+ borderRadius: 4
+ },
+ zIndex: {
+ mobileStepper: 1000,
+ speedDial: 1050,
+ appBar: 1100,
+ drawer: 1200,
+ modal: 1300,
+ snackbar: 1400,
+ tooltip: 1500
+ }
+ },
+ palette: {
+ mode: 'light',
+ common: {
+ black: '#000',
+ blackShade: 'rgba(0, 0, 0, 0.06)',
+ white: '#fff'
+ },
+ primary: {
+ main: '#6FCF97',
+ main2: '#90EA93',
+ main3: '#3C8F7C',
+ light: '#fff',
+ dark: '#000',
+ contrastText: '#fff'
+ },
+ secondary: {
+ main: '#FAFAFA',
+ light: '#333333',
+ lightest: '#3C8F7C',
+ dark: '#949393',
+ darkest: '#3EC6DD',
+ contrastText: '#fff'
+ },
+ success: {
+ main: '#1DB20D',
+ light: '#CDCDCD',
+ lightest: '#EEF4FA',
+ dark: '#FDEFDD',
+ darkest: '#DEE6ED',
+ contrastText: '#fff'
+ },
+ info: {
+ main: 'rgba(39,111,191,0.8)',
+ light: 'rgba(63, 64, 65, 0.66)',
+ lightest: 'rgba(238, 244, 250, 0.66)',
+ dark: 'rgba(0, 0, 0, 0.08)',
+ darkest: 'rgba(0, 0, 0, 0.1)',
+ contrastText: '#fff'
+ },
+ error: {
+ main: '#fe0000',
+ light: '#BB2124',
+ lightest: '#fb6340',
+ contrastText: '#fff'
+ },
+ warning: {
+ main: '#FA7751',
+ light: '#FCC54C',
+ lightest: 'rgba(240, 173, 78,0.2)',
+ dark: '#90EA93',
+ darkest: 'rgba(111, 207, 151, 0.34)',
+ contrastText: '#fff'
+ },
+ grey: {
+ 50: '#fafafa',
+ 100: '#f5f5f5',
+ 200: '#eeeeee',
+ 300: '#e0e0e0',
+ 400: '#bdbdbd',
+ 500: '#9e9e9e',
+ 600: '#757575',
+ 700: '#616161',
+ 800: '#424242',
+ 900: '#212121',
+ A100: '#d5d5d5',
+ A200: '#aaaaaa',
+ A400: '#303030',
+ A700: '#616161'
+ },
+ contrastThreshold: 3,
+ tonalOffset: 0.2,
+ text: {
+ primary: '#fff',
+ secondary: '#212121',
+ disabled: '#5A5858',
+ hint: '#FFF'
+ },
+ divider: 'rgba(0, 0, 0, 0.12)',
+ background: {
+ paper: '#FAFAFA',
+ default: '#fff',
+ primary: '#f9fafc'
+ }
+ }
+})
+
+export default theme
diff --git a/enatega-multivendor-admin/src/views/.Dashboard.jsx.swp b/enatega-multivendor-admin/src/views/.Dashboard.jsx.swp
new file mode 100644
index 0000000..c09ba40
Binary files /dev/null and b/enatega-multivendor-admin/src/views/.Dashboard.jsx.swp differ
diff --git a/enatega-multivendor-admin/src/views/Addons.jsx b/enatega-multivendor-admin/src/views/Addons.jsx
new file mode 100644
index 0000000..d5ff0d6
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Addons.jsx
@@ -0,0 +1,244 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import Header from '../components/Headers/Header'
+import AddonComponent from '../components/Addon/Addon'
+import { getRestaurantDetail, deleteAddon } from '../apollo'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import { withTranslation } from 'react-i18next'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_ADDONS = gql`
+ ${getRestaurantDetail}
+`
+const DELETE_ADDON = gql`
+ ${deleteAddon}
+`
+const Addon = props => {
+ const { t } = props
+ const {PAID_VERSION} = ConfigurableValues()
+ const [addon, setAddon] = useState(null)
+ const [editModal, setEditModal] = useState(false)
+ const [searchQuery, setSearchQuery] = useState('')
+ const [isOpen, setIsOpen] = useState(false)
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+
+ const toggleModal = addon => {
+ setEditModal(!editModal)
+ setAddon(addon)
+ }
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_ADDONS,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ const [mutate, { loading }] = useMutation(DELETE_ADDON, {
+ refetchQueries: [{ query: GET_ADDONS, variables: { id: restaurantId } }]
+ })
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field] && isNaN(row[field])) {
+ return row[field].toLowerCase()
+ }
+ return row[field]
+ }
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Title'),
+ sortable: true,
+ selector: 'title'
+ },
+ {
+ name: t('Description'),
+ sortable: true,
+ selector: 'description'
+ },
+ {
+ name: t('Minimum'),
+ sortable: true,
+ selector: 'quantityMinimum'
+ },
+ {
+ name: t('Maximum'),
+ sortable: true,
+ selector: 'quantityMaximum'
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.restaurant.addons
+ : data &&
+ data.restaurant.addons.filter(addon => {
+ return (
+ addon.title.toLowerCase().search(regex) > -1 ||
+ addon.description.toLowerCase().search(regex) > -1
+ )
+ })
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+ {isOpen && (
+
+ )}
+ {/* Page content */}
+
+
+ {errorQuery && (
+
+ {`Error! ${errorQuery.message}`}
+
+ )}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={data && data.restaurant ? filtered : {}}
+ pagination
+ progressPending={loading}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="title"
+ customStyles={customStyles}
+ selectableRows
+ />
+ )}
+ {
+ toggleModal()
+ }}>
+
+
+
+ >
+ )
+}
+export default withTranslation()(Addon)
diff --git a/enatega-multivendor-admin/src/views/AdminPrivateRoute.jsx b/enatega-multivendor-admin/src/views/AdminPrivateRoute.jsx
new file mode 100644
index 0000000..b759d78
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/AdminPrivateRoute.jsx
@@ -0,0 +1,29 @@
+import React from 'react'
+import { Redirect, Route } from 'react-router-dom'
+export const AdminPrivateRoute = ({ component: Component, ...rest }) => (
+
+ localStorage.getItem('user-enatega') ? (
+ JSON.parse(localStorage.getItem('user-enatega')).userType ===
+ 'ADMIN' ? (
+
+ ) : (
+
+ )
+ ) : (
+
+ )
+ }
+ />
+)
diff --git a/enatega-multivendor-admin/src/views/Category.jsx b/enatega-multivendor-admin/src/views/Category.jsx
new file mode 100644
index 0000000..ace71af
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Category.jsx
@@ -0,0 +1,230 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import CategoryComponent from '../components/Category/Category'
+import CustomLoader from '../components/Loader/CustomLoader'
+// core components
+import Header from '../components/Headers/Header'
+import { getRestaurantDetail, deleteCategory } from '../apollo'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Typography,
+ ListItemIcon,
+ Grid
+} from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_CATEGORIES = gql`
+ ${getRestaurantDetail}
+`
+const DELETE_CATEGORY = gql`
+ ${deleteCategory}
+`
+const Category = props => {
+ const { t } = props
+ const {PAID_VERSION} = ConfigurableValues()
+ const [editModal, setEditModal] = useState(false)
+ const [category, setCategory] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const [isOpen, setIsOpen] = useState(false)
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+
+ const toggleModal = category => {
+ setEditModal(!editModal)
+ setCategory(category)
+ }
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const [mutate, { loading }] = useMutation(DELETE_CATEGORY)
+
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_CATEGORIES,
+ {
+ variables: {
+ id: restaurantId
+ }
+ }
+ )
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+ return row[field]
+ }
+ return orderBy(rows, handleField, direction)
+ }
+ const columns = [
+ {
+ name: t('Title'),
+ sortable: true,
+ selector: 'title'
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.restaurant.categories
+ : data &&
+ data.restaurant.categories.filter(category => {
+ return category.title.toLowerCase().search(regex) > -1
+ })
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {isOpen && (
+
+ )}
+ {/* Page content */}
+
+
+
+
+
+
+ {errorQuery ? {`Error! ${errorQuery.message}`} : null}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loading}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="title"
+ customStyles={customStyles}
+ selectableRows
+ paginationIconLastPage=""
+ paginationIconFirstPage=""
+ />
+ )}
+
+ {
+ toggleModal(null)
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center'
+ }}>
+
+
+
+ >
+ )
+}
+export default withTranslation()(Category)
diff --git a/enatega-multivendor-admin/src/views/Commission.jsx b/enatega-multivendor-admin/src/views/Commission.jsx
new file mode 100644
index 0000000..6d12e35
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Commission.jsx
@@ -0,0 +1,121 @@
+import React from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import Header from '../components/Headers/Header'
+import { restaurants, updateCommission } from '../apollo'
+import CustomLoader from '../components/Loader/CustomLoader'
+import useGlobalStyles from '../utils/globalStyles'
+import { Container, Box, Typography, Grid, Input, Button } from '@mui/material'
+import useStyles from '../components/Rider/styles'
+import { NotificationContainer, NotificationManager } from 'react-notifications'
+import 'react-notifications/lib/notifications.css'
+import { ReactComponent as CommissionIcon } from '../assets/svg/svg/CommisionRate.svg'
+import { useTranslation, withTranslation } from 'react-i18next'
+
+const GET_RESTAURANTS = gql`
+ ${restaurants}
+`
+const UPDATE_COMMISSION = gql`
+ ${updateCommission}
+`
+const Commission = () => {
+ const getValues = id => {
+ const commissionRate = document.getElementById(id).value
+ return { id, commissionRate: +commissionRate }
+ }
+ const [mutate, { error }] = useMutation(UPDATE_COMMISSION)
+
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_RESTAURANTS
+ )
+ console.log(data)
+ const globalClasses = useGlobalStyles()
+ const classes = useStyles()
+ const { t } = useTranslation()
+ const handleSuccessButtonClick = () => {
+ NotificationManager.success('Update Successful', 'Commission Rates', 3000, {
+ className: 'customNotification'
+ })
+ }
+ const handleErrorButtonClick = () => {
+ NotificationManager.error('Update Error', 'Commission Rates', 3000, {
+ className: 'customNotification'
+ })
+ }
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+ {t('CommissionRates')}
+
+
+
+ {errorQuery ? error {errorQuery.message} : null}
+ {loadingQuery ? (
+
+ ) : (
+ data && (
+ <>
+ {data.restaurants.map(restaurant => (
+
+
+ {restaurant.name}
+
+
+
+
+
+ {
+ const result = getValues(restaurant._id)
+ mutate({
+ variables: result,
+ onCompleted: data => {
+ handleSuccessButtonClick()
+ }
+ })
+ }}>
+ {t('Save')}
+
+ {error && {error.message} }
+
+
+ ))}
+ {error && handleErrorButtonClick()}
+ >
+ )
+ )}
+
+
+
+
+
+
+
+
+ >
+ )
+}
+export default withTranslation()(Commission)
diff --git a/enatega-multivendor-admin/src/views/Configuration.jsx b/enatega-multivendor-admin/src/views/Configuration.jsx
new file mode 100644
index 0000000..6d909b0
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Configuration.jsx
@@ -0,0 +1,185 @@
+import React from 'react'
+import { withTranslation } from 'react-i18next'
+import { useQuery, gql } from '@apollo/client'
+import Header from '../components/Headers/Header'
+import { getConfiguration } from '../apollo'
+import EmailConfiguration from '../components/Configuration/Email/Email'
+import Email from '../components/Configuration/FormEmail/FormEmail'
+import DeliveryRateConfiguration from '../components/Configuration/DeliveryRate/DeliveryRate'
+import PaypalConfiguration from '../components/Configuration/Paypal/Paypal'
+import StripeConfiguration from '../components/Configuration/Stripe/Stripe'
+import CurrencyConfiguration from '../components/Configuration/Currency/Currency'
+import { Grid } from '@mui/material'
+import { ReactComponent as ConfigIcon } from '../assets/svg/svg/Configuration.svg'
+import TwilioConfiguration from '../components/Configuration/Twilio/Twilio'
+import VerificationConfiguration from '../components/Configuration/Verification/Verification'
+import SendGridConfiguration from '../components/Configuration/SendGrid/SendGrid'
+
+import SentryConfiguration from '../components/Configuration/Sentry/Sentry'
+import GoogleApiKeyConfiguration from '../components/Configuration/GoogleApi/GoogleApi'
+import CloudinaryConfiguration from '../components/Configuration/ Cloudinary/ Cloudinary'
+import AmplitudeApiKeyConfiguration from '../components/Configuration/Amplitude/Amplitude'
+import GoogleClientIDConfiguration from '../components/Configuration/GoogleClient/GoogleClient'
+import WebConfiguration from '../components/Configuration/Web/Web'
+import AppConfigurations from '../components/Configuration/App/App'
+import FirebaseConfiguration from '../components/Configuration/FireBase/FireBase'
+import Configuration1 from './Configuration1'
+
+const GET_CONFIGURATION = gql`
+ ${getConfiguration}
+`
+const Configuration = props => {
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_CONFIGURATION
+ )
+ console.log('configuration', data)
+ const { t } = props
+
+ return (
+ <>
+
+ {errorQuery && t('Error')}
+ {loadingQuery ? (
+ t('LoadingDots')
+ ) : (
+ data.configuration.isPaidVersion?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+ )}
+ >
+ )
+}
+
+export default withTranslation()(Configuration)
diff --git a/enatega-multivendor-admin/src/views/Configuration1.jsx b/enatega-multivendor-admin/src/views/Configuration1.jsx
new file mode 100644
index 0000000..9b6fd4e
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Configuration1.jsx
@@ -0,0 +1,37 @@
+import React from 'react'
+import { withTranslation } from 'react-i18next'
+import { Grid, useTheme } from '@mui/material'
+import { ReactComponent as ConfigIcon } from '../assets/svg/svg/Configuration.svg'
+import { Box } from '@mui/material'
+
+const Configuration1 = props => {
+ const { t } = props
+ const theme = useTheme()
+ return (
+
+
+ {t('AvailableAfterPurchasing')}
+
+
+
+
+
+ )
+}
+
+export default withTranslation()(Configuration1)
diff --git a/enatega-multivendor-admin/src/views/Coupons.jsx b/enatega-multivendor-admin/src/views/Coupons.jsx
new file mode 100644
index 0000000..9c5df48
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Coupons.jsx
@@ -0,0 +1,241 @@
+import React, { useState } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import CouponComponent from '../components/Coupon/Coupon'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import { getCoupons, deleteCoupon, editCoupon } from '../apollo'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import {
+ Container,
+ Grid,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Switch,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { ReactComponent as CouponsIcon } from '../assets/svg/svg/Coupons.svg'
+import TableHeader from '../components/TableHeader'
+
+const GET_COUPONS = gql`
+ ${getCoupons}
+`
+const EDIT_COUPON = gql`
+ ${editCoupon}
+`
+const DELETE_COUPON = gql`
+ ${deleteCoupon}
+`
+
+const Coupon = props => {
+ const { t } = props
+ const [editModal, setEditModal] = useState(false)
+ const [coupon, setCoupon] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const [mutateEdit] = useMutation(EDIT_COUPON)
+ const [mutateDelete] = useMutation(DELETE_COUPON, {
+ refetchQueries: [{ query: GET_COUPONS }]
+ })
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_COUPONS
+ )
+ const toggleModal = coupon => {
+ setEditModal(!editModal)
+ setCoupon(coupon)
+ }
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field] && isNaN(row[field])) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Title'),
+ sortable: true,
+ selector: 'title'
+ },
+ {
+ name: t('Discount'),
+ sortable: true,
+ selector: 'discount'
+ },
+ {
+ name: t('Status'),
+ cell: row => <>{statusChanged(row)}>
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.coupons
+ : data &&
+ data.coupons.filter(coupon => {
+ return coupon.title.toLowerCase().search(regex) > -1
+ })
+
+ const statusChanged = row => {
+ return (
+ <>
+ {row.enabled}
+ {
+ mutateEdit({
+ variables: {
+ couponInput: {
+ _id: row._id,
+ title: row.title,
+ discount: row.discount,
+ enabled: !row.enabled
+ }
+ }
+ })
+ }}
+ style={{ color: 'black' }}
+ />
+ >
+ )
+ }
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {/* Page content */}
+
+
+
+
+
+
+
+
+
+
+ {errorQuery ? (
+
+ `${t('Error')}! ${errorQuery.message}`
+
+ ) : null}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="title"
+ customStyles={customStyles}
+ />
+ )}
+ {
+ toggleModal(null)
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center'
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Coupon)
diff --git a/enatega-multivendor-admin/src/views/Cuisines.jsx b/enatega-multivendor-admin/src/views/Cuisines.jsx
new file mode 100644
index 0000000..adcbf6a
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Cuisines.jsx
@@ -0,0 +1,213 @@
+import React, { useState } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import { getCuisines, editCuisine, deleteCuisine } from '../apollo'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import {
+ Container,
+ Grid,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Switch,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { ReactComponent as CouponsIcon } from '../assets/svg/svg/Coupons.svg'
+import TableHeader from '../components/TableHeader'
+import CuisineComponent from '../components/Cuisine/Cuisine'
+
+const GET_CUISINES = gql`
+ ${getCuisines}
+`
+const EDIT_CUISINE = gql`
+ ${editCuisine}
+`
+const DELETE_CUISINE = gql`
+ ${deleteCuisine}
+`
+
+const Cuisines = props => {
+ const { t } = props
+ const [editModal, setEditModal] = useState(false)
+ const [cuisine, setCuisine] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const [mutateEdit] = useMutation(EDIT_CUISINE)
+ const [mutateDelete] = useMutation(DELETE_CUISINE, {
+ refetchQueries: [{ query: GET_CUISINES }]
+ })
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_CUISINES
+ )
+ const toggleModal = cuisine => {
+ setEditModal(!editModal)
+ setCuisine(cuisine)
+ }
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field] && isNaN(row[field])) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Name'),
+ sortable: true,
+ selector: 'name'
+ },
+ {
+ name: t('Description'),
+ sortable: true,
+ selector: 'description'
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.cuisines
+ : data &&
+ data.cuisines.filter(cuisine => {
+ return cuisine.name.toLowerCase().search(regex) > -1
+ })
+
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {/* Page content */}
+
+
+
+
+
+
+
+
+
+
+ {errorQuery ? (
+
+ `${t('Error')}! ${errorQuery.message}`
+
+ ) : null}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="name"
+ customStyles={customStyles}
+ />
+ )}
+ {
+ toggleModal(null)
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center'
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Cuisines)
diff --git a/enatega-multivendor-admin/src/views/Dashboard.jsx b/enatega-multivendor-admin/src/views/Dashboard.jsx
new file mode 100644
index 0000000..e7b21c6
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Dashboard.jsx
@@ -0,0 +1,419 @@
+import React, { useState } from 'react'
+// node.js library that concatenates classes (strings)
+// react plugin used to create charts
+import { Line } from 'react-chartjs-2'
+import stats from '../assets/img/stats.png'
+import RiderStat from '../assets/img/RiderStat.png'
+import {
+ Chart as ChartJS,
+ CategoryScale,
+ LinearScale,
+ PointElement,
+ LineElement,
+ Title,
+ Tooltip,
+ Legend
+} from 'chart.js'
+
+import {
+ Box,
+ Typography,
+ Input,
+ Button,
+ Container,
+ Grid,
+ useTheme
+} from '@mui/material'
+import Header from '../components/Headers/Header'
+import { useQuery, gql } from '@apollo/client'
+import {
+ getDashboardTotal,
+ getDashboardSales,
+ getDashboardOrders,
+ getOrdersByDateRange
+} from '../apollo'
+
+import useStyles from '../components/Option/styles'
+import useGlobalStyles from '../utils/globalStyles'
+import { withTranslation } from 'react-i18next'
+
+ChartJS.register(
+ CategoryScale,
+ LinearScale,
+ PointElement,
+ LineElement,
+ Title,
+ Tooltip,
+ Legend
+)
+
+const GET_DASHBOARD_TOTAL = gql`
+ ${getDashboardTotal}
+`
+const GET_DASHBOARD_SALES = gql`
+ ${getDashboardSales}
+`
+const GET_DASHBOARD_ORDERS = gql`
+ ${getDashboardOrders}
+`
+const GET_ORDERS = gql`
+ ${getOrdersByDateRange}
+`
+
+const Dashboard = props => {
+ const { t } = props
+ const theme = useTheme()
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const dataLine = {
+ datasets: {
+ label: t('SalesAmount'),
+ // label: 'Sales Amount',
+ backgroundColor: theme.palette.secondary.darkest,
+ borderColor: theme.palette.secondary.darkest
+ }
+ }
+ const dataBar = {
+ datasets: {
+ label: t('OrderCount'),
+ // label: 'Order count',
+ backgroundColor: theme.palette.warning.dark,
+ borderColor: theme.palette.warning.dark
+ }
+ }
+
+ const intializeStartDate = () => {
+ var d = new Date()
+ d.setDate(d.getDate() - 7)
+ return d.toISOString().substr(0, 10)
+ }
+ const [stateData, setStateData] = useState({
+ startingDate: intializeStartDate(), // new Date().toISOString().substr(0,10),
+ endingDate: new Date().toISOString().substr(0, 10)
+ })
+
+ const {
+ data: dataTotal,
+ error: errorTotal,
+ loading: loadingTotal
+ } = useQuery(GET_DASHBOARD_TOTAL, {
+ variables: {
+ startingDate: stateData.startingDate.toString(),
+ endingDate: stateData.endingDate.toString(),
+ restaurant: restaurantId
+ }
+ })
+ const {
+ data: dataSales,
+ error: errorSales,
+ loading: loadingSales
+ } = useQuery(GET_DASHBOARD_SALES, {
+ variables: {
+ startingDate: stateData.startingDate.toString(),
+ endingDate: stateData.endingDate.toString(),
+ restaurant: restaurantId
+ }
+ })
+ const { data: dataOrders, loading: loadingOrders } = useQuery(
+ GET_DASHBOARD_ORDERS,
+ {
+ variables: {
+ startingDate: stateData.startingDate.toString(),
+ endingDate: stateData.endingDate.toString(),
+ restaurant: restaurantId
+ }
+ }
+ )
+
+ const { data, loading: loadingQuery } = useQuery(GET_ORDERS, {
+ variables: {
+ startingDate: stateData.startingDate.toString(),
+ endingDate: stateData.endingDate.toString(),
+ restaurant: restaurantId
+ }
+ })
+ console.log('getOrdersByDateRange', data)
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+
+ {errorTotal ? {`${Error} + ${errorTotal.message}`} : null}
+
+
+
+
+ {t('GraphFilter')}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {errorSales ? null : null}
+ d.day),
+ datasets: [
+ {
+ ...dataLine.datasets,
+ data: loadingSales
+ ? []
+ : dataSales &&
+ dataSales.getDashboardSales.orders.map(d => d.amount),
+ lineTension: 0.8
+ },
+ {
+ ...dataBar.datasets,
+ data: loadingOrders
+ ? []
+ : dataOrders &&
+ dataOrders.getDashboardOrders.orders.map(d => d.count)
+ }
+ ]
+ }}
+ options={{
+ maintainAspectRatio: false,
+ legend: {
+ labels: {
+ display: false,
+ fontColor: theme.palette.common.white,
+ fontSize: 10
+ }
+ },
+ scales: {
+ yAxes: {
+ grid: {
+ color: theme.palette.common.white
+ },
+ ticks: {
+ color: theme.palette.secondary.main,
+ fontSize: 12
+ }
+ },
+ xAxes: {
+ grid: {
+ color: theme.palette.common.white
+ },
+ ticks: {
+ color: theme.palette.secondary.main,
+ fontSize: 12
+ }
+ }
+ }
+ }}
+ />
+
+
+
+
+
+
+ {t('TotalOrders')}
+
+
+ {loadingTotal
+ ? '...'
+ : dataTotal && dataTotal.getDashboardTotal.totalOrders}
+
+
+
+
+
+
+ COD Orders
+
+
+
+ {loadingQuery
+ ? '...'
+ : data && data.getOrdersByDateRange.countCashOnDeliveryOrders}
+
+
+
+
+
+ {t('TotalSales')}
+
+
+ {loadingTotal
+ ? '...'
+ : dataTotal && dataTotal.getDashboardTotal.totalSales}
+
+
+
+
+
+ COD Sales
+
+
+ {loadingQuery
+ ? '...'
+ : data && data.getOrdersByDateRange.totalAmountCashOnDelivery}
+
+
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Dashboard)
diff --git a/enatega-multivendor-admin/src/views/DeliveryBoundsAndLocation.jsx b/enatega-multivendor-admin/src/views/DeliveryBoundsAndLocation.jsx
new file mode 100644
index 0000000..8aca401
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/DeliveryBoundsAndLocation.jsx
@@ -0,0 +1,332 @@
+import React, { useCallback, useRef, useState } from 'react'
+import { GoogleMap, Marker, Polygon } from '@react-google-maps/api'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import Header from '../components/Headers/Header'
+import { transformPolygon, transformPath } from '../utils/coordinates'
+import {
+ updateDeliveryBoundsAndLocation,
+ getRestaurantProfile
+} from '../apollo'
+import useGlobalStyles from '../utils/globalStyles'
+import useStyles from '../components/styles'
+import CustomLoader from '../components/Loader/CustomLoader'
+import {
+ Container,
+ Box,
+ Button,
+ Typography,
+ Alert,
+ useTheme
+} from '@mui/material'
+import { useTranslation, withTranslation } from 'react-i18next'
+
+const UPDATE_DELIVERY_BOUNDS_AND_LOCATION = gql`
+ ${updateDeliveryBoundsAndLocation}
+`
+const GET_RESTAURANT_PROFILE = gql`
+ ${getRestaurantProfile}
+`
+
+function DeliveryBoundsAndLocation() {
+ const { t } = useTranslation()
+ const theme = useTheme()
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const [drawBoundsOrMarker, setDrawBoundsOrMarker] = useState('marker') // polygon
+ const [successMessage, setSuccessMessage] = useState('')
+ const [errorMessage, setErrorMessage] = useState('')
+
+ const [center, setCenter] = useState({ lat: 33.684422, lng: 73.047882 })
+ const [marker, setMarker] = useState({ lat: 33.684422, lng: 73.047882 })
+ const [path, setPath] = useState([
+ {
+ lat: 33.6981335731709,
+ lng: 73.036895671875
+ },
+ {
+ lat: 33.684779099960515,
+ lng: 73.04650870898438
+ },
+ {
+ lat: 33.693206228391965,
+ lng: 73.06461898425293
+ },
+ {
+ lat: 33.706880699271096,
+ lng: 73.05410472491455
+ }
+ ])
+ const polygonRef = useRef()
+ const listenersRef = useRef([])
+ const { error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_RESTAURANT_PROFILE,
+ {
+ variables: { id: restaurantId },
+ fetchPolicy: 'network-only',
+ onCompleted,
+ onError
+ }
+ )
+ const [mutate, { loading }] = useMutation(
+ UPDATE_DELIVERY_BOUNDS_AND_LOCATION,
+ {
+ update: updateCache,
+ onError,
+ onCompleted
+ }
+ )
+ // Call setPath with new edited path
+ const onEdit = useCallback(() => {
+ if (polygonRef.current) {
+ const nextPath = polygonRef.current
+ .getPath()
+ .getArray()
+ .map(latLng => {
+ return { lat: latLng.lat(), lng: latLng.lng() }
+ })
+ setPath(nextPath)
+ }
+ }, [setPath])
+
+ const onLoadPolygon = useCallback(
+ polygon => {
+ polygonRef.current = polygon
+ const path = polygon.getPath()
+ listenersRef.current.push(
+ path.addListener('set_at', onEdit),
+ path.addListener('insert_at', onEdit),
+ path.addListener('remove_at', onEdit)
+ )
+ },
+ [onEdit]
+ )
+
+ const onUnmount = useCallback(() => {
+ listenersRef.current.forEach(lis => lis.remove())
+ polygonRef.current = null
+ }, [])
+
+ const onClick = e => {
+ if (drawBoundsOrMarker === 'marker') {
+ setMarker({ lat: e.latLng.lat(), lng: e.latLng.lng() })
+ } else {
+ setPath([...path, { lat: e.latLng.lat(), lng: e.latLng.lng() }])
+ }
+ }
+
+ const removePolygon = () => {
+ setPath([])
+ }
+ const removeMarker = () => {
+ setMarker(null)
+ }
+ const toggleDrawingMode = mode => {
+ setDrawBoundsOrMarker(mode)
+ }
+
+ function updateCache(cache, { data: { result } }) {
+ const { restaurant } = cache.readQuery({
+ query: GET_RESTAURANT_PROFILE,
+ variables: { id: restaurantId }
+ })
+ cache.writeQuery({
+ query: GET_RESTAURANT_PROFILE,
+ variables: { id: restaurantId },
+ data: {
+ restaurant: {
+ ...restaurant,
+ ...result
+ }
+ }
+ })
+ }
+
+ function onCompleted({ restaurant }) {
+ if (restaurant) {
+ setCenter({
+ lat: +restaurant.location.coordinates[1],
+ lng: +restaurant.location.coordinates[0]
+ })
+ setMarker({
+ lat: +restaurant.location.coordinates[1],
+ lng: +restaurant.location.coordinates[0]
+ })
+ setPath(
+ restaurant.deliveryBounds
+ ? transformPolygon(restaurant.deliveryBounds.coordinates[0])
+ : path
+ )
+ }
+ }
+
+ function onError({ networkError, graphqlErrors }) {
+ setErrorMessage(t('UpdatingLocationError'))
+ setTimeout(() => setErrorMessage(''), 5000) // Clear error message after 5 seconds
+ }
+
+ const validate = () => {
+ if (!marker) {
+ setErrorMessage(t('LocationMarkerRequired'))
+ setTimeout(() => setErrorMessage(''), 5000) // Clear success message after 5 seconds
+ return false
+ }
+ if (path.length < 3) {
+ setErrorMessage(t('DeliveryAreaRequired'))
+ setTimeout(() => setErrorMessage(''), 5000) // Clear success message after 5 seconds
+ return false
+ }
+ setSuccessMessage(t('LocationUpdatedSuccessfully'))
+ setTimeout(() => setSuccessMessage(''), 5000) // Clear success message after 5 seconds
+ setErrorMessage('')
+ return true
+ }
+
+ const onDragEnd = mapMouseEvent => {
+ setMarker({
+ lat: mapMouseEvent.latLng.lat(),
+ lng: mapMouseEvent.latLng.lng()
+ })
+ }
+ const globalClasses = useGlobalStyles()
+ const classes = useStyles()
+
+ return (
+ <>
+
+
+
+
+
+
+ {t('SetLocation')}
+
+
+
+ {loadingQuery && }
+ {errorQuery && {errorQuery.message}
}
+
+
+ {
+
+ }
+ {marker && (
+
+ )}
+
+
+
+ toggleDrawingMode('polygon')}>
+ {t('DrawDeliveryBounds')}
+
+ toggleDrawingMode('marker')}>
+ {t('SetRestaurantLocation')}
+
+
+
+
+ {t('RemoveDeliveryBounds')}
+
+
+ {t('RemoveRestaurantLocation')}
+
+
+
+ {
+ const result = validate()
+ if (result) {
+ const location = {
+ latitude: marker.lat,
+ longitude: marker.lng
+ }
+ const bounds = transformPath(path)
+ mutate({ variables: { id: restaurantId, location, bounds } })
+ }
+ }}>
+ {t('Save')}
+
+
+ {successMessage && (
+
+ {successMessage}
+
+ )}
+
+ {errorMessage && (
+
+ {errorMessage}
+
+ )}
+
+
+ >
+ )
+}
+
+export default withTranslation()(DeliveryBoundsAndLocation)
diff --git a/enatega-multivendor-admin/src/views/Dispatch.jsx b/enatega-multivendor-admin/src/views/Dispatch.jsx
new file mode 100644
index 0000000..5bcb37e
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Dispatch.jsx
@@ -0,0 +1,339 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useQuery, useMutation, useSubscription, gql } from '@apollo/client'
+import DataTable from 'react-data-table-component'
+import {
+ getActiveOrders,
+ getRidersByZone,
+ subscriptionOrder,
+ updateStatus,
+ assignRider
+} from '../apollo'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { transformToNewline } from '../utils/stringManipulations'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import { customStyles } from '../utils/tableCustomStyles'
+import { Container, MenuItem, Select, Box, useTheme } from '@mui/material'
+import { ReactComponent as DispatchIcon } from '../assets/svg/svg/Dispatch.svg'
+import TableHeader from '../components/TableHeader'
+import { NotificationContainer, NotificationManager } from 'react-notifications'
+import 'react-notifications/lib/notifications.css'
+
+const SUBSCRIPTION_ORDER = gql`
+ ${subscriptionOrder}
+`
+const UPDATE_STATUS = gql`
+ ${updateStatus}
+`
+const ASSIGN_RIDER = gql`
+ ${assignRider}
+`
+const GET_RIDERS_BY_ZONE = gql`
+ ${getRidersByZone}
+`
+const GET_ACTIVE_ORDERS = gql`
+ ${getActiveOrders}
+`
+
+const Orders = props => {
+ const theme = useTheme()
+ const { t } = props
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const [mutateUpdate] = useMutation(UPDATE_STATUS)
+ const globalClasses = useGlobalStyles()
+ const [mutateAssign] = useMutation(ASSIGN_RIDER)
+
+ const riderFunc = row => {
+ const { data: dataZone } = useQuery(GET_RIDERS_BY_ZONE, {
+ variables: { id: row.zone._id }
+ })
+ return (
+
+ {dataZone &&
+ dataZone.ridersByZone.map(rider => (
+ {
+ mutateAssign({
+ variables: {
+ id: row._id,
+ riderId: rider._id
+ },
+ onCompleted: data => {
+ console.error('Mutation success data:', data)
+ NotificationManager.success(
+ 'Successful',
+ 'Rider updated!',
+ 3000
+ )
+ },
+ onError: error => {
+ console.error('Mutation error:', error)
+ NotificationManager.error(
+ 'Error',
+ 'Failed to update rider!',
+ 3000
+ )
+ }
+ })
+ }}
+ key={rider._id}>
+ {rider.name}
+
+ ))}
+
+ )
+ }
+ const {
+ data: dataOrders,
+ error: errorOrders,
+ loading: loadingOrders,
+ refetch: refetchOrders
+ } = useQuery(GET_ACTIVE_ORDERS, { pollInterval: 3000 })
+
+ const statusFunc = row => {
+ const handleStatusSuccessNotification = status => {
+ NotificationManager.success(status, 'Status Updated!', 3000)
+ }
+
+ return (
+ <>
+
+ {row.orderStatus === 'PENDING' && (
+ {
+ mutateUpdate({
+ variables: {
+ id: row._id,
+ orderStatus: 'ACCEPTED'
+ },
+ onCompleted: data => {
+ handleStatusSuccessNotification('ACCEPTED')
+ refetchOrders()
+ },
+ onError: error => {
+ console.error('Mutation error:', error)
+ NotificationManager.error(
+ 'Error',
+ 'Failed to update status!',
+ 3000
+ )
+ }
+ })
+ }}>
+ {t('Accept')}
+
+ )}
+ {['PENDING', 'ACCEPTED', 'PICKED', 'ASSIGNED'].includes(
+ row.orderStatus
+ ) && (
+ {
+ mutateUpdate({
+ variables: {
+ id: row._id,
+ orderStatus: 'CANCELLED'
+ },
+ onCompleted: data => {
+ handleStatusSuccessNotification('REJECTED')
+ refetchOrders()
+ },
+ onError: error => {
+ console.error('Mutation error:', error)
+ NotificationManager.error(
+ 'Error',
+ 'Failed to update status!',
+ 3000
+ )
+ }
+ })
+ }}>
+ {t('Reject')}
+
+ )}
+ {['PENDING', 'ACCEPTED', 'PICKED', 'ASSIGNED'].includes(
+ row.orderStatus
+ ) && (
+ {
+ mutateUpdate({
+ variables: {
+ id: row._id,
+ orderStatus: 'DELIVERED'
+ },
+ onCompleted: data => {
+ handleStatusSuccessNotification('DELIVERED')
+ refetchOrders()
+ },
+ onError: error => {
+ console.error('Mutation error:', error)
+ NotificationManager.error(
+ 'Error',
+ 'Failed to update status!',
+ 3000
+ )
+ }
+ })
+ }}>
+ {t('Delivered')}
+
+ )}
+
+ >
+ )
+ }
+ const subscribeFunc = row => {
+ const { data: dataSubscription } = useSubscription(SUBSCRIPTION_ORDER, {
+ variables: { id: row._id }
+ })
+ console.log(dataSubscription)
+ return (
+
+ {row.orderId}
+
+ {transformToNewline(row.deliveryAddress.deliveryAddress, 3)}
+
+ )
+ }
+ const columns = [
+ {
+ name: t('OrderInformation'),
+ sortable: true,
+ selector: 'orderId',
+ cell: row => subscribeFunc(row)
+ },
+ {
+ name: t('RestaurantCol'),
+ selector: 'restaurant.name'
+ },
+ {
+ name: t('Payment'),
+ selector: 'paymentMethod'
+ },
+ {
+ name: t('Status'),
+ selector: 'orderStatus',
+ cell: row => (
+
+ {t(row.orderStatus)}
+
+ {!['CANCELLED', 'DELIVERED'].includes(row.orderStatus) &&
+ statusFunc(row)}
+
+ )
+ },
+ {
+ name: t('Rider'),
+ selector: 'rider',
+ cell: row => (
+
+ {row.rider ? row.rider.name : ''}
+
+ {!row.isPickedUp &&
+ !['CANCELLED', 'DELIVERED'].includes(row.orderStatus) &&
+ riderFunc(row)}
+
+ )
+ },
+ {
+ name: t('OrderTime'),
+ cell: row => (
+ <>{new Date(row.createdAt).toLocaleString().replace(/ /g, '\n')}>
+ )
+ }
+ ]
+
+ const conditionalRowStyles = [
+ {
+ when: row => ['DELIVERED', 'CANCELLED'].includes(row.orderStatus),
+ style: {
+ backgroundColor: theme.palette.success.dark
+ }
+ }
+ ]
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? dataOrders && dataOrders.getActiveOrders
+ : dataOrders &&
+ dataOrders.getActiveOrders.filter(order => {
+ return (
+ order.restaurant.name.toLowerCase().search(regex) > -1 ||
+ order.orderId.toLowerCase().search(regex) > -1 ||
+ order.deliveryAddress.deliveryAddress.toLowerCase().search(regex) >
+ -1 ||
+ order.orderId.toLowerCase().search(regex) > -1 ||
+ order.paymentMethod.toLowerCase().search(regex) > -1 ||
+ order.orderStatus.toLowerCase().search(regex) > -1 ||
+ (order.rider !== null
+ ? order.rider.name.toLowerCase().search(regex) > -1
+ : false)
+ )
+ })
+
+ return (
+ <>
+
+
+
+
+
+
+ {errorOrders ? (
+
+
+ `${'Error'}! ${errorOrders.message}`
+
+
+ ) : null}
+ {loadingOrders ? (
+
+ ) : (
+ refetchOrders()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ progressPending={loadingOrders}
+ pointerOnHover
+ progressComponent={ }
+ pagination
+ conditionalRowStyles={conditionalRowStyles}
+ customStyles={customStyles}
+ selectableRows
+ />
+ )}
+
+ >
+ )
+}
+export default withTranslation()(Orders)
diff --git a/enatega-multivendor-admin/src/views/DispatchRestaurant.jsx b/enatega-multivendor-admin/src/views/DispatchRestaurant.jsx
new file mode 100644
index 0000000..e584575
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/DispatchRestaurant.jsx
@@ -0,0 +1,234 @@
+/* eslint-disable react/display-name */
+import React, { useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { Container, MenuItem, Select, useTheme } from '@mui/material'
+import { useQuery, useMutation, useSubscription, gql } from '@apollo/client'
+import DataTable from 'react-data-table-component'
+import { getActiveOrders, subscriptionOrder, updateStatus } from '../apollo'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { transformToNewline } from '../utils/stringManipulations'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { useParams } from 'react-router-dom'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import TableHeader from '../components/TableHeader'
+
+const SUBSCRIPTION_ORDER = gql`
+ ${subscriptionOrder}
+`
+const UPDATE_STATUS = gql`
+ ${updateStatus}
+`
+const GET_ACTIVE_ORDERS = gql`
+ ${getActiveOrders}
+`
+
+const DispatchRestaurant = props => {
+ const theme = useTheme()
+ const { t } = props
+ const params = useParams()
+
+ const [restaurantId, seteRestaurantId] = useState(
+ localStorage.getItem('restaurantId')
+ )
+ useEffect(() => {
+ if (params.id) seteRestaurantId(params.id)
+ }, [])
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const [mutateUpdate] = useMutation(UPDATE_STATUS)
+ const globalClasses = useGlobalStyles()
+
+ const {
+ data: dataOrders,
+ error: errorOrders,
+ loading: loadingOrders,
+ refetch: refetchOrders
+ } = useQuery(GET_ACTIVE_ORDERS, {
+ variables: { restaurantId },
+ pollInterval: 3000,
+ skip: restaurantId === null
+ })
+
+ const statusFunc = row => {
+ return (
+ <>
+
+
+ {t('Rider')}
+
+ {row.orderStatus === 'PENDING' && (
+ {
+ mutateUpdate({
+ variables: {
+ id: row._id,
+ orderStatus: 'ACCEPTED'
+ }
+ })
+ }}>
+ {t('Accept')}
+
+ )}
+ {['PENDING', 'ACCEPTED', 'PICKED', 'ASSIGNED'].includes(
+ row.orderStatus
+ ) && (
+ {
+ mutateUpdate({
+ variables: {
+ id: row._id,
+ orderStatus: 'CANCELLED'
+ }
+ })
+ }}>
+ {t('Reject')}
+
+ )}
+ {['PENDING', 'ACCEPTED', 'PICKED', 'ASSIGNED'].includes(
+ row.orderStatus
+ ) && (
+ {
+ mutateUpdate({
+ variables: {
+ id: row._id,
+ orderStatus: 'DELIVERED'
+ }
+ })
+ }}>
+ {t('Delivered')}
+
+ )}
+
+ >
+ )
+ }
+
+ const subscribeFunc = row => {
+ const { data: dataSubscription } = useSubscription(SUBSCRIPTION_ORDER, {
+ variables: { id: row._id }
+ })
+ console.log(dataSubscription)
+ return (
+
+ {row.orderId}
+
+ {transformToNewline(row.deliveryAddress.deliveryAddress, 3)}
+
+ )
+ }
+ const columns = [
+ {
+ name: t('OrderInformation'),
+ sortable: true,
+ selector: 'orderId',
+ cell: row => subscribeFunc(row)
+ },
+ {
+ name: t('RestaurantCol'),
+ selector: 'restaurant.name'
+ },
+ {
+ name: t('Payment'),
+ selector: 'paymentMethod'
+ },
+ {
+ name: t('Status'),
+ selector: 'orderStatus',
+ cell: row => (
+
+ {row.orderStatus}
+
+ {!['CANCELLED', 'DELIVERED'].includes(row.orderStatus) &&
+ statusFunc(row)}
+
+ )
+ },
+ {
+ name: t('OrderTime'),
+ cell: row => (
+ <>{new Date(row.createdAt).toLocaleString().replace(/ /g, '\n')}>
+ )
+ }
+ ]
+
+ const conditionalRowStyles = [
+ {
+ when: row => ['DELIVERED', 'CANCELLED'].includes(row.orderStatus),
+ style: {
+ backgroundColor: theme.palette.success.dark
+ }
+ }
+ ]
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? dataOrders && dataOrders.getActiveOrders
+ : dataOrders &&
+ dataOrders.getActiveOrders.filter(order => {
+ return (
+ order.restaurant.name.toLowerCase().search(regex) > -1 ||
+ order.orderId.toLowerCase().search(regex) > -1 ||
+ order.deliveryAddress.deliveryAddress.toLowerCase().search(regex) >
+ -1 ||
+ order.orderId.toLowerCase().search(regex) > -1 ||
+ order.paymentMethod.toLowerCase().search(regex) > -1 ||
+ order.orderStatus.toLowerCase().search(regex) > -1 ||
+ (order.rider !== null
+ ? order.rider.name.toLowerCase().search(regex) > -1
+ : false)
+ )
+ })
+
+ return (
+ <>
+
+ {/* Page content */}
+
+ {errorOrders ? (
+
+ {`${t('Error')} ${errorOrders.message}`}
+
+ ) : null}
+ {loadingOrders ? (
+
+ ) : (
+ refetchOrders()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ progressPending={loadingOrders}
+ pointerOnHover
+ progressComponent={ }
+ pagination
+ conditionalRowStyles={conditionalRowStyles}
+ customStyles={customStyles}
+ selectableRows
+ />
+ )}
+
+ >
+ )
+}
+export default withTranslation()(DispatchRestaurant)
diff --git a/enatega-multivendor-admin/src/views/Food.jsx b/enatega-multivendor-admin/src/views/Food.jsx
new file mode 100644
index 0000000..e10cf0d
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Food.jsx
@@ -0,0 +1,295 @@
+import React, { useState } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+// core components
+import Header from '../components/Headers/Header'
+import { getRestaurantDetail, deleteFood } from '../apollo'
+import FoodComponent from '../components/Food/Food'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import { transformToNewline } from '../utils/stringManipulations'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_FOODS = gql`
+ ${getRestaurantDetail}
+`
+const DELETE_FOOD = gql`
+ ${deleteFood}
+`
+const Food = props => {
+ const { t } = props
+ const {PAID_VERSION} = ConfigurableValues()
+ const [editModal, setEditModal] = useState(false)
+ const [food, setFood] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const [isOpen, setIsOpen] = useState(false)
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const [mutate, { loading }] = useMutation(DELETE_FOOD, {
+ refetchQueries: [{ query: GET_FOODS, variables: { id: restaurantId } }]
+ })
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_FOODS,
+ {
+ variables: {
+ id: restaurantId
+ }
+ }
+ )
+ const toggleModal = food => {
+ setEditModal(!editModal)
+ setFood(food)
+ }
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+
+ const propExists = (obj, path) => {
+ return path.split('.').reduce((obj, prop) => {
+ return obj && obj[prop] ? obj[prop] : ''
+ }, obj)
+ }
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (field && isNaN(propExists(row, field))) {
+ return propExists(row, field).toLowerCase()
+ }
+
+ return row[field]
+ }
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Title'),
+ selector: 'title',
+ sortable: true
+ },
+ {
+ name: t('Description'),
+ sortable: true,
+ selector: 'description',
+ cell: row => <>{transformToNewline(row.description, 3)}>
+ },
+ {
+ name: t('Category'),
+ sortable: true,
+ selector: 'category.category',
+ cell: row => <>{row.category}>
+ },
+ {
+ name: t('Image'),
+ cell: row => (
+ <>
+
+ >
+ )
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+
+ const foodsList = categories => {
+ const list = []
+ categories &&
+ categories.forEach(category => {
+ if (category.foods && category.foods.length) {
+ return category.foods.map(item => {
+ list.push({
+ ...item,
+ category: category.title,
+ categoryId: category._id,
+ ...category,
+ _id: item._id,
+ title: item.title
+ })
+
+ return {
+ ...item,
+ category: category.title,
+ categoryId: category._id,
+ ...category,
+ _id: item._id,
+ title: item.title
+ }
+ })
+ }
+ })
+ return list
+ }
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? foodsList(data && data.restaurant.categories)
+ : foodsList(data && data.restaurant.categories).filter(food => {
+ return (
+ food.title.toLowerCase().search(regex) > -1 ||
+ food.description.toLowerCase().search(regex) > -1 ||
+ food.category.toLowerCase().search(regex) > -1
+ )
+ })
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+ {/* Page content */}
+ {isOpen && (
+
+ )}
+
+
+ {errorQuery && `Error! ${errorQuery.message}` }
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={data && data.restaurant ? filtered : {}}
+ pagination
+ progressPending={loading}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="title"
+ customStyles={customStyles}
+ selectableRows
+ paginationIconLastPage=""
+ paginationIconFirstPage=""
+ />
+ )}
+ {
+ toggleModal()
+ }}
+ style={{
+ marginLeft: '13%',
+ overflowY: 'auto'
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Food)
diff --git a/enatega-multivendor-admin/src/views/ForgotPassword.jsx b/enatega-multivendor-admin/src/views/ForgotPassword.jsx
new file mode 100644
index 0000000..0b354ea
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/ForgotPassword.jsx
@@ -0,0 +1,222 @@
+import React, { useRef, useState } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { resetPassword } from '../apollo'
+import { validateFunc } from '../constraints/constraints'
+import useStyles from '../components/Configuration/styles'
+import useGlobalStyles from '../utils/globalStyles'
+import { Box, Typography, Input, Alert, Button, Checkbox } from '@mui/material'
+import { withTranslation } from 'react-i18next'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+
+const RESET_PASSWORD = gql`
+ ${resetPassword}
+`
+const ResetPassword = props => {
+ const { t } = props
+ const formRef = useRef()
+ const [password, setPassword] = useState('')
+ const [confirmPassword, setConfirmPassword] = useState('')
+ const [confirmPasswordError, setConfirmPasswordError] = useState(null)
+ const [passwordError, setPasswordError] = useState(null)
+ const [error, setError] = useState(null)
+ const [success, setSuccess] = useState(null)
+ const [showPassword, setShowPassword] = useState(false)
+ const [showConfirmPassword, setShowConfirmPassword] = useState(false)
+
+ const onBlur = (event, field) => {
+ if (field === 'password') {
+ setPasswordError(!validateFunc({ password: password }, 'password'))
+ } else if (field === 'confirmPassword') {
+ setConfirmPasswordError(
+ !validateFunc(
+ { confirmPassword: confirmPassword, password: password },
+ 'confirmPassword'
+ )
+ )
+ }
+ }
+ const hideAlert = () => {
+ passwordError('')
+ confirmPasswordError('')
+ }
+ const validate = () => {
+ const confirmPasswordErrorDisplay = !validateFunc(
+ { password: password, confirmPassword: confirmPassword },
+ 'confirmPassword'
+ )
+ const passwordErrorDisplay = !validateFunc(
+ { password: password },
+ 'password'
+ )
+ setConfirmPasswordError(confirmPasswordErrorDisplay)
+ setPasswordError(passwordErrorDisplay)
+ return confirmPasswordErrorDisplay && passwordErrorDisplay
+ }
+ const onCompleted = data => {
+ setConfirmPasswordError(null)
+ setPasswordError(null)
+ setSuccess(t('PasswordUpdated'))
+ setTimeout(hideAlert, 5000)
+ }
+ const onError = error => {
+ setConfirmPasswordError(null)
+ setPasswordError(null)
+ setError(error.networkError.result.errors[0].message)
+ setTimeout(hideAlert, 5000)
+ }
+ const [mutate] = useMutation(RESET_PASSWORD, { onError, onCompleted })
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+
+
+
+
+
+ {t('ForgotPassword')}
+
+
+
+
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {error && (
+
+ {error}
+
+ )}
+
+
+
+
+ )
+}
+
+export default withTranslation()(ResetPassword)
diff --git a/enatega-multivendor-admin/src/views/Login.jsx b/enatega-multivendor-admin/src/views/Login.jsx
new file mode 100644
index 0000000..dea9e1f
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Login.jsx
@@ -0,0 +1,307 @@
+import React, { useState, useEffect, useRef } from 'react'
+import { withTranslation } from 'react-i18next'
+import {
+ Box,
+ Alert,
+ Typography,
+ Input,
+ Button,
+ Grid,
+ Link,
+ Checkbox,
+ FormGroup,
+ FormControlLabel
+} from '@mui/material'
+
+import { useMutation, gql } from '@apollo/client'
+import { ownerLogin } from '../apollo'
+import { validateFunc } from '../constraints/constraints'
+import useStyles from '../components/Configuration/styles'
+import useGlobalStyles from '../utils/globalStyles'
+import LoginBg from '../assets/img/loginBg.png'
+import LoginPageIcon from '../assets/img/LoginPageIcon.png'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+
+const LOGIN = gql`
+ ${ownerLogin}
+`
+const Login = props => {
+ const [showPassword, setShowPassword] = useState(false)
+ const [stateData, setStateData] = useState({
+ email: 'admin@gmail.com',
+ password: '123123',
+ emailError: null,
+ passwordError: null,
+ error: null,
+ type: null, /// 0 for vendor
+ redirectToReferrer: !!localStorage.getItem('user-enatega')
+ })
+ const formRef = useRef()
+ const { t } = props
+
+ const [isLogged, setIsLogged] = useState(false)
+ const onBlur = (event, field) => {
+ setStateData({
+ ...stateData,
+ [field + 'Error']: !validateFunc({ [field]: stateData[field] }, field)
+ })
+ }
+ const validate = () => {
+ const emailError = !validateFunc({ email: stateData.email }, 'email')
+ const passwordError = !validateFunc(
+ { password: stateData.password },
+ 'password'
+ )
+ setStateData({ ...stateData, emailError, passwordError })
+ return emailError && passwordError
+ }
+ const { redirectToReferrer, type } = stateData
+
+ useEffect(() => {
+ if (isLogged) {
+ if (redirectToReferrer && type === 0) {
+ props.history.replace('/restaurant/list')
+ }
+ if (redirectToReferrer && type === 1) {
+ props.history.replace('/super_admin/vendors')
+ }
+ }
+ }, [isLogged])
+
+ const onCompleted = data => {
+ localStorage.setItem('user-enatega', JSON.stringify(data.ownerLogin))
+ const userType = data.ownerLogin.userType
+ if (userType === 'VENDOR') {
+ setStateData({
+ ...stateData,
+ redirectToReferrer: true,
+ type: 0,
+ emailError: null,
+ passwordError: null
+ })
+ } else {
+ setStateData({
+ ...stateData,
+ redirectToReferrer: true,
+ type: 1,
+ emailError: null,
+ passwordError: null
+ })
+ }
+ setIsLogged(true)
+ setTimeout(hideAlert, 5000)
+ }
+ const hideAlert = () => {
+ setStateData({
+ ...stateData,
+ emailError: null,
+ passwordError: null
+ })
+ }
+ const onError = error => {
+ if (error.graphQLErrors.length) {
+ setStateData({
+ ...stateData,
+ error: error.graphQLErrors[0].message
+ })
+ }
+ if (error.networkError) {
+ setStateData({
+ ...stateData,
+ error: error.message
+ })
+ }
+ setIsLogged(false)
+ setTimeout(hideAlert, 5000)
+ }
+ const [mutate] = useMutation(LOGIN, { onError, onCompleted })
+
+ const loginFunc = async() => {
+ if (validate()) {
+ mutate({ variables: { ...stateData } })
+ }
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+
+
+
+
+
+ {t('enterYourDetailsBelow')}
+
+
+
+
+
+ {t('LogintoEnatega')}
+
+
+
+
+
+
+
+ {stateData.error && (
+
+ {stateData.error}
+
+ )}
+
+
+
+
+
+ >
+ )
+}
+export default withTranslation()(Login)
diff --git a/enatega-multivendor-admin/src/views/Notifications.jsx b/enatega-multivendor-admin/src/views/Notifications.jsx
new file mode 100644
index 0000000..285c8df
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Notifications.jsx
@@ -0,0 +1,202 @@
+import React, { useState, useEffect } from 'react'
+import { useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import { sendNotificationUser } from '../apollo'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { validateFunc } from '../constraints/constraints'
+import {
+ Container,
+ Box,
+ Typography,
+ Input,
+ Button,
+ Alert,
+ Grid
+} from '@mui/material'
+import useStyles from '../components/Tipping/styles'
+import useGlobalStyles from '../utils/globalStyles'
+import { ReactComponent as NotificationIcon } from '../assets/svg/svg/Notification.svg'
+
+const NOTIFICATION_USER = gql`
+ ${sendNotificationUser}
+`
+
+const Notifications = props => {
+ const { t } = props
+ const [notificationTitle, setNotificationTitle] = useState('')
+ const [notificationBody, setNotificationBody] = useState('')
+ const [bodyError, setBodyError] = useState(null)
+ const [titleError, setTitleError] = useState(null)
+ const [mainError, setError] = useState('')
+ const [success, setSuccess] = useState('')
+
+ useEffect(() => {
+ // Use a timer to clear the success message after 5 seconds
+ if (success) {
+ const timer = setTimeout(() => {
+ setSuccess('')
+ }, 5000)
+
+ return () => clearTimeout(timer)
+ }
+ }, [success])
+
+ const [mutate, { loading }] = useMutation(NOTIFICATION_USER, {
+ onCompleted: () => {
+ setSuccess(t('NotificationSentAuccessfully')) // Set success message
+ setNotificationTitle('') // Clear the title field
+ setNotificationBody('') // Clear the body field
+ },
+ onError: error => {
+ setError(t('ActionFailedTryAgain')) // Set error message
+ }
+ })
+
+ const onSubmitValidation = () => {
+ const nTitleError = !validateFunc(
+ { notificationTitle },
+ 'notificationTitle'
+ )
+ const nBodyError = !validateFunc({ notificationBody }, 'notificationBody')
+ setTitleError(nTitleError)
+ setBodyError(nBodyError)
+ return nTitleError && nBodyError
+ }
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+ {/* Page content */}
+
+
+
+
+
+
+
+ {t('Notifications')}
+
+
+
+
+
+ {loading ? (
+
+ ) : (
+
+ )}
+
+ {success && (
+
+ {success}
+
+ )}
+ {mainError && (
+
+ {mainError}
+
+ )}
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Notifications)
diff --git a/enatega-multivendor-admin/src/views/Options.jsx b/enatega-multivendor-admin/src/views/Options.jsx
new file mode 100644
index 0000000..7f86f28
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Options.jsx
@@ -0,0 +1,251 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import Header from '../components/Headers/Header'
+import OptionComponent from '../components/Option/Option'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+
+import { withTranslation } from 'react-i18next'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { getRestaurantDetail, deleteOption } from '../apollo'
+import SearchBar from '../components/TableHeader/SearchBar'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_OPTIONS = gql`
+ ${getRestaurantDetail}
+`
+const DELETE_OPTION = gql`
+ ${deleteOption}
+`
+
+const Option = props => {
+ const { t } = props
+ const {PAID_VERSION} = ConfigurableValues()
+ const [editModal, setEditModal] = useState(false)
+ const [option, setOption] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const [isOpen, setIsOpen] = useState(false)
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+
+ const toggleModal = option => {
+ setEditModal(!editModal)
+ setOption(option)
+ }
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_OPTIONS,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ const [mutate, { loading }] = useMutation(DELETE_OPTION, {
+ refetchQueries: [{ query: GET_OPTIONS, variables: { id: restaurantId } }]
+ })
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field] && isNaN(row[field])) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const handleSort = (column, sortDirection) =>
+ console.log(column.selector, sortDirection)
+
+ const columns = [
+ {
+ name: t('Title'),
+ sortable: true,
+ selector: 'title'
+ },
+ {
+ name: t('Description'),
+ sortable: true,
+ selector: 'description'
+ },
+ {
+ name: t('Price'),
+ sortable: true,
+ selector: 'price'
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.restaurant.options
+ : data &&
+ data.restaurant.options.filter(option => {
+ return (
+ option.title.toLowerCase().search(regex) > -1 ||
+ option.description.toLowerCase().search(regex) > -1
+ )
+ })
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {isOpen && (
+
+ )}
+ {/* Page content */}
+
+
+ {errorQuery && (
+
+ {`${'Error'} ${errorQuery.message}`}
+
+ )}
+ {loading ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={data && data.restaurant ? filtered : {}}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ onSort={handleSort}
+ sortFunction={customSort}
+ defaultSortField="title"
+ customStyles={customStyles}
+ selectableRows
+ paginationIconLastPage=""
+ paginationIconFirstPage=""
+ />
+ )}
+ {
+ toggleModal()
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center'
+ }}>
+
+
+
+ >
+ )
+}
+export default withTranslation()(Option)
diff --git a/enatega-multivendor-admin/src/views/Orders.jsx b/enatega-multivendor-admin/src/views/Orders.jsx
new file mode 100644
index 0000000..e8e0480
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Orders.jsx
@@ -0,0 +1,79 @@
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import OrderComponent from '../components/Order/Order'
+import OrdersData from '../components/Order/OrdersData'
+import Header from '../components/Headers/Header'
+import { useQuery, gql } from '@apollo/client'
+import { getOrdersByRestaurant } from '../apollo'
+import useGlobalStyles from '../utils/globalStyles'
+import { Container, Modal } from '@mui/material'
+
+const GET_ORDERS = gql`
+ ${getOrdersByRestaurant}
+`
+
+const Orders = () => {
+ const [detailsModal, setDetailModal] = useState(false)
+ const [order, setOrder] = useState(null)
+ const [page, setPage] = useState(1)
+ const [rowsPerPage, setRowsPerPage] = useState(10)
+ const [search] = useState('')
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const {
+ data,
+ error: errorQuery,
+ loading: loadingQuery,
+ subscribeToMore
+ } = useQuery(GET_ORDERS, {
+ variables: {
+ restaurant: restaurantId,
+ page: page - 1,
+ rows: rowsPerPage,
+ search
+ }
+ })
+ const toggleModal = order => {
+ setOrder(order)
+ setDetailModal(!detailsModal)
+ }
+
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {/* Page content */}
+
+
+ {errorQuery && (
+
+ {`${'Error'} ${errorQuery.message}`}
+
+ )}
+
+ {
+ toggleModal(null)
+ }}>
+
+
+
+ >
+ )
+}
+export default withTranslation()(Orders)
diff --git a/enatega-multivendor-admin/src/views/Payment.jsx b/enatega-multivendor-admin/src/views/Payment.jsx
new file mode 100644
index 0000000..74da6cf
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Payment.jsx
@@ -0,0 +1,79 @@
+import React from 'react'
+import { useQuery, gql } from '@apollo/client'
+import { withTranslation, useTranslation } from 'react-i18next'
+import { Container, Box, Typography, Button } from '@mui/material'
+import Header from '../components/Headers/Header'
+import ConfigurableValues from '../config/constants'
+import { getRestaurantProfile } from '../apollo'
+import useGlobalStyles from '../utils/globalStyles'
+import useStyles from '../components/styles'
+const RESTAURANT = gql`
+ ${getRestaurantProfile}
+`
+const Payment = () => {
+ const { SERVER_URL } = ConfigurableValues()
+
+ const { t } = useTranslation()
+
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ RESTAURANT,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ const submitStripeDetails = () => {
+ fetch(SERVER_URL + '/stripe/account', {
+ method: 'POST',
+ body: JSON.stringify({ restaurantId }),
+ headers: {
+ 'content-type': 'application/json'
+ }
+ })
+ .then(response => response.json())
+ .then(data => {
+ window.location = data.url
+ })
+ .catch(error => {
+ console.log('error', error)
+ })
+ }
+ const globalClasses = useGlobalStyles()
+ const classes = useStyles()
+ return (
+ <>
+
+
+
+
+
+
+ {t('Delivery Rate')}
+
+
+
+
+
+ {loadingQuery && {t('LoadingDots')} }
+ {errorQuery && {errorQuery.message} }
+ {data && data.restaurant.stripeDetailsSubmitted && (
+ {t('StripeDetailsAttached')}
+ )}
+
+
+ {data && data.restaurant.stripeDetailsSubmitted
+ ? t('EditStripeDetails')
+ : t('SubmitStripeDetails')}
+
+
+
+
+
+ >
+ )
+}
+export default withTranslation()(Payment)
diff --git a/enatega-multivendor-admin/src/views/PrivateRoute.jsx b/enatega-multivendor-admin/src/views/PrivateRoute.jsx
new file mode 100644
index 0000000..95d76c0
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/PrivateRoute.jsx
@@ -0,0 +1,20 @@
+import React from 'react'
+import { Redirect, Route } from 'react-router-dom'
+
+export const PrivateRoute = ({ component: Component, ...rest }) => (
+
+ localStorage.getItem('user-enatega') ? (
+
+ ) : (
+
+ )
+ }
+ />
+)
diff --git a/enatega-multivendor-admin/src/views/Rating.jsx b/enatega-multivendor-admin/src/views/Rating.jsx
new file mode 100644
index 0000000..2c045f7
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Rating.jsx
@@ -0,0 +1,138 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { Container } from '@mui/material'
+import Header from '../components/Headers/Header'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { useQuery, gql } from '@apollo/client'
+import { reviews } from '../apollo'
+import useGlobalStyles from '../utils/globalStyles'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { customStyles } from '../utils/tableCustomStyles'
+import TableHeader from '../components/TableHeader'
+
+const REVIEWS = gql`
+ ${reviews}
+`
+
+const Ratings = props => {
+ const { t } = props
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(REVIEWS, {
+ variables: { restaurant: restaurantId }
+ })
+
+ const columns = [
+ {
+ name: t('Name'),
+ sortable: true,
+ selector: 'user.name',
+ cell: row => <>{row.order.user.name}>
+ },
+ {
+ name: t('Email'),
+ sortable: true,
+ selector: 'user.email',
+ cell: row => <>{row.order.user.email}>
+ },
+ {
+ name: t('Items'),
+ cell: row => (
+ <>
+ {row.order.items.map(({ title }) => {
+ return title + '\t'
+ })}
+ >
+ )
+ },
+ {
+ name: t('Review'),
+ sortable: true,
+ selector: 'description',
+ cell: row => <>{row.description}>
+ },
+ {
+ name: t('Ratings'),
+ sortable: true,
+ selector: 'rating',
+ cell: row => <>{row.rating}>
+ }
+ ]
+ const propExists = (obj, path) => {
+ return path.split('.').reduce((obj, prop) => {
+ return obj && obj[prop] ? obj[prop] : ''
+ }, obj)
+ }
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (field && isNaN(propExists(row, field))) {
+ return propExists(row, field).toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const handleSort = (column, sortDirection) =>
+ console.log(column.selector, sortDirection, column)
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.reviews
+ : data &&
+ data.reviews.filter(review => {
+ return (
+ review.user.name.toLowerCase().search(regex) > -1 ||
+ review.user.email.toLowerCase().search(regex) > -1
+ )
+ })
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {/* Page content */}
+
+ {errorQuery && (
+
+ {`${t('Error')} ${errorQuery.message}`}
+
+ )}
+ {loadingQuery ? (
+
+ ) : (
+ }
+ subHeader={true}
+ subHeaderComponent={
+
+ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ onSort={handleSort}
+ sortFunction={customSort}
+ defaultSortField="order.user.name"
+ customStyles={customStyles}
+ selectableRows
+ paginationIconLastPage=""
+ paginationIconFirstPage=""
+ />
+ )}
+
+ >
+ )
+}
+
+export default withTranslation()(Ratings)
diff --git a/enatega-multivendor-admin/src/views/Restaurant.jsx b/enatega-multivendor-admin/src/views/Restaurant.jsx
new file mode 100644
index 0000000..7e78952
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Restaurant.jsx
@@ -0,0 +1,106 @@
+import React, { useState } from 'react'
+import RestaurantCard from '../components/Restaurant/Card'
+import { Link } from 'react-router-dom'
+import { useQuery, gql } from '@apollo/client'
+import { restaurantByOwner } from '../apollo'
+import CreateRestaurant from '../components/Restaurant/CreateRestaurant'
+import { Box, Button, Modal, Container, Grid, useTheme } from '@mui/material'
+import AddIcon from '@mui/icons-material/Add'
+import useGlobalStyles from '../utils/globalStyles'
+import { withTranslation } from 'react-i18next'
+
+const RESTAURANT_BY_OWNER = gql`
+ ${restaurantByOwner}
+`
+const Restaurant = props => {
+ const theme = useTheme()
+ const { t } = props
+ const [owner, setOwner] = useState()
+ const [isModalVisible, setIsModalVisible] = useState(false)
+ const vendorId = localStorage.getItem('vendorId')
+ const toggleModal = () => {
+ setIsModalVisible(prevState => !prevState)
+ }
+
+ const globalClasses = useGlobalStyles()
+
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ RESTAURANT_BY_OWNER,
+ {
+ variables: { id: vendorId }
+ }
+ )
+ const links =
+ data &&
+ data.restaurantByOwner.restaurants.map((rest, index) => {
+ return (
+
+ {
+ localStorage.setItem('restaurantId', rest._id)
+ localStorage.setItem('restaurantImage', rest.image)
+ localStorage.setItem('restaurantName', rest.name)
+ }}
+ to={`/admin/dashboard/${rest.slug}`}>
+
+
+
+ )
+ })
+ return (
+ <>
+
+ {/* Page content */}
+
+
+ {loadingQuery ? {t('Loading')}
: null}
+ {errorQuery ? `${errorQuery.message}` : null}
+ {!loadingQuery && !errorQuery && (
+
+ {links}
+
+ )}
+
+
+ {
+ setOwner(data.restaurantByOwner._id)
+ toggleModal()
+ }}
+ style={{
+ backgroundColor: theme.palette.common.black,
+ color: theme.palette.warning.dark,
+ borderRadius: 10
+ }}
+ startIcon={ }>
+ {t('AddNewRestaurant')}
+
+
+
+
+
+
+ >
+ )
+}
+export default withTranslation()(Restaurant)
diff --git a/enatega-multivendor-admin/src/views/RestaurantList.jsx b/enatega-multivendor-admin/src/views/RestaurantList.jsx
new file mode 100644
index 0000000..ec8e080
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/RestaurantList.jsx
@@ -0,0 +1,208 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import CustomLoader from '../components/Loader/CustomLoader'
+// core components
+import Header from '../components/Headers/Header'
+import { restaurants, deleteRestaurant } from '../apollo'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import Loader from 'react-loader-spinner'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { Container, Button, Box, useTheme } from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import { ReactComponent as RestIcon } from '../assets/svg/svg/Restaurant.svg'
+import TableHeader from '../components/TableHeader'
+
+const GET_RESTAURANTS = gql`
+ ${restaurants}
+`
+const DELETE_RESTAURANT = gql`
+ ${deleteRestaurant}
+`
+
+const Restaurants = props => {
+ const { t } = props
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const globalClasses = useGlobalStyles()
+
+ const [mutate, { loading }] = useMutation(DELETE_RESTAURANT)
+ const {
+ data,
+ loading: loadingQuery,
+ refetch,
+ networkStatus
+ } = useQuery(GET_RESTAURANTS, { fetchPolicy: 'network-only' })
+ const onClickRefetch = cb => {
+ cb()
+ }
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+ return row[field]
+ }
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Image'),
+ cell: row => (
+ <>
+ {!!row.image && (
+ {
+ localStorage.setItem('restaurant_id', row._id)
+ props.history.push('/admin/dashboard')
+ }}
+ />
+ )}
+ {!row.image && 'No Image'}
+ >
+ ),
+ selector: 'image'
+ },
+ {
+ name: t('Name'),
+ // sortable: true,
+ selector: 'name',
+ style: {
+ cursor: 'pointer'
+ }
+ },
+ {
+ name: t('Address'),
+ selector: 'address',
+ style: {
+ cursor: 'pointer'
+ }
+ },
+ {
+ name: t('OrderPrefix'),
+ selector: 'orderPrefix',
+ style: {
+ cursor: 'pointer'
+ }
+ },
+ {
+ name: t('Vendor'),
+ selector: 'owner',
+ style: {
+ cursor: 'pointer'
+ },
+ cell: row => <>{row.owner ? row.owner.email : null}>
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+ const theme = useTheme()
+ const actionButtons = row => {
+ return (
+ <>
+ {loading ? (
+
+ ) : null}
+ {
+ e.preventDefault()
+ mutate({ variables: { id: row._id } })
+ }}>
+ {row.isActive ? t('Disable') : t('Enable')}
+
+ >
+ )
+ }
+
+ const conditionalRowStyles = [
+ {
+ when: row => !row.isActive,
+ style: {
+ backgroundColor: theme.palette.background.primary
+ }
+ }
+ ]
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.restaurants
+ : data &&
+ data.restaurants.filter(restaurant => {
+ return (
+ restaurant.name.toLowerCase().search(regex) > -1 ||
+ restaurant.orderPrefix.toLowerCase().search(regex) > -1 ||
+ restaurant.owner.email.toLowerCase().search(regex) > -1 ||
+ restaurant.address.toLowerCase().search(regex) > -1
+ )
+ })
+
+ return (
+ <>
+
+
+
+
+
+ {loadingQuery ? (
+
+ ) : (
+ onClickRefetch(refetch)}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loading || networkStatus === 4}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="name"
+ onRowClicked={row => {
+ localStorage.setItem('restaurantId', row._id)
+ localStorage.setItem('restaurantImage', row.image)
+ localStorage.setItem('restaurantName', row.name)
+ props.history.push(`/admin/dashboard/${row.slug}`)
+ }}
+ conditionalRowStyles={conditionalRowStyles}
+ selectableRows
+ />
+ )}
+
+ >
+ )
+}
+export default withTranslation()(Restaurants)
diff --git a/enatega-multivendor-admin/src/views/Riders.jsx b/enatega-multivendor-admin/src/views/Riders.jsx
new file mode 100644
index 0000000..c921c61
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Riders.jsx
@@ -0,0 +1,300 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import RiderComponent from '../components/Rider/Rider'
+import SearchBar from '../components/TableHeader/SearchBar'
+import {
+ getRiders,
+ deleteRider,
+ toggleAvailablity,
+ getAvailableRiders
+} from '../apollo'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ Grid,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Switch,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import { ReactComponent as RiderIcon } from '../assets/svg/svg/Rider.svg'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_RIDERS = gql`
+ ${getRiders}
+`
+const DELETE_RIDER = gql`
+ ${deleteRider}
+`
+const TOGGLE_RIDER = gql`
+ ${toggleAvailablity}
+`
+const GET_AVAILABLE_RIDERS = gql`
+ ${getAvailableRiders}
+`
+
+function Riders(props) {
+ const {PAID_VERSION} = ConfigurableValues()
+ const [editModal, setEditModal] = useState(false)
+ const [rider, setRider] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const [isOpen, setIsOpen] = useState(false)
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const [mutateToggle] = useMutation(TOGGLE_RIDER, {
+ refetchQueries: [{ query: GET_RIDERS }, { query: GET_AVAILABLE_RIDERS }]
+ })
+ const [mutateDelete] = useMutation(DELETE_RIDER, {
+ refetchQueries: [{ query: GET_RIDERS }]
+ })
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_RIDERS
+ )
+
+ const toggleModal = rider => {
+ setEditModal(!editModal)
+ setRider(rider)
+ }
+
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const handleSort = (column, sortDirection) =>
+ console.log(column.selector, sortDirection)
+
+ const { t } = props
+
+ const columns = [
+ {
+ name: t('Name'),
+ sortable: true,
+ selector: 'name'
+ },
+ {
+ name: t('Username'),
+ sortable: true,
+ selector: 'username'
+ },
+ {
+ name: t('Password'),
+ sortable: true,
+ selector: 'password'
+ },
+ {
+ name: t('Phone'),
+ sortable: true,
+ selector: 'phone'
+ },
+ {
+ name: t('Zone'),
+ selector: 'zone.title'
+ },
+ {
+ name: t('Available'),
+ cell: row => <>{availableStatus(row)}>
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+
+ const availableStatus = row => {
+ return (
+ <>
+ {row.available}
+ {
+ mutateToggle({ variables: { id: row._id } })
+ }}
+ style={{ color: 'black' }}
+ />
+ >
+ )
+ }
+
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.riders
+ : data &&
+ data.riders.filter(rider => {
+ return (
+ rider.name.toLowerCase().search(regex) > -1 ||
+ rider.username.toLowerCase().search(regex) > -1 ||
+ rider.phone.toLowerCase().search(regex) > -1 ||
+ rider.zone.title.toLowerCase().search(regex) > -1
+ )
+ })
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {/* Page content */}
+
+
+
+
+
+
+
+
+
+ {isOpen && (
+
+ )}
+ {/* Table */}
+ {errorQuery ? (
+
+ `Error! ${errorQuery.message}`
+
+ ) : null}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ onSort={handleSort}
+ sortFunction={customSort}
+ selectableRows
+ customStyles={customStyles}
+ />
+ )}
+ {
+ toggleModal()
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center'
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Riders)
diff --git a/enatega-multivendor-admin/src/views/Sections.jsx b/enatega-multivendor-admin/src/views/Sections.jsx
new file mode 100644
index 0000000..baf9b95
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Sections.jsx
@@ -0,0 +1,288 @@
+/* eslint-disable react/display-name */
+import React, { useState } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation } from 'react-i18next'
+import SectionComponent from '../components/Section/Section'
+import CustomLoader from '../components/Loader/CustomLoader'
+
+// core components
+import { deleteSection, editSection, getSections } from '../apollo'
+import Header from '../components/Headers/Header'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Switch,
+ Typography,
+ ListItemIcon,
+ Grid
+} from '@mui/material'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { ReactComponent as SectionIcon } from '../assets/svg/svg/RestaurantSection.svg'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_SECTIONS = gql`
+ ${getSections}
+`
+const EDIT_SECTION = gql`
+ ${editSection}
+`
+const DELETE_SECTION = gql`
+ ${deleteSection}
+`
+
+function Sections(props) {
+ const { t } = props
+ const {PAID_VERSION} = ConfigurableValues()
+ const [editModal, setEditModal] = useState(false)
+ const [sections, setSections] = useState(null)
+ const [isOpen, setIsOpen] = useState(false)
+ const toggleModal = section => {
+ setEditModal(!editModal)
+ setSections(section)
+ }
+
+ // Callback function to close the modal
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const [mutateEdit] = useMutation(EDIT_SECTION)
+ const [mutateDelete] = useMutation(DELETE_SECTION, {
+ refetchQueries: [{ query: GET_SECTIONS }]
+ })
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_SECTIONS,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ console.log(data)
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Name'),
+ sortable: true,
+ selector: 'name'
+ },
+ {
+ name: t('Status'),
+ sortable: false,
+ cell: row => <>{statusChanged(row)}>
+ },
+ {
+ name: t('Restaurants'),
+ sortable: true,
+ cell: row => <>{row.restaurants.map(item => `${item.name}`).join(', ')}>
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+
+ const statusChanged = row => {
+ return (
+ <>
+ {row.available}
+ {
+ mutateEdit({
+ variables: {
+ section: {
+ _id: row._id,
+ name: row.name,
+ enabled: !row.enabled,
+ restaurants: row.restaurants
+ ? row.restaurants.map(r => r._id)
+ : []
+ }
+ }
+ })
+ }}
+ style={{ color: 'black' }}
+ />
+ >
+ )
+ }
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.sections
+ : data &&
+ data.sections.filter(section => {
+ return section.name.toLowerCase().search(regex) > -1
+ })
+
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+ {/* Page content */}
+
+
+
+
+
+
+
+
+
+ {isOpen && (
+
+ )}
+
+ {/* Table */}
+ {errorQuery && `${t('Error')}! ${errorQuery.message}`}
+ {loadingQuery ? (
+
+ ) : (
+ }
+ subHeader={true}
+ subHeaderComponent={
+ refetch()}
+ />
+ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="name"
+ customStyles={customStyles}
+ selectableRows
+ />
+ )}
+ {
+ toggleModal(null)
+ }}
+ style={{
+ width: '65%',
+ marginLeft: '18%',
+ overflowY: 'auto'
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Sections)
diff --git a/enatega-multivendor-admin/src/views/SuperAdminDashboard.jsx b/enatega-multivendor-admin/src/views/SuperAdminDashboard.jsx
new file mode 100644
index 0000000..06f5e64
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/SuperAdminDashboard.jsx
@@ -0,0 +1,264 @@
+import React from 'react'
+import Header from '../components/Headers/Header'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Box,
+ Typography,
+ Container,
+ Grid,
+ ButtonBase,
+ useTheme
+} from '@mui/material'
+import RiderStat from '../assets/img/RiderStat.png'
+import RestStat from '../assets/img/RestStat.png'
+import VendorStat from '../assets/img/VendorStat.png'
+import UserStat from '../assets/img/UserStat.png'
+import { ReactComponent as DashboardIcon } from '../assets/svg/svg/dashboard.svg'
+import { Line } from 'react-chartjs-2'
+import { getUsers, getRiders, restaurants, getVendors } from '../apollo'
+import { gql, useQuery } from '@apollo/client'
+import {
+ Chart as ChartJS,
+ CategoryScale,
+ LinearScale,
+ PointElement,
+ LineElement,
+ Title,
+ Tooltip,
+ Legend
+} from 'chart.js'
+import { withTranslation } from 'react-i18next'
+
+// const { t } = useTranslation();
+
+ChartJS.register(
+ CategoryScale,
+ LinearScale,
+ PointElement,
+ LineElement,
+ Title,
+ Tooltip,
+ Legend
+)
+ChartJS.defaults.color = '#000'
+
+const GET_USERS = gql`
+ ${getUsers}
+`
+const GET_RIDERS = gql`
+ ${getRiders}
+`
+const GET_RESTAURANTS = gql`
+ ${restaurants}
+`
+const GET_VENDORS = gql`
+ ${getVendors}
+`
+
+const SuperAdminDashboard = props => {
+ const { t } = props
+ const theme = useTheme()
+ console.log('superadmin props: ', props)
+ const globalClasses = useGlobalStyles()
+ const { loading: loadingVendors, data: vendors } = useQuery(GET_VENDORS)
+ const { data: restaurants, loading: loadingRest } = useQuery(
+ GET_RESTAURANTS,
+ { fetchPolicy: 'network-only' }
+ )
+ const { data: riders, loading: loadingRiders } = useQuery(GET_RIDERS)
+ const { data: users, loading: loadingUsers } = useQuery(GET_USERS, {
+ variables: { page: 0 }
+ })
+
+ // Move the initialization of data inside the component
+ const labels = [
+ t('January'),
+ t('February'),
+ t('March'),
+ t('April'),
+ t('May'),
+ t('June'),
+ t('July')
+ ]
+
+ const data = {
+ labels,
+ datasets: [
+ {
+ label: t('Restaurants'),
+ data: [1, 2, 3, 4, 5, 6, 7],
+ borderColor: theme.palette.warning.dark,
+ backgroundColor: theme.palette.warning.dark
+ },
+ {
+ label: t('Vendors'),
+ data: [8, 7, 6, 5, 4, 3, 2],
+ borderColor: theme.palette.secondary.lightest,
+ backgroundColor: theme.palette.secondary.lightest
+ },
+ {
+ label: t('Riders'),
+ data: [2, 4, 6, 8, 7, 4, 1],
+ borderColor: 'black',
+ backgroundColor: 'black'
+ },
+ {
+ label: t('Users'),
+ data: [9, 6, 4, 2, 3, 5, 7],
+ borderColor: 'orange',
+ backgroundColor: 'orange'
+ }
+ ]
+ }
+ const sty = {
+ fontSize: 35,
+ fontWeight: 'bold',
+ color: theme.palette.secondary.lightest,
+ textAlign: 'center'
+ }
+ return (
+ <>
+
+
+
+
+
+
+
+
+ {t('MainPageText')}
+
+
+ {t('MainPageText1')}
+
+
+ (window.location.href = 'https://enatega.com')
+ }
+ variant="contained"
+ sx={{ width: '30%' }}
+ className={globalClasses.button}>
+ {t('ViewSite')}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {t('TotalUsers')}
+
+ {loadingUsers ? '...' : users.users.length}
+
+
+
+
+ {t('TotalVendors')}
+
+ {loadingVendors ? '...' : vendors.vendors.length}
+
+
+
+
+ {t('TotalRestaurants')}
+
+ {loadingRest ? '...' : restaurants.restaurants.length}
+
+
+
+
+ {t('TotalRiders')}
+
+ {loadingRiders ? '...' : riders.riders.length}
+
+
+
+
+
+
+ >
+ )
+}
+
+const BoxCard = ({ children }) => (
+
+ {children}
+
+)
+
+const imgStyle = { marginLeft: '40%' }
+
+const headSty = { fontSize: 15, fontWeight: 'bold' }
+
+export default withTranslation()(SuperAdminDashboard)
diff --git a/enatega-multivendor-admin/src/views/Timings.jsx b/enatega-multivendor-admin/src/views/Timings.jsx
new file mode 100644
index 0000000..f6493ed
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Timings.jsx
@@ -0,0 +1,254 @@
+/* eslint-disable react/display-name */
+import React, { useState, useEffect } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { withTranslation, useTranslation } from 'react-i18next'
+// core components
+import Header from '../components/Headers/Header'
+import { getRestaurantProfile, updateTimings } from '../apollo'
+import TimeRangePicker from '@wojtekmaj/react-timerange-picker'
+import CustomLoader from '../components/Loader/CustomLoader'
+import useGlobalStyles from '../utils/globalStyles'
+import { Container, Grid, Box, Button, Alert, useTheme } from '@mui/material'
+import AddIcon from '@mui/icons-material/Add'
+import RemoveIcon from '@mui/icons-material/Remove'
+const GET_RESTAURANT_PROFILE = gql`
+ ${getRestaurantProfile}
+`
+const UPDATE_TIMINGS = gql`
+ ${updateTimings}
+`
+const Timings = props => {
+ const [value, onChange] = useState({})
+ const restaurantId = localStorage.getItem('restaurantId')
+
+ const [successMessage, setSuccessMessage] = useState('')
+ const [errorMessage, setErrorMessage] = useState('')
+
+ const { t } = props
+ const onChangeTime = (day, values) => {
+ value[day] = values
+ onChange(value)
+ }
+ const getTransformedTimings = e => {
+ const openingTimes = Object.keys(value).map(v => {
+ return {
+ day: v,
+ times: value[v].map(timings => ({
+ startTime: timings[0].split(':'),
+ endTime: timings[1].split(':')
+ }))
+ }
+ })
+ return openingTimes
+ }
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_RESTAURANT_PROFILE,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ const transformedTimes = {}
+
+ const [mutate, { loading }] = useMutation(UPDATE_TIMINGS)
+
+ data &&
+ data.restaurant.openingTimes.forEach(value => {
+ transformedTimes[value.day] = value.times.map(t => [
+ `${t.startTime[0]}:${t.startTime[1]}`,
+ `${t.endTime[0]}:${t.endTime[1]}`
+ ])
+ })
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+ {/* Page content */}
+
+ {errorQuery ? Error! {errorQuery.message} : null}
+ {loadingQuery ? (
+
+ ) : (
+
+
+
+ {t('Days')}
+
+
+ {t('OpenTimes')}
+
+
+
+
+
+
+
+
+
+ {
+ e.preventDefault()
+ const openingTimes = getTransformedTimings()
+ mutate({
+ variables: {
+ id: restaurantId,
+ openingTimes
+ },
+ onCompleted: () => {
+ setSuccessMessage(t('TimeSavedSuccessfully'))
+ setTimeout(() => setSuccessMessage(''), 5000)
+ setErrorMessage('')
+ },
+ onError: error => {
+ setErrorMessage(t('ErrorWhileSavingTime'))
+ setTimeout(() => setErrorMessage(''), 5000)
+ setSuccessMessage('')
+ }
+ })
+ }}
+ className={[globalClasses.button, globalClasses.mb]}>
+ {loading ? t('SavingDots') : t('Save')}
+
+ {successMessage && (
+
+ {successMessage}
+
+ )}
+ {errorMessage && (
+
+ {errorMessage}
+
+ )}
+
+ )}
+
+ >
+ )
+}
+
+export default withTranslation()(Timings)
+const DayComponent = ({ day, value, onChangeTime }) => {
+ const { t } = useTranslation()
+ const theme = useTheme()
+ useEffect(() => {
+ onChangeTime(day, values)
+ })
+ const globalClasses = useGlobalStyles()
+
+ const [values, onChange] = useState(value)
+ return (
+
+
+ {day}
+
+
+ {values.map((value, index) => (
+
+ {
+ values[index] = value
+ onChange([...values])
+ }}
+ />
+ {index === values.length - 1 && (
+ {
+ e.preventDefault()
+ onChange([...values, ['00:00', '23:59']])
+ }}
+ />
+ )}
+ {values.length > 1 && (
+ {
+ e.preventDefault()
+ values.splice(index, 1)
+ onChange([...values])
+ }}
+ />
+ )}
+
+ ))}
+ {values.length === 0 && {t('ClosedAllDay')} }
+
+
+ {values.length > 0 ? (
+ {
+ e.preventDefault()
+ onChange([])
+ }}
+ className={globalClasses.closeBtn}>
+ {t('ClosedAllDay')}
+
+ ) : null}
+ {values.length === 0 ? (
+ {
+ e.preventDefault()
+ onChange([['00:00', '23:59']])
+ }}
+ className={globalClasses.openBtn}>
+ {t('Open')}
+
+ ) : null}
+
+
+ )
+}
diff --git a/enatega-multivendor-admin/src/views/Tipping.jsx b/enatega-multivendor-admin/src/views/Tipping.jsx
new file mode 100644
index 0000000..a2ae0fc
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Tipping.jsx
@@ -0,0 +1,35 @@
+/* eslint-disable react/display-name */
+import React from 'react'
+import { withTranslation } from 'react-i18next'
+import { Container, Grid } from '@mui/material'
+import TippingComponent from '../components/Tipping/Tipping'
+// core components
+import Header from '../components/Headers/Header'
+import useGlobalStyles from '../utils/globalStyles'
+import { ReactComponent as TippingIcon } from '../assets/svg/svg/Tipping.svg'
+
+function Tipping() {
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+ {/* Page content */}
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Tipping)
diff --git a/enatega-multivendor-admin/src/views/Users.jsx b/enatega-multivendor-admin/src/views/Users.jsx
new file mode 100644
index 0000000..65776a0
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Users.jsx
@@ -0,0 +1,138 @@
+import React, { useState } from 'react'
+import { withTranslation } from 'react-i18next'
+import Header from '../components/Headers/Header'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { useQuery, gql } from '@apollo/client'
+import { getUsers } from '../apollo'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import { Box, Container } from '@mui/material'
+import { ReactComponent as UserIcon } from '../assets/svg/svg/User.svg'
+import TableHeader from '../components/TableHeader'
+
+const GET_USERS = gql`
+ ${getUsers}
+`
+const Users = props => {
+ const { t } = props
+
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const { data, error: errorQuery, loading: loadingQuery, refetch } = useQuery(
+ GET_USERS,
+ {
+ variables: { page: 0 }
+ }
+ )
+ const columns = [
+ {
+ name: t('Name'),
+ sortable: true,
+ selector: 'name'
+ },
+ {
+ name: t('Email'),
+ sortable: true,
+ selector: 'email',
+ cell: row => hiddenData(row.email, 'EMAIL')
+ },
+ {
+ name: t('Phone'),
+ sortable: true,
+ selector: 'phone',
+ cell: row => hiddenData(row.phone, 'PHONE')
+ }
+ ]
+
+ const hiddenData = (cell, column) => {
+ if (column === 'EMAIL') {
+ if (cell != null) {
+ const splitArray = cell.split('@')
+ splitArray.splice(0, 1, '*'.repeat(splitArray[0].length))
+ const star = splitArray.join('@')
+ return star
+ } else {
+ return '*'
+ }
+ } else if (column === 'PHONE') {
+ const star = '*'.repeat(cell.length)
+ return star
+ }
+ }
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const handleSort = (column, sortDirection) =>
+ console.log(column.selector, sortDirection)
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.users
+ : data &&
+ data.users.filter(user => {
+ return (
+ user.name.toLowerCase().search(regex) > -1 ||
+ user.phone.toLowerCase().search(regex) > -1 ||
+ (user.email !== null
+ ? user.email.toLowerCase().search(regex) > -1
+ : false)
+ )
+ })
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+
+
+
+
+ {errorQuery ? (
+
+ `${t('Error')}! ${errorQuery.message}`
+
+ ) : null}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ onSort={handleSort}
+ sortFunction={customSort}
+ customStyles={customStyles}
+ selectableRows
+ paginationIconLastPage=""
+ paginationIconFirstPage=""
+ />
+ )}
+
+ >
+ )
+}
+export default withTranslation()(Users)
diff --git a/enatega-multivendor-admin/src/views/VendorProfile.jsx b/enatega-multivendor-admin/src/views/VendorProfile.jsx
new file mode 100644
index 0000000..6386e02
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/VendorProfile.jsx
@@ -0,0 +1,626 @@
+import React, { useState, useRef, useMemo, useEffect } from 'react'
+import { validateFunc } from '../constraints/constraints'
+import { withTranslation, useTranslation } from 'react-i18next'
+import Header from '../components/Headers/Header'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { getRestaurantProfile, editRestaurant, getCuisines } from '../apollo'
+import ConfigurableValues from '../config/constants'
+import useStyles from '../components/Restaurant/styles'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Box,
+ Alert,
+ Typography,
+ Button,
+ Input,
+ Grid,
+ Checkbox,
+ Select,
+ OutlinedInput,
+ MenuItem,
+ ListItemText
+} from '@mui/material'
+import { Container } from '@mui/system'
+import CustomLoader from '../components/Loader/CustomLoader'
+import InputAdornment from '@mui/material/InputAdornment'
+import VisibilityIcon from '@mui/icons-material/Visibility'
+import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'
+import { SHOP_TYPE } from '../utils/enums'
+import Dropdown from '../components/Dropdown'
+
+const GET_PROFILE = gql`
+ ${getRestaurantProfile}
+`
+const EDIT_RESTAURANT = gql`
+ ${editRestaurant}
+`
+const CUISINES = gql`
+ ${getCuisines}
+`
+
+const ITEM_HEIGHT = 48
+const ITEM_PADDING_TOP = 8
+const MenuProps = {
+ PaperProps: {
+ style: {
+ maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,
+ width: 250
+ }
+ }
+}
+
+const VendorProfile = () => {
+ const { CLOUDINARY_UPLOAD_URL, CLOUDINARY_FOOD } = ConfigurableValues()
+
+ const { t } = useTranslation()
+
+ const restaurantId = localStorage.getItem('restaurantId')
+ const [showPassword, setShowPassword] = useState(false)
+ const [imgUrl, setImgUrl] = useState('')
+ const [nameError, setNameError] = useState(null)
+ const [usernameError, setUsernameError] = useState(null)
+ const [passwordError, setPasswordError] = useState(null)
+ const [addressError, setAddressError] = useState(null)
+ const [prefixError, setPrefixError] = useState(null)
+ const [deliveryTimeError, setDeliveryTimeError] = useState(null)
+ const [minimumOrderError, setMinimumOrderError] = useState(null)
+ const [salesTaxError, setSalesTaxError] = useState(null)
+ const [errors, setErrors] = useState('')
+ const [success, setSuccess] = useState('')
+ const [restaurantCuisines, setRestaurantCuisines] = useState([])
+
+ const onCompleted = data => {
+ setNameError(null)
+ setAddressError(null)
+ setPrefixError(null)
+ setUsernameError(null)
+ setPasswordError(null)
+ setDeliveryTimeError(null)
+ setMinimumOrderError(null)
+ setSalesTaxError(null)
+ setErrors('')
+ setSuccess(t('RestaurantUpdatedSuccessfully'))
+ setTimeout(hideAlert, 5000)
+ }
+
+ const onError = ({ graphQLErrors, networkError }) => {
+ setNameError(null)
+ setAddressError(null)
+ setPrefixError(null)
+ setUsernameError(null)
+ setPasswordError(null)
+ setDeliveryTimeError(null)
+ setMinimumOrderError(null)
+ setSalesTaxError(null)
+ setSuccess('')
+ if (graphQLErrors) {
+ setErrors(graphQLErrors[0].message)
+ }
+ if (networkError) {
+ setErrors(networkError.result.errors[0].message)
+ }
+ setTimeout(hideAlert, 5000)
+ }
+ const hideAlert = () => {
+ setErrors('')
+ setSuccess('')
+ }
+ const { data, error: errorQuery, loading: loadingQuery } = useQuery(
+ GET_PROFILE,
+ {
+ variables: { id: restaurantId }
+ }
+ )
+ console.log('Rest data: ', data)
+ const [mutate, { loading }] = useMutation(EDIT_RESTAURANT, {
+ onError,
+ onCompleted,
+ refetchQueries: [GET_PROFILE]
+ })
+
+ const formRef = useRef(null)
+
+ const selectImage = (event, state) => {
+ const result = filterImage(event)
+ if (result) imageToBase64(result)
+ }
+
+ const filterImage = event => {
+ let images = []
+ for (var i = 0; i < event.target.files.length; i++) {
+ images[i] = event.target.files.item(i)
+ }
+ images = images.filter(image => image.name.match(/\.(jpg|jpeg|png|gif)$/))
+ return images.length ? images[0] : undefined
+ }
+ const imageToBase64 = imgUrl => {
+ const fileReader = new FileReader()
+ fileReader.onloadend = () => {
+ setImgUrl(fileReader.result)
+ }
+ fileReader.readAsDataURL(imgUrl)
+ }
+ const uploadImageToCloudinary = async() => {
+ if (imgUrl === '') return imgUrl
+
+ const apiUrl = CLOUDINARY_UPLOAD_URL
+ const data = {
+ file: imgUrl,
+ upload_preset: CLOUDINARY_FOOD
+ }
+ try {
+ const result = await fetch(apiUrl, {
+ body: JSON.stringify(data),
+ headers: {
+ 'content-type': 'application/json'
+ },
+ method: 'POST'
+ })
+ const imageData = await result.json()
+ return imageData.secure_url
+ } catch (e) {
+ console.log(e)
+ }
+ }
+
+ const onSubmitValidaiton = data => {
+ const form = formRef.current
+ const name = form.name.value
+ const address = form.address.value
+ const username = form.username.value
+ const password = form.password.value
+ // IMPORTANT!!!!
+ const prefix = form.prefix.value
+ const deliveryTime = form.deliveryTime.value
+ const minimumOrder = form.minimumOrder.value
+ const salesTax = +form.salesTax.value
+
+ const nameErrors = !validateFunc({ name }, 'name')
+ const addressErrors = !validateFunc({ address }, 'address')
+ const prefixErrors = !validateFunc({ prefix: prefix }, 'prefix')
+ const deliveryTimeErrors = !validateFunc(
+ { deliveryTime: deliveryTime },
+ 'deliveryTime'
+ )
+ const minimumOrderErrors = !validateFunc(
+ { minimumOrder: minimumOrder },
+ 'minimumOrder'
+ )
+ const usernameErrors = !validateFunc({ name: username }, 'name')
+ const passwordErrors = !validateFunc({ password }, 'password')
+ const salesTaxError = !validateFunc({ salesTax }, 'salesTax')
+ setNameError(nameErrors)
+ setAddressError(addressErrors)
+ setPrefixError(prefixErrors)
+ setUsernameError(usernameErrors)
+ setPasswordError(passwordErrors)
+ setDeliveryTimeError(deliveryTimeErrors)
+ setMinimumOrderError(minimumOrderErrors)
+ setSalesTaxError(salesTaxError)
+ if (
+ !(
+ nameErrors &&
+ addressErrors &&
+ prefixErrors &&
+ usernameErrors &&
+ passwordErrors &&
+ deliveryTimeErrors &&
+ minimumOrderErrors &&
+ salesTaxError
+ )
+ ) {
+ setErrors(t('FieldsRequired'))
+ }
+ return (
+ nameErrors &&
+ addressErrors &&
+ prefixErrors &&
+ usernameErrors &&
+ passwordErrors &&
+ deliveryTimeErrors &&
+ minimumOrderErrors &&
+ salesTaxError
+ )
+ }
+
+ const { data: cuisines } = useQuery(CUISINES)
+ const cuisinesInDropdown = useMemo(
+ () => cuisines?.cuisines?.map(item => item.name),
+ [cuisines]
+ )
+ const handleCuisineChange = event => {
+ const {
+ target: { value }
+ } = event
+ setRestaurantCuisines(
+ typeof value === 'string' ? value.split(',') : value
+ )
+ }
+
+ useEffect(()=>{
+ setRestaurantCuisines(data?.restaurant?.cuisines)
+ },[data?.restaurant?.cuisines])
+
+ const classes = useStyles()
+ const globalClasses = useGlobalStyles()
+ return (
+ <>
+
+
+
+
+
+
+ {t('UpdateProfile')}
+
+
+
+ {errorQuery && {errorQuery.message} }
+ {loadingQuery ? (
+
+ ) : (
+
+
+
+ {success && (
+
+ {success}
+
+ )}
+ {errors && (
+
+ {errors}
+
+ )}
+
+
+ )}
+
+
+ >
+ )
+}
+export default withTranslation()(VendorProfile)
diff --git a/enatega-multivendor-admin/src/views/Vendors.jsx b/enatega-multivendor-admin/src/views/Vendors.jsx
new file mode 100644
index 0000000..efb2607
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Vendors.jsx
@@ -0,0 +1,271 @@
+import React, { useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import { gql, useMutation, useQuery } from '@apollo/client'
+import Header from '../components/Headers/Header'
+import VendorComponent from '../components/Vendor/Vendor'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { getVendors, deleteVendor } from '../apollo'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import {
+ Container,
+ Button,
+ Grid,
+ Modal,
+ MenuItem,
+ IconButton,
+ Menu,
+ ListItemIcon,
+ Typography,
+ Paper,
+ useTheme
+} from '@mui/material'
+import { ReactComponent as VendorIcon } from '../assets/svg/svg/Vendors.svg'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_VENDORS = gql`
+ ${getVendors}
+`
+const DELETE_VENDOR = gql`
+ ${deleteVendor}
+`
+const Vendors = props => {
+ const theme = useTheme()
+ const {PAID_VERSION} = ConfigurableValues()
+ const { t } = props
+ const [editModal, setEditModal] = useState(false)
+ const [vendors, setVendor] = useState(null)
+ const [isOpen, setIsOpen] = useState(false)
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const golbalClasses = useGlobalStyles()
+
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+
+ const { loading: loadingQuery, error: errorQuery, data, refetch } = useQuery(
+ GET_VENDORS
+ )
+ const [mutate, { loading }] = useMutation(DELETE_VENDOR, {
+ refetchQueries: [{ query: GET_VENDORS }]
+ })
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.vendors
+ : data &&
+ data.vendors.filter(vendor => {
+ return vendor.email.toLowerCase().search(regex) > -1
+ })
+
+ const toggleModal = vendor => {
+ setEditModal(!editModal)
+ setVendor(vendor)
+ }
+
+ useEffect(() => {
+ localStorage.removeItem('restaurant_id')
+ }, [])
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Email'),
+ sortable: true,
+ selector: 'email'
+ },
+ {
+ name: t('TotalRestaurants'),
+ sortable: true,
+ cell: row => <>{row.restaurants.length}>
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+ {
+ e.preventDefault()
+ localStorage.setItem('vendorId', row._id)
+ props.history.push({
+ pathname: '/restaurant/list',
+ state: { id: row._id }
+ })
+ }}>
+ {t('Restaurants')}
+
+
+ >
+ )
+ }
+
+ return (
+ <>
+
+ {isOpen && (
+
+ )}
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+
+ {errorQuery ? `Error! ${errorQuery.message}` : null}
+ {loadingQuery ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loading}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="email"
+ customStyles={customStyles}
+ selectableRows
+ />
+ )}
+ {
+ toggleModal()
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Vendors)
diff --git a/enatega-multivendor-admin/src/views/WithdrawRequest.jsx b/enatega-multivendor-admin/src/views/WithdrawRequest.jsx
new file mode 100644
index 0000000..4e53629
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/WithdrawRequest.jsx
@@ -0,0 +1,181 @@
+import { useQuery, gql, useMutation } from '@apollo/client'
+import React, { useState } from 'react'
+import CustomLoader from '../components/Loader/CustomLoader'
+import DataTable from 'react-data-table-component'
+import { updateWithdrawReqStatus, withdrawRequestQuery } from '../apollo'
+import Header from '../components/Headers/Header'
+import { Box, Container, MenuItem, Select } from '@mui/material'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { ReactComponent as WithdrawIcon } from '../assets/svg/svg/Request.svg'
+import TableHeader from '../components/TableHeader'
+import { withTranslation, useTranslation } from 'react-i18next'
+
+function WithdrawRequest() {
+ const { t } = useTranslation()
+ const [searchQuery, setSearchQuery] = useState('')
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+ const { loading, error, data } = useQuery(
+ gql`
+ ${withdrawRequestQuery}
+ `
+ )
+ const [updateStatus] = useMutation(
+ gql`
+ ${updateWithdrawReqStatus}
+ `
+ )
+
+ const handleSort = (column, sortDirection) =>
+ console.log(column.selector, sortDirection)
+
+ const columns = [
+ {
+ name: t('RequestID'),
+ selector: 'requestId'
+ },
+ {
+ name: t('Rider'),
+ sortable: true,
+ selector: 'rider',
+ cell: row => <>{row.rider ? row.rider.name : null}>
+ },
+
+ {
+ name: t('Amount'),
+ selector: 'requestAmount'
+ },
+ {
+ name: t('Date'),
+ selector: 'requestTime',
+ cell: row => <>{new Date(row.requestTime).toDateString()}>
+ },
+ {
+ name: t('Status'),
+ selector: 'status',
+ cell: row => (
+
+ {row.status}
+
+ {updateRequestStatus(row)}
+
+ )
+ }
+ ]
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.getAllWithdrawRequests.data
+ : data &&
+ data.getAllWithdrawRequests.data.filter(request => {
+ return (
+ request.requestId.toLowerCase().search(regex) > -1 ||
+ request.rider.name.toLowerCase().search(regex) > -1
+ )
+ })
+
+ const updateRequestStatus = row => {
+ return (
+ <>
+
+
+ {t('Status')}
+
+ {
+ if (row.status !== 'REQUESTED') {
+ updateStatus({
+ variables: {
+ id: row._id,
+ status: 'REQUESTED'
+ }
+ })
+ }
+ }}>
+ {t('REQUESTED')}
+
+ {
+ if (row.status !== 'TRANSFERRED') {
+ updateStatus({
+ variables: {
+ id: row._id,
+ status: 'TRANSFERRED'
+ }
+ })
+ }
+ }}>
+ {t('TRANSFERRED')}
+
+ {
+ if (row.status !== 'CANCELLED') {
+ updateStatus({
+ variables: {
+ id: row._id,
+ status: 'CANCELLED'
+ }
+ })
+ }
+ }}>
+ {t('CANCELLEDStatus')}
+
+
+ >
+ )
+ }
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+
+
+
+
+ {error ? `Error! ${error.message}` : null}
+ {loading ? (
+
+ ) : (
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loading}
+ progressComponent={ }
+ onSort={handleSort}
+ selectableRows
+ customStyles={customStyles}
+ />
+ )}
+
+ >
+ )
+}
+export default withTranslation()(WithdrawRequest)
diff --git a/enatega-multivendor-admin/src/views/Zone.jsx b/enatega-multivendor-admin/src/views/Zone.jsx
new file mode 100644
index 0000000..482dc03
--- /dev/null
+++ b/enatega-multivendor-admin/src/views/Zone.jsx
@@ -0,0 +1,227 @@
+/* eslint-disable react/display-name */
+import React, { useState, useEffect } from 'react'
+import { withTranslation } from 'react-i18next'
+import {
+ Container,
+ IconButton,
+ Menu,
+ MenuItem,
+ Modal,
+ Paper,
+ Typography,
+ ListItemIcon
+} from '@mui/material'
+import { gql, useQuery, useMutation } from '@apollo/client'
+import Header from '../components/Headers/Header'
+import ZoneComponent from '../components/Zone/Zone'
+import CustomLoader from '../components/Loader/CustomLoader'
+import { getZones, deleteZone } from '../apollo'
+import DataTable from 'react-data-table-component'
+import orderBy from 'lodash/orderBy'
+import SearchBar from '../components/TableHeader/SearchBar'
+import { customStyles } from '../utils/tableCustomStyles'
+import useGlobalStyles from '../utils/globalStyles'
+import MoreVertIcon from '@mui/icons-material/MoreVert'
+import EditIcon from '@mui/icons-material/Edit'
+import DeleteIcon from '@mui/icons-material/Delete'
+import TableHeader from '../components/TableHeader'
+import Alert from '../components/Alert'
+import ConfigurableValues from '../config/constants'
+
+const GET_ZONES = gql`
+ ${getZones}
+`
+const DELETE_ZONE = gql`
+ ${deleteZone}
+`
+
+const Zones = props => {
+ const { t } = props
+ const {PAID_VERSION} = ConfigurableValues()
+ const [editModal, setEditModal] = useState(false)
+ const [zones, setZone] = useState(null)
+ const [searchQuery, setSearchQuery] = useState('')
+ const [isOpen, setIsOpen] = useState(false)
+ const onChangeSearch = e => setSearchQuery(e.target.value)
+
+ const [mutate, { error, loading }] = useMutation(DELETE_ZONE, {
+ refetchQueries: [{ query: GET_ZONES }]
+ })
+ const { data, loading: loadingQuery, refetch } = useQuery(GET_ZONES)
+ const toggleModal = zone => {
+ setEditModal(!editModal)
+ setZone(zone)
+ }
+ const closeEditModal = () => {
+ setEditModal(false)
+ }
+
+ useEffect(() => {
+ localStorage.removeItem('restaurant_id')
+ }, [])
+
+ const customSort = (rows, field, direction) => {
+ const handleField = row => {
+ if (row[field]) {
+ return row[field].toLowerCase()
+ }
+
+ return row[field]
+ }
+
+ return orderBy(rows, handleField, direction)
+ }
+
+ const columns = [
+ {
+ name: t('Title'),
+ sortable: true,
+ selector: 'title'
+ },
+ {
+ name: t('Description'),
+ sortable: true,
+ selector: 'description'
+ },
+ {
+ name: t('Action'),
+ cell: row => <>{actionButtons(row)}>
+ }
+ ]
+ const actionButtons = row => {
+ const [anchorEl, setAnchorEl] = React.useState(null)
+ const open = Boolean(anchorEl)
+ const handleClick = event => {
+ setAnchorEl(event.currentTarget)
+ }
+ const handleClose = () => {
+ setAnchorEl(null)
+ }
+ return (
+ <>
+
+ >
+ )
+ }
+
+ const regex =
+ searchQuery.length > 2 ? new RegExp(searchQuery.toLowerCase(), 'g') : null
+
+ const filtered =
+ searchQuery.length < 3
+ ? data && data.zones
+ : data &&
+ data.zones.filter(zone => {
+ return (
+ zone.title.toLowerCase().search(regex) > -1 ||
+ zone.description.toLowerCase().search(regex) > -1
+ )
+ })
+
+ const globalClasses = useGlobalStyles()
+
+ return (
+ <>
+
+ {/* Page content */}
+
+
+ {/* Table */}
+ {isOpen && (
+
+ )}
+ {error ? {`Error! ${error.message}`} : null}
+ {loading ? : null}
+ refetch()}
+ />
+ }
+ title={ }
+ columns={columns}
+ data={filtered}
+ pagination
+ progressPending={loadingQuery}
+ progressComponent={ }
+ sortFunction={customSort}
+ defaultSortField="title"
+ customStyles={customStyles}
+ selectableRows
+ />
+ {
+ toggleModal()
+ }}>
+
+
+
+ >
+ )
+}
+
+export default withTranslation()(Zones)
diff --git a/enatega-multivendor-app/.eslintrc.json b/enatega-multivendor-app/.eslintrc.json
new file mode 100644
index 0000000..03e0089
--- /dev/null
+++ b/enatega-multivendor-app/.eslintrc.json
@@ -0,0 +1,38 @@
+{
+ "settings":{
+ "react": {
+ "pragma": "React",
+ "version": "detect"
+ }
+ },
+ "env": {
+ "browser": true,
+ "es6": true
+ },
+ "extends": [
+ "plugin:react/recommended",
+ "standard"
+ ],
+ "globals": {
+ "Atomics": "readonly",
+ "SharedArrayBuffer": "readonly"
+ },
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 11,
+ "sourceType": "module"
+ },
+ "plugins": [
+ "react"
+ ],
+ "rules": {
+ "space-before-function-paren": ["error", {
+ "anonymous": "never",
+ "named": "never",
+ "asyncArrow": "never"
+ }],
+ "react/prop-types": 0
+ }
+}
diff --git a/enatega-multivendor-app/.gitignore b/enatega-multivendor-app/.gitignore
new file mode 100644
index 0000000..f1c3ad8
--- /dev/null
+++ b/enatega-multivendor-app/.gitignore
@@ -0,0 +1,60 @@
+/node_modules
+# @generated expo-cli sync-2138f1e3e130677ea10ea873f6d498e3890e677b
+# The following patterns were generated by expo-cli
+
+# OSX
+#
+.DS_Store
+
+# Xcode
+#
+build/
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+xcuserdata
+*.xccheckout
+*.moved-aside
+DerivedData
+*.hmap
+*.ipa
+*.xcuserstate
+project.xcworkspace
+
+# Android/IntelliJ
+#
+build/
+.idea
+.gradle
+local.properties
+*.iml
+*.hprof
+
+# node.js
+#
+node_modules/
+npm-debug.log
+yarn-error.log
+
+# BUCK
+buck-out/
+\.buckd/
+*.keystore
+!debug.keystore
+
+# Bundle artifacts
+*.jsbundle
+
+# CocoaPods
+/ios/Pods/
+
+# Expo
+.expo/
+web-build/
+
+# @end expo-cli
\ No newline at end of file
diff --git a/enatega-multivendor-app/.npmrc b/enatega-multivendor-app/.npmrc
new file mode 100644
index 0000000..e9ee3cb
--- /dev/null
+++ b/enatega-multivendor-app/.npmrc
@@ -0,0 +1 @@
+legacy-peer-deps=true
\ No newline at end of file
diff --git a/enatega-multivendor-app/.prettierrc.js b/enatega-multivendor-app/.prettierrc.js
new file mode 100644
index 0000000..2fc75e2
--- /dev/null
+++ b/enatega-multivendor-app/.prettierrc.js
@@ -0,0 +1 @@
+module.exports = 'prettier-config-standard'
diff --git a/enatega-multivendor-app/App.js b/enatega-multivendor-app/App.js
new file mode 100644
index 0000000..3e10c7e
--- /dev/null
+++ b/enatega-multivendor-app/App.js
@@ -0,0 +1,242 @@
+import React, { useState, useEffect, useReducer } from 'react'
+import AppContainer from './src/routes'
+import * as Notifications from 'expo-notifications'
+import * as Font from 'expo-font'
+import 'react-native-gesture-handler'
+import * as SplashScreen from 'expo-splash-screen'
+// import * as Sentry from 'sentry-expo'
+import {
+ BackHandler,
+ Platform,
+ StatusBar,
+ LogBox,
+ StyleSheet,
+ ActivityIndicator
+} from 'react-native'
+import { ApolloProvider } from '@apollo/client'
+import { exitAlert } from './src/utils/androidBackButton'
+import FlashMessage from 'react-native-flash-message'
+import setupApolloClient from './src/apollo/index'
+import ThemeReducer from './src/ui/ThemeReducer/ThemeReducer'
+import ThemeContext from './src/ui/ThemeContext/ThemeContext'
+import { ConfigurationProvider } from './src/context/Configuration'
+import { UserProvider } from './src/context/User'
+import { AuthProvider } from './src/context/Auth'
+import { theme as Theme } from './src/utils/themeColors'
+import { LocationContext } from './src/context/Location'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import 'expo-dev-client'
+import useEnvVars, { isProduction } from './environment'
+import { requestTrackingPermissions } from './src/utils/useAppTrackingTrasparency'
+import { OrdersProvider } from './src/context/Orders'
+import { MessageComponent } from './src/components/FlashMessage/MessageComponent'
+import * as Updates from 'expo-updates'
+
+LogBox.ignoreLogs([
+ 'Warning: ...',
+ 'Sentry Logger ',
+ 'Constants.deviceYearClass'
+]) // Ignore log notification by message
+LogBox.ignoreAllLogs() // Ignore all log notifications
+
+// Default Theme
+const themeValue = 'Pink'
+
+export default function App() {
+ const [appIsReady, setAppIsReady] = useState(false)
+ const [location, setLocation] = useState(null)
+ // Theme Reducer
+ const [theme, themeSetter] = useReducer(ThemeReducer, themeValue)
+ const [isUpdating, setIsUpdating] = useState(false)
+
+ useEffect(() => {
+ const loadAppData = async () => {
+ try {
+ await SplashScreen.preventAutoHideAsync()
+ } catch (e) {
+ console.warn(e)
+ }
+ // await i18n.initAsync()
+ await Font.loadAsync({
+ MuseoSans300: require('./src/assets/font/MuseoSans/MuseoSans300.ttf'),
+ MuseoSans500: require('./src/assets/font/MuseoSans/MuseoSans500.ttf'),
+ MuseoSans700: require('./src/assets/font/MuseoSans/MuseoSans700.ttf')
+ })
+ await permissionForPushNotificationsAsync()
+ await getActiveLocation()
+ BackHandler.addEventListener('hardwareBackPress', exitAlert)
+
+ setAppIsReady(true)
+ }
+
+ loadAppData()
+
+ return () => {
+ BackHandler.removeEventListener('hardwareBackPress', exitAlert)
+ }
+ }, [])
+
+ useEffect(() => {
+ try {
+ AsyncStorage.getItem('theme').then((response) =>
+ response !== 'Pink' ? themeSetter({ type: response }) : null
+ )
+ } catch (error) {
+ // Error retrieving data
+ console.log('Theme Error : ', error.message)
+ }
+ }, [theme])
+
+ useEffect(() => {
+ if (!appIsReady) return
+
+ const hideSplashScreen = async () => {
+ await SplashScreen.hideAsync()
+ }
+
+ hideSplashScreen()
+ }, [appIsReady])
+
+ useEffect(() => {
+ if (!location) return
+
+ const saveLocation = async () => {
+ await AsyncStorage.setItem('location', JSON.stringify(location))
+ }
+
+ saveLocation()
+ }, [location])
+
+ useEffect(() => {
+ requestTrackingPermissions()
+ }, [])
+
+ const { SENTRY_DSN } = useEnvVars()
+ const client = setupApolloClient()
+
+ // useEffect(() => {
+ // if (SENTRY_DSN) {
+ // Sentry.init({
+ // dsn: SENTRY_DSN,
+ // enableInExpoDevelopment: true,
+ // debug: !isProduction,
+ // tracesSampleRate: 1.0 // to be changed to 0.2 in production
+ // })
+ // }
+ // }, [SENTRY_DSN])
+
+ useEffect(() => {
+ // eslint-disable-next-line no-undef
+ if (__DEV__) return
+ ;(async () => {
+ const { isAvailable } = await Updates.checkForUpdateAsync()
+ if (isAvailable) {
+ try {
+ setIsUpdating(true)
+ const { isNew } = await Updates.fetchUpdateAsync()
+ if (isNew) {
+ await Updates.reloadAsync()
+ }
+ } catch (error) {
+ console.log('error while updating app', JSON.stringify(error))
+ } finally {
+ setIsUpdating(false)
+ }
+ }
+ })()
+ }, [])
+
+ if (isUpdating) {
+ return (
+
+
+ Please wait while app is updating
+
+
+
+ )
+ }
+
+ async function getActiveLocation() {
+ try {
+ const locationStr = await AsyncStorage.getItem('location')
+ if (locationStr) {
+ setLocation(JSON.parse(locationStr))
+ }
+ } catch (err) {
+ console.log(err)
+ }
+ }
+
+ async function permissionForPushNotificationsAsync() {
+ const { status: existingStatus } = await Notifications.getPermissionsAsync()
+ let finalStatus = existingStatus
+ // only ask if permissions have not already been determined, because
+ // iOS won't necessarily prompt the user a second time.
+ if (existingStatus !== 'granted') {
+ // Android remote notification permissions are granted during the app
+ // install, so this will only ask on iOS
+ const { status } = await Notifications.requestPermissionsAsync()
+ finalStatus = status
+ }
+
+ // Stop here if the user did not grant permissions
+ if (finalStatus !== 'granted') {
+ return
+ }
+
+ if (Platform.OS === 'android') {
+ Notifications.setNotificationChannelAsync('default', {
+ name: 'default',
+ importance: Notifications.AndroidImportance.HIGH,
+ vibrationPattern: [0, 250, 250, 250],
+ lightColor: '#FF231F7C'
+ })
+ }
+ }
+
+ if (appIsReady) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+ } else {
+ return null
+ }
+}
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
diff --git a/enatega-multivendor-app/app.json b/enatega-multivendor-app/app.json
new file mode 100644
index 0000000..95fd545
--- /dev/null
+++ b/enatega-multivendor-app/app.json
@@ -0,0 +1,118 @@
+{
+ "expo": {
+ "name": "Enatega Multivendor",
+ "scheme": "enategamultivendor",
+ "version": "1.0.38",
+ "description": "Enatega is a starter kit food ordering app built in React Native using Expo for IOS and Android. It's made keeping good aesthetics in mind as well keeping the best coding practices in mind. Its fully customisable to easily help you in your next food delivery project. https://market.nativebase.io/view/react-native-food-delivery-backend-app",
+ "slug": "enategamultivendor",
+ "owner": "ninjas_code",
+ "currentFullName": "@ninjas_code/enategamultivendor",
+ "originalFullName": "@ninjas_code/enategamultivendor",
+ "privacy": "public",
+ "androidStatusBar": {
+ "backgroundColor": "#000"
+ },
+ "platforms": ["ios", "android"],
+ "orientation": "portrait",
+ "icon": "./assets/icon.png",
+ "splash": {
+ "image": "./assets/splash.png",
+ "resizeMode": "cover",
+ "backgroundColor": "#6FCF97"
+ },
+ "assetBundlePatterns": ["**/*"],
+ "ios": {
+ "supportsTablet": true,
+ "bundleIdentifier": "com.enatega.multivendor",
+ "config": {
+ "googleMapsApiKey": "AIzaSyCzNP5qQql2a5y8lOoO-1yj1lj_tzjVImA"
+ },
+ "usesAppleSignIn": true,
+ "infoPlist": {
+ "NSLocationWhenInUseUsageDescription": "Allow $(PRODUCT_NAME) to use location to determine the delivery address for your orders.",
+ "UIBackgroundModes": ["remote-notification"],
+ "NSUserTrackingUsageDescription": "Allow this app to collect app-related data that can be used for tracking you or your device.",
+ "CFBundleURLTypes": [
+ {
+ "CFBundleURLSchemes": [
+ "com.googleusercontent.apps.967541328677-nf8h4ou7rhmq9fahs87p057rggo95eah"
+ ]
+ }
+ ]
+ }
+ },
+ "notification": {
+ "iosDisplayInForeground": true,
+ "color": "#6FCF97",
+ "icon": "./assets/not-icon.png",
+ "androidMode": "default",
+ "androidCollapsedTitle": "Enatega Multivendor"
+ },
+ "android": {
+ "versionCode": 38,
+ "package": "com.enatega.multivendor",
+ "googleServicesFile": "./google-services.json",
+ "config": {
+ "googleMaps": {
+ "apiKey": "AIzaSyCzNP5qQql2a5y8lOoO-1yj1lj_tzjVImA"
+ }
+ },
+ "permissions": [
+ "android.permission.ACCESS_FINE_LOCATION",
+ "android.permission.ACCESS_COARSE_LOCATION",
+ "android.permission.RECORD_AUDIO",
+ "android.permission.FOREGROUND_SERVICE"
+ ]
+ },
+ "hooks": {
+ "postPublish": [
+ {
+ "file": "sentry-expo/upload-sourcemaps",
+ "config": {
+ "organization": "ninjas-code",
+ "project": "enatega-multivendor-app",
+ "authToken": "744ed798e04a40a896b0269c25f945de0e166db8362e41969b64d5e07ca80e65"
+ }
+ }
+ ]
+ },
+ "plugins": [
+ "@react-native-google-signin/google-signin",
+ [
+ "expo-tracking-transparency",
+ {
+ "userTrackingPermission": "Allow this app to collect app-related data that can be used for tracking you or your device."
+ }
+ ],
+ [
+ "expo-updates",
+ {
+ "username": "ninjas_code"
+ }
+ ],
+ [
+ "expo-image-picker",
+ {
+ "photosPermission": "The app accesses your photos to let you share them with your friends."
+ }
+ ],
+ [
+ "expo-location",
+ {
+ "locationAlwaysAndWhenInUsePermission": "Allow $Enatega Multivendor to use your location."
+ }
+ ]
+ ],
+ "extra": {
+ "eas": {
+ "projectId": "331d4e5b-b12a-434a-92ec-d6d283dc0e46"
+ }
+ },
+ "runtimeVersion": {
+ "policy": "sdkVersion"
+ },
+ "updates": {
+ "url": "https://u.expo.dev/331d4e5b-b12a-434a-92ec-d6d283dc0e46"
+ }
+ }
+}
\ No newline at end of file
diff --git a/enatega-multivendor-app/assets/icon.png b/enatega-multivendor-app/assets/icon.png
new file mode 100644
index 0000000..b6844c3
Binary files /dev/null and b/enatega-multivendor-app/assets/icon.png differ
diff --git a/enatega-multivendor-app/assets/login-icon.png b/enatega-multivendor-app/assets/login-icon.png
new file mode 100644
index 0000000..9d423aa
Binary files /dev/null and b/enatega-multivendor-app/assets/login-icon.png differ
diff --git a/enatega-multivendor-app/assets/mobile-login.svg b/enatega-multivendor-app/assets/mobile-login.svg
new file mode 100644
index 0000000..74126cb
--- /dev/null
+++ b/enatega-multivendor-app/assets/mobile-login.svg
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SING UP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-app/assets/not-icon.png b/enatega-multivendor-app/assets/not-icon.png
new file mode 100644
index 0000000..53c7d7c
Binary files /dev/null and b/enatega-multivendor-app/assets/not-icon.png differ
diff --git a/enatega-multivendor-app/assets/splash.png b/enatega-multivendor-app/assets/splash.png
new file mode 100644
index 0000000..c6d479b
Binary files /dev/null and b/enatega-multivendor-app/assets/splash.png differ
diff --git a/enatega-multivendor-app/babel.config.js b/enatega-multivendor-app/babel.config.js
new file mode 100644
index 0000000..c2d4a14
--- /dev/null
+++ b/enatega-multivendor-app/babel.config.js
@@ -0,0 +1,7 @@
+module.exports = function(api) {
+ api.cache(true)
+ return {
+ presets: ['babel-preset-expo'],
+ plugins: ['react-native-reanimated/plugin']
+ }
+}
diff --git a/enatega-multivendor-app/dist/assetmap.json b/enatega-multivendor-app/dist/assetmap.json
new file mode 100644
index 0000000..11a6e24
--- /dev/null
+++ b/enatega-multivendor-app/dist/assetmap.json
@@ -0,0 +1 @@
+{"c90fb4585dd852a3d67af39baf923f67":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets","httpServerLocation":"/assets/node_modules/@react-navigation/elements/src/assets","width":12,"height":21,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@1x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@1.5x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@2x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@3x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@4x.ios.png"],"hash":"c90fb4585dd852a3d67af39baf923f67","name":"back-icon","type":"png","fileHashes":["7d40544b395c5949f4646f5e150fe020","cdd04e13d4ec83ff0cd13ec8dabdc341","a132ecc4ba5c1517ff83c0fb321bc7fc","0ea69b5077e7c4696db85dbcba75b0e1","f5b790e2ac193b3d41015edb3551f9b8"]},"5223c8d9b0d08b82a5670fb5f71faf78":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets","httpServerLocation":"/assets/node_modules/@react-navigation/elements/src/assets","width":50,"height":85,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon-mask.png"],"hash":"5223c8d9b0d08b82a5670fb5f71faf78","name":"back-icon-mask","type":"png","fileHashes":["5223c8d9b0d08b82a5670fb5f71faf78"]},"2a8b5fff19012916a50a2032b5b1cf07":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/drawer/src/views/assets","width":24,"height":24,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1.5x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@2x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@3x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@4x.ios.png"],"hash":"2a8b5fff19012916a50a2032b5b1cf07","name":"toggle-drawer-icon","type":"png","fileHashes":["a4e0725c66112486cc6f4ab4e0025528","d916e34c419b7246d59efe2dc965ff75","92342ace2ac52e29a7fce51b89c2cbd0","7c519c6f00d65602c16b98bdffddc6f4","ccb993f31c04afbcca02178df04f4170"]},"3a2ba31570920eeb9b1d217cabe58315":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf"],"hash":"3a2ba31570920eeb9b1d217cabe58315","name":"AntDesign","type":"ttf","fileHashes":["3a2ba31570920eeb9b1d217cabe58315"]},"31b5ffea3daddc69dd01a1f3d6cf63c5":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Entypo.ttf"],"hash":"31b5ffea3daddc69dd01a1f3d6cf63c5","name":"Entypo","type":"ttf","fileHashes":["31b5ffea3daddc69dd01a1f3d6cf63c5"]},"140c53a7643ea949007aa9a282153849":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/EvilIcons.ttf"],"hash":"140c53a7643ea949007aa9a282153849","name":"EvilIcons","type":"ttf","fileHashes":["140c53a7643ea949007aa9a282153849"]},"a76d309774d33d9856f650bed4292a23":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Feather.ttf"],"hash":"a76d309774d33d9856f650bed4292a23","name":"Feather","type":"ttf","fileHashes":["a76d309774d33d9856f650bed4292a23"]},"b49ae8ab2dbccb02c4d11caaacf09eab":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Fontisto.ttf"],"hash":"b49ae8ab2dbccb02c4d11caaacf09eab","name":"Fontisto","type":"ttf","fileHashes":["b49ae8ab2dbccb02c4d11caaacf09eab"]},"b06871f281fee6b241d60582ae9369b9":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome.ttf"],"hash":"b06871f281fee6b241d60582ae9369b9","name":"FontAwesome","type":"ttf","fileHashes":["b06871f281fee6b241d60582ae9369b9"]},"1f77739ca9ff2188b539c36f30ffa2be":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"],"hash":"1f77739ca9ff2188b539c36f30ffa2be","name":"FontAwesome5_Regular","type":"ttf","fileHashes":["1f77739ca9ff2188b539c36f30ffa2be"]},"605ed7926cf39a2ad5ec2d1f9d391d3d":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"],"hash":"605ed7926cf39a2ad5ec2d1f9d391d3d","name":"FontAwesome5_Solid","type":"ttf","fileHashes":["605ed7926cf39a2ad5ec2d1f9d391d3d"]},"3b89dd103490708d19a95adcae52210e":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"],"hash":"3b89dd103490708d19a95adcae52210e","name":"FontAwesome5_Brands","type":"ttf","fileHashes":["3b89dd103490708d19a95adcae52210e"]},"e20945d7c929279ef7a6f1db184a4470":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Foundation.ttf"],"hash":"e20945d7c929279ef7a6f1db184a4470","name":"Foundation","type":"ttf","fileHashes":["e20945d7c929279ef7a6f1db184a4470"]},"b3263095df30cb7db78c613e73f9499a":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Ionicons.ttf"],"hash":"b3263095df30cb7db78c613e73f9499a","name":"Ionicons","type":"ttf","fileHashes":["b3263095df30cb7db78c613e73f9499a"]},"b62641afc9ab487008e996a5c5865e56":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"],"hash":"b62641afc9ab487008e996a5c5865e56","name":"MaterialCommunityIcons","type":"ttf","fileHashes":["b62641afc9ab487008e996a5c5865e56"]},"8ef52a15e44481b41e7db3c7eaf9bb83":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf"],"hash":"8ef52a15e44481b41e7db3c7eaf9bb83","name":"MaterialIcons","type":"ttf","fileHashes":["8ef52a15e44481b41e7db3c7eaf9bb83"]},"f7c53c47a66934504fcbc7cc164895a7":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Octicons.ttf"],"hash":"f7c53c47a66934504fcbc7cc164895a7","name":"Octicons","type":"ttf","fileHashes":["f7c53c47a66934504fcbc7cc164895a7"]},"d2285965fe34b05465047401b8595dd0":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"],"hash":"d2285965fe34b05465047401b8595dd0","name":"SimpleLineIcons","type":"ttf","fileHashes":["d2285965fe34b05465047401b8595dd0"]},"1681f34aaca71b8dfb70756bca331eb2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Zocial.ttf"],"hash":"1681f34aaca71b8dfb70756bca331eb2","name":"Zocial","type":"ttf","fileHashes":["1681f34aaca71b8dfb70756bca331eb2"]},"6a4582aa1a054cd883065d734dfe8085":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_success.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_success@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_success@3x.png"],"hash":"6a4582aa1a054cd883065d734dfe8085","name":"fm_icon_success","type":"png","fileHashes":["4dbc10fd34db70b75c821f766659cb81","80286c9b992fad5b500d5a1f06434b5f","84ad3fe438ba116b007697ae568e22de"]},"b3ba8421448ed5de3c73b15c3ea0e195":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_info.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_info@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_info@3x.png"],"hash":"b3ba8421448ed5de3c73b15c3ea0e195","name":"fm_icon_info","type":"png","fileHashes":["9098f279a79458551f75c67a0f741e7d","dfc580f63d59d8ffbe6a62d000388e86","25be4da7236d5add94db4c612d243b2c"]},"895ec59f4e20939f7bfc6cb0b6174df3":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_warning.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_warning@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_warning@3x.png"],"hash":"895ec59f4e20939f7bfc6cb0b6174df3","name":"fm_icon_warning","type":"png","fileHashes":["f52efad4d6a123c4c4e09241036b80ed","da4303c980b7f993076b634937adaa6b","121f3bcfa420e77f48064983d90ea544"]},"f4c4db1327125793635a1ae504a9d8c2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_danger.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_danger@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-flash-message/src/icons/fm_icon_danger@3x.png"],"hash":"f4c4db1327125793635a1ae504a9d8c2","name":"fm_icon_danger","type":"png","fileHashes":["d37ddbcd08c865194a83f47664629ccd","07ff227fc7d39db4d4903e8367fa30e9","61b13cb6db14eea1a4e083c331ef816c"]},"e8581a38282b437bf50a9c8743d5827f":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/assets","httpServerLocation":"/assets/assets","width":409,"height":449,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/assets/login-icon.png"],"hash":"e8581a38282b437bf50a9c8743d5827f","name":"login-icon","type":"png","fileHashes":["e8581a38282b437bf50a9c8743d5827f"]},"12466ff36f23f268e95685369ab6883b":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-country-picker-modal/lib/assets/images","httpServerLocation":"/assets/node_modules/react-native-country-picker-modal/lib/assets/images","width":512,"height":512,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-country-picker-modal/lib/assets/images/close.android.png"],"hash":"12466ff36f23f268e95685369ab6883b","name":"close.android","type":"png","fileHashes":["12466ff36f23f268e95685369ab6883b"]},"0dc8a49d999a851497c910bbb0afbba2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-country-picker-modal/lib/assets/images","httpServerLocation":"/assets/node_modules/react-native-country-picker-modal/lib/assets/images","width":512,"height":512,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-country-picker-modal/lib/assets/images/close.ios.png"],"hash":"0dc8a49d999a851497c910bbb0afbba2","name":"close","type":"png","fileHashes":["0dc8a49d999a851497c910bbb0afbba2"]},"e618202c0040ec9951ab2358be0833e4":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":607,"height":400,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/food_placeholder.png"],"hash":"e618202c0040ec9951ab2358be0833e4","name":"food_placeholder","type":"png","fileHashes":["e618202c0040ec9951ab2358be0833e4"]},"bc6f01f178e592e1c7d89bbff287ede1":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":64,"height":64,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/cashIcon.png"],"hash":"bc6f01f178e592e1c7d89bbff287ede1","name":"cashIcon","type":"png","fileHashes":["bc6f01f178e592e1c7d89bbff287ede1"]},"06708dfa66ae177bea04b1e23e92c2ae":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":78,"height":72,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/delivery.png"],"hash":"06708dfa66ae177bea04b1e23e92c2ae","name":"delivery","type":"png","fileHashes":["06708dfa66ae177bea04b1e23e92c2ae"]},"53a8ad92e6ec28c9b87bb0bea1de31b6":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":64,"height":64,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/masterIcon.png"],"hash":"53a8ad92e6ec28c9b87bb0bea1de31b6","name":"masterIcon","type":"png","fileHashes":["53a8ad92e6ec28c9b87bb0bea1de31b6"]},"4f9298c63efbb6c7338566f85e7d6f6b":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":64,"height":64,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/visaIcon.png"],"hash":"4f9298c63efbb6c7338566f85e7d6f6b","name":"visaIcon","type":"png","fileHashes":["4f9298c63efbb6c7338566f85e7d6f6b"]},"07d2c72d160870ec4b049291d3454847":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":64,"height":64,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/paypal.png"],"hash":"07d2c72d160870ec4b049291d3454847","name":"paypal","type":"png","fileHashes":["07d2c72d160870ec4b049291d3454847"]},"0c87a71d9f13708bc2afb77a8b544a0b":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-google-places-autocomplete/images","httpServerLocation":"/assets/node_modules/react-native-google-places-autocomplete/images","width":144,"height":18,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-google-places-autocomplete/images/powered_by_google_on_white.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-google-places-autocomplete/images/powered_by_google_on_white@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-google-places-autocomplete/images/powered_by_google_on_white@3x.png"],"hash":"0c87a71d9f13708bc2afb77a8b544a0b","name":"powered_by_google_on_white","type":"png","fileHashes":["5e1218b10c1558a03d57e2aa7746552b","3894e74f02d02e84351781c358026d5a","cd72971a8a0413f5519e6827d89763cf"]},"1da3b2b813b00e35c95c567939d8773d":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":46,"height":51,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/user.png"],"hash":"1da3b2b813b00e35c95c567939d8773d","name":"user","type":"png","fileHashes":["1da3b2b813b00e35c95c567939d8773d"]},"2379ae894c2c9f63b852a9f3676c2763":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-paper/src/assets","httpServerLocation":"/assets/node_modules/react-native-paper/src/assets","width":63,"height":63,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/react-native-paper/src/assets/back-chevron.png"],"hash":"2379ae894c2c9f63b852a9f3676c2763","name":"back-chevron","type":"png","fileHashes":["2379ae894c2c9f63b852a9f3676c2763"]},"b59da1f6dc561a40cf8f2cc5e371916b":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images","httpServerLocation":"/assets/src/assets/images","width":34,"height":37,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/images/res.png"],"hash":"b59da1f6dc561a40cf8f2cc5e371916b","name":"res","type":"png","fileHashes":["b59da1f6dc561a40cf8f2cc5e371916b"]},"ee01ab27438661d75d4098c4f9239ac2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/font/MuseoSans","httpServerLocation":"/assets/src/assets/font/MuseoSans","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans300.ttf"],"hash":"ee01ab27438661d75d4098c4f9239ac2","name":"MuseoSans300","type":"ttf","fileHashes":["ee01ab27438661d75d4098c4f9239ac2"]},"00b9402278151d933c0c4e467bb759c4":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/font/MuseoSans","httpServerLocation":"/assets/src/assets/font/MuseoSans","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans500.ttf"],"hash":"00b9402278151d933c0c4e467bb759c4","name":"MuseoSans500","type":"ttf","fileHashes":["00b9402278151d933c0c4e467bb759c4"]},"af882e20c950f9cb6443dfc4162bba53":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/font/MuseoSans","httpServerLocation":"/assets/src/assets/font/MuseoSans","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans700.ttf"],"hash":"af882e20c950f9cb6443dfc4162bba53","name":"MuseoSans700","type":"ttf","fileHashes":["af882e20c950f9cb6443dfc4162bba53"]},"a364dc7a784101f7c8f6791c7b4514ce":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets","httpServerLocation":"/assets/node_modules/@react-navigation/elements/src/assets","width":24,"height":24,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@1x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@1.5x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@2x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@3x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/elements/src/assets/back-icon@4x.android.png"],"hash":"a364dc7a784101f7c8f6791c7b4514ce","name":"back-icon","type":"png","fileHashes":["778ffc9fe8773a878e9c30a6304784de","376d6a4c7f622917c39feb23671ef71d","c79c3606a1cf168006ad3979763c7e0c","02bc1fa7c0313217bde2d65ccbff40c9","35ba0eaec5a4f5ed12ca16fabeae451d"]},"8ca25a8090835447d6d606ecaac9e240":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/drawer/src/views/assets","width":24,"height":24,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1.5x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@2x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@3x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-app/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@4x.android.png"],"hash":"8ca25a8090835447d6d606ecaac9e240","name":"toggle-drawer-icon","type":"png","fileHashes":["665d9d6a3227c85fcb50f3f86ccad80c","f39b4d4f351495ad948f880253d58943","ddf6610eb512edae2ba722a7212c3ecc","a5e0abbdbd82bc804c2eb86eff046d52","ae74bb20586a731af545e6b00fe14a09"]}}
\ No newline at end of file
diff --git a/enatega-multivendor-app/dist/debug.html b/enatega-multivendor-app/dist/debug.html
new file mode 100644
index 0000000..cc1e27e
--- /dev/null
+++ b/enatega-multivendor-app/dist/debug.html
@@ -0,0 +1,6 @@
+
+
+
+ Open up this file in Chrome. In the JavaScript developer console, navigate to the Source tab.
+ You can see a red colored folder containing the original source code from your bundle.
+
\ No newline at end of file
diff --git a/enatega-multivendor-app/dist/metadata.json b/enatega-multivendor-app/dist/metadata.json
new file mode 100644
index 0000000..8ad4e57
--- /dev/null
+++ b/enatega-multivendor-app/dist/metadata.json
@@ -0,0 +1 @@
+{"version":0,"bundler":"metro","fileMetadata":{"ios":{"bundle":"bundles/ios-7e144155ad52f2797b61c353fbdfa771.js","assets":[{"path":"assets/7d40544b395c5949f4646f5e150fe020","ext":"png"},{"path":"assets/cdd04e13d4ec83ff0cd13ec8dabdc341","ext":"png"},{"path":"assets/a132ecc4ba5c1517ff83c0fb321bc7fc","ext":"png"},{"path":"assets/0ea69b5077e7c4696db85dbcba75b0e1","ext":"png"},{"path":"assets/f5b790e2ac193b3d41015edb3551f9b8","ext":"png"},{"path":"assets/5223c8d9b0d08b82a5670fb5f71faf78","ext":"png"},{"path":"assets/a4e0725c66112486cc6f4ab4e0025528","ext":"png"},{"path":"assets/d916e34c419b7246d59efe2dc965ff75","ext":"png"},{"path":"assets/92342ace2ac52e29a7fce51b89c2cbd0","ext":"png"},{"path":"assets/7c519c6f00d65602c16b98bdffddc6f4","ext":"png"},{"path":"assets/ccb993f31c04afbcca02178df04f4170","ext":"png"},{"path":"assets/3a2ba31570920eeb9b1d217cabe58315","ext":"ttf"},{"path":"assets/31b5ffea3daddc69dd01a1f3d6cf63c5","ext":"ttf"},{"path":"assets/140c53a7643ea949007aa9a282153849","ext":"ttf"},{"path":"assets/a76d309774d33d9856f650bed4292a23","ext":"ttf"},{"path":"assets/b49ae8ab2dbccb02c4d11caaacf09eab","ext":"ttf"},{"path":"assets/b06871f281fee6b241d60582ae9369b9","ext":"ttf"},{"path":"assets/1f77739ca9ff2188b539c36f30ffa2be","ext":"ttf"},{"path":"assets/605ed7926cf39a2ad5ec2d1f9d391d3d","ext":"ttf"},{"path":"assets/3b89dd103490708d19a95adcae52210e","ext":"ttf"},{"path":"assets/e20945d7c929279ef7a6f1db184a4470","ext":"ttf"},{"path":"assets/b3263095df30cb7db78c613e73f9499a","ext":"ttf"},{"path":"assets/b62641afc9ab487008e996a5c5865e56","ext":"ttf"},{"path":"assets/8ef52a15e44481b41e7db3c7eaf9bb83","ext":"ttf"},{"path":"assets/f7c53c47a66934504fcbc7cc164895a7","ext":"ttf"},{"path":"assets/d2285965fe34b05465047401b8595dd0","ext":"ttf"},{"path":"assets/1681f34aaca71b8dfb70756bca331eb2","ext":"ttf"},{"path":"assets/4dbc10fd34db70b75c821f766659cb81","ext":"png"},{"path":"assets/80286c9b992fad5b500d5a1f06434b5f","ext":"png"},{"path":"assets/84ad3fe438ba116b007697ae568e22de","ext":"png"},{"path":"assets/9098f279a79458551f75c67a0f741e7d","ext":"png"},{"path":"assets/dfc580f63d59d8ffbe6a62d000388e86","ext":"png"},{"path":"assets/25be4da7236d5add94db4c612d243b2c","ext":"png"},{"path":"assets/f52efad4d6a123c4c4e09241036b80ed","ext":"png"},{"path":"assets/da4303c980b7f993076b634937adaa6b","ext":"png"},{"path":"assets/121f3bcfa420e77f48064983d90ea544","ext":"png"},{"path":"assets/d37ddbcd08c865194a83f47664629ccd","ext":"png"},{"path":"assets/07ff227fc7d39db4d4903e8367fa30e9","ext":"png"},{"path":"assets/61b13cb6db14eea1a4e083c331ef816c","ext":"png"},{"path":"assets/e8581a38282b437bf50a9c8743d5827f","ext":"png"},{"path":"assets/12466ff36f23f268e95685369ab6883b","ext":"png"},{"path":"assets/0dc8a49d999a851497c910bbb0afbba2","ext":"png"},{"path":"assets/e618202c0040ec9951ab2358be0833e4","ext":"png"},{"path":"assets/bc6f01f178e592e1c7d89bbff287ede1","ext":"png"},{"path":"assets/06708dfa66ae177bea04b1e23e92c2ae","ext":"png"},{"path":"assets/53a8ad92e6ec28c9b87bb0bea1de31b6","ext":"png"},{"path":"assets/4f9298c63efbb6c7338566f85e7d6f6b","ext":"png"},{"path":"assets/07d2c72d160870ec4b049291d3454847","ext":"png"},{"path":"assets/5e1218b10c1558a03d57e2aa7746552b","ext":"png"},{"path":"assets/3894e74f02d02e84351781c358026d5a","ext":"png"},{"path":"assets/cd72971a8a0413f5519e6827d89763cf","ext":"png"},{"path":"assets/1da3b2b813b00e35c95c567939d8773d","ext":"png"},{"path":"assets/2379ae894c2c9f63b852a9f3676c2763","ext":"png"},{"path":"assets/b59da1f6dc561a40cf8f2cc5e371916b","ext":"png"},{"path":"assets/ee01ab27438661d75d4098c4f9239ac2","ext":"ttf"},{"path":"assets/00b9402278151d933c0c4e467bb759c4","ext":"ttf"},{"path":"assets/af882e20c950f9cb6443dfc4162bba53","ext":"ttf"}]},"android":{"bundle":"bundles/android-804882c4b00466ebe072ed5448a03603.js","assets":[{"path":"assets/778ffc9fe8773a878e9c30a6304784de","ext":"png"},{"path":"assets/376d6a4c7f622917c39feb23671ef71d","ext":"png"},{"path":"assets/c79c3606a1cf168006ad3979763c7e0c","ext":"png"},{"path":"assets/02bc1fa7c0313217bde2d65ccbff40c9","ext":"png"},{"path":"assets/35ba0eaec5a4f5ed12ca16fabeae451d","ext":"png"},{"path":"assets/5223c8d9b0d08b82a5670fb5f71faf78","ext":"png"},{"path":"assets/665d9d6a3227c85fcb50f3f86ccad80c","ext":"png"},{"path":"assets/f39b4d4f351495ad948f880253d58943","ext":"png"},{"path":"assets/ddf6610eb512edae2ba722a7212c3ecc","ext":"png"},{"path":"assets/a5e0abbdbd82bc804c2eb86eff046d52","ext":"png"},{"path":"assets/ae74bb20586a731af545e6b00fe14a09","ext":"png"},{"path":"assets/3a2ba31570920eeb9b1d217cabe58315","ext":"ttf"},{"path":"assets/31b5ffea3daddc69dd01a1f3d6cf63c5","ext":"ttf"},{"path":"assets/140c53a7643ea949007aa9a282153849","ext":"ttf"},{"path":"assets/a76d309774d33d9856f650bed4292a23","ext":"ttf"},{"path":"assets/b49ae8ab2dbccb02c4d11caaacf09eab","ext":"ttf"},{"path":"assets/b06871f281fee6b241d60582ae9369b9","ext":"ttf"},{"path":"assets/1f77739ca9ff2188b539c36f30ffa2be","ext":"ttf"},{"path":"assets/605ed7926cf39a2ad5ec2d1f9d391d3d","ext":"ttf"},{"path":"assets/3b89dd103490708d19a95adcae52210e","ext":"ttf"},{"path":"assets/e20945d7c929279ef7a6f1db184a4470","ext":"ttf"},{"path":"assets/b3263095df30cb7db78c613e73f9499a","ext":"ttf"},{"path":"assets/b62641afc9ab487008e996a5c5865e56","ext":"ttf"},{"path":"assets/8ef52a15e44481b41e7db3c7eaf9bb83","ext":"ttf"},{"path":"assets/f7c53c47a66934504fcbc7cc164895a7","ext":"ttf"},{"path":"assets/d2285965fe34b05465047401b8595dd0","ext":"ttf"},{"path":"assets/1681f34aaca71b8dfb70756bca331eb2","ext":"ttf"},{"path":"assets/4dbc10fd34db70b75c821f766659cb81","ext":"png"},{"path":"assets/80286c9b992fad5b500d5a1f06434b5f","ext":"png"},{"path":"assets/84ad3fe438ba116b007697ae568e22de","ext":"png"},{"path":"assets/9098f279a79458551f75c67a0f741e7d","ext":"png"},{"path":"assets/dfc580f63d59d8ffbe6a62d000388e86","ext":"png"},{"path":"assets/25be4da7236d5add94db4c612d243b2c","ext":"png"},{"path":"assets/f52efad4d6a123c4c4e09241036b80ed","ext":"png"},{"path":"assets/da4303c980b7f993076b634937adaa6b","ext":"png"},{"path":"assets/121f3bcfa420e77f48064983d90ea544","ext":"png"},{"path":"assets/d37ddbcd08c865194a83f47664629ccd","ext":"png"},{"path":"assets/07ff227fc7d39db4d4903e8367fa30e9","ext":"png"},{"path":"assets/61b13cb6db14eea1a4e083c331ef816c","ext":"png"},{"path":"assets/e8581a38282b437bf50a9c8743d5827f","ext":"png"},{"path":"assets/12466ff36f23f268e95685369ab6883b","ext":"png"},{"path":"assets/0dc8a49d999a851497c910bbb0afbba2","ext":"png"},{"path":"assets/e618202c0040ec9951ab2358be0833e4","ext":"png"},{"path":"assets/bc6f01f178e592e1c7d89bbff287ede1","ext":"png"},{"path":"assets/06708dfa66ae177bea04b1e23e92c2ae","ext":"png"},{"path":"assets/53a8ad92e6ec28c9b87bb0bea1de31b6","ext":"png"},{"path":"assets/4f9298c63efbb6c7338566f85e7d6f6b","ext":"png"},{"path":"assets/07d2c72d160870ec4b049291d3454847","ext":"png"},{"path":"assets/5e1218b10c1558a03d57e2aa7746552b","ext":"png"},{"path":"assets/3894e74f02d02e84351781c358026d5a","ext":"png"},{"path":"assets/cd72971a8a0413f5519e6827d89763cf","ext":"png"},{"path":"assets/1da3b2b813b00e35c95c567939d8773d","ext":"png"},{"path":"assets/2379ae894c2c9f63b852a9f3676c2763","ext":"png"},{"path":"assets/b59da1f6dc561a40cf8f2cc5e371916b","ext":"png"},{"path":"assets/ee01ab27438661d75d4098c4f9239ac2","ext":"ttf"},{"path":"assets/00b9402278151d933c0c4e467bb759c4","ext":"ttf"},{"path":"assets/af882e20c950f9cb6443dfc4162bba53","ext":"ttf"}]}}}
\ No newline at end of file
diff --git a/enatega-multivendor-app/eas.json b/enatega-multivendor-app/eas.json
new file mode 100644
index 0000000..37207f5
--- /dev/null
+++ b/enatega-multivendor-app/eas.json
@@ -0,0 +1,38 @@
+{
+ "build": {
+ "development": {
+ "developmentClient": true,
+ "distribution": "internal",
+ "android": {
+ "buildType": "apk"
+ },
+ "ios": {
+ "simulator": true
+ }
+ },
+ "staging": {
+ "developmentClient": false,
+ "releaseChannel": "staging",
+ "distribution": "internal"
+ },
+ "production": {
+ "channel": "production"
+ }
+ },
+ "submit": {
+ "production": {
+ "android": {
+ "serviceAccountKeyPath": "./google-service-account.json",
+ "track": "production"
+ },
+ "ios": {
+ "appleId": "sharan.gohar@icloud.com",
+ "ascAppId": "1526488093",
+ "appleTeamId": "GDFK7MVY6P"
+ }
+ }
+ },
+ "cli": {
+ "version": ">= 0.43.0"
+ }
+}
diff --git a/enatega-multivendor-app/environment.js b/enatega-multivendor-app/environment.js
new file mode 100644
index 0000000..a0665ea
--- /dev/null
+++ b/enatega-multivendor-app/environment.js
@@ -0,0 +1,51 @@
+// /*****************************
+// * environment.js
+// * path: '/environment.js' (root of your project)
+// ******************************/
+
+import { useContext } from 'react'
+import ConfigurationContext from './src/context/Configuration'
+import * as Updates from 'expo-updates'
+
+const useEnvVars = (env = Updates.releaseChannel) => {
+ const configuration = useContext(ConfigurationContext)
+
+ if (env === 'production' || env === 'staging') {
+ return {
+ GRAPHQL_URL: 'https://enatega-multivendor.up.railway.app/graphql',
+ WS_GRAPHQL_URL: 'wss://enatega-multivendor.up.railway.app/graphql',
+ SERVER_URL: 'https://enatega-multivendor.up.railway.app/',
+ IOS_CLIENT_ID_GOOGLE: configuration.iosClientIdGoogle,
+ ANDROID_CLIENT_ID_GOOGLE: configuration.androidClientIdGoogle,
+ AMPLITUDE_API_KEY: configuration.appAmplitudeApiKey,
+ GOOGLE_MAPS_KEY: configuration.googleApiKey,
+ EXPO_CLIENT_ID: configuration.expoClientId,
+ SENTRY_DSN: configuration.customerAppSentryUrl,
+ TERMS_AND_CONDITIONS: configuration.termsAndConditions,
+ PRIVACY_POLICY: configuration.privacyPolicy,
+ TEST_OTP: configuration.testOtp,
+ GOOGLE_PACES_API_BASE_URL: configuration.googlePlacesApiBaseUrl
+ }
+ }
+
+ return {
+ GRAPHQL_URL: 'https://enatega-multivendor.up.railway.app/graphql',
+ WS_GRAPHQL_URL: 'wss://enatega-multivendor.up.railway.app/graphql',
+ SERVER_URL: 'https://enatega-multivendor.up.railway.app/',
+ // GRAPHQL_URL: 'http://10.97.37.244:8001/graphql',
+ // WS_GRAPHQL_URL: 'ws://10.97.37.244:8001/graphql',
+ // SERVER_URL: 'http://10.97.37.244:8001/',
+ IOS_CLIENT_ID_GOOGLE: configuration.iOSClientID,
+ ANDROID_CLIENT_ID_GOOGLE: configuration.androidClientID,
+ AMPLITUDE_API_KEY: configuration.appAmplitudeApiKey,
+ GOOGLE_MAPS_KEY: configuration.googleApiKey,
+ EXPO_CLIENT_ID: configuration.expoClientID,
+ SENTRY_DSN: configuration.customerAppSentryUrl,
+ TERMS_AND_CONDITIONS: configuration.termsAndConditions,
+ PRIVACY_POLICY: configuration.privacyPolicy,
+ TEST_OTP: configuration.testOtp,
+ GOOGLE_PACES_API_BASE_URL: configuration.googlePlacesApiBaseUrl
+ }
+}
+
+export default useEnvVars
diff --git a/enatega-multivendor-app/environment.js.example b/enatega-multivendor-app/environment.js.example
new file mode 100644
index 0000000..546ee39
--- /dev/null
+++ b/enatega-multivendor-app/environment.js.example
@@ -0,0 +1,38 @@
+/*****************************
+* environment.js
+* path: '/environment.js' (root of your project)
+******************************/
+
+import Constants from 'expo-constants';
+
+const ENV = {
+ development: {
+ GRAPHQL_URL:'' ,
+ SERVER_URL: '', // put / at the end of server url
+ IOS_CLIENT_ID_GOOGLE: "",
+ ANDROID_CLIENT_ID_GOOGLE: "",
+ AMPLITUDE_API_KEY: "",
+ },
+ production: {
+ GRAPHQL_URL:'' ,
+ SERVER_URL: '', // put / at the end of server url
+ IOS_CLIENT_ID_GOOGLE: "",
+ ANDROID_CLIENT_ID_GOOGLE: "",
+ AMPLITUDE_API_KEY: "",
+ }
+};
+
+const getEnvVars = (env = Constants.manifest.releaseChannel) => {
+ // What is __DEV__ ?
+ // This variable is set to true when react-native is running in Dev mode.
+ // __DEV__ is true when run locally, but false when published.
+ if (__DEV__) {
+ return ENV.development;
+ } else if (env === 'production') {
+ return ENV.production;
+ } else {
+ return ENV.development;
+ }
+};
+
+export default getEnvVars;
\ No newline at end of file
diff --git a/enatega-multivendor-app/i18next.js b/enatega-multivendor-app/i18next.js
new file mode 100644
index 0000000..5657636
--- /dev/null
+++ b/enatega-multivendor-app/i18next.js
@@ -0,0 +1,45 @@
+import i18next from 'i18next'
+import { initReactI18next } from 'react-i18next'
+import * as Localization from 'expo-localization'
+import { Platform } from 'react-native'
+import { en } from './translations/en'
+import { de } from './translations/de'
+import { fr } from './translations/fr'
+import { km } from './translations/km'
+import { zh } from './translations/zh'
+import { ar } from './translations/ar'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+export const languageResources = {
+ en: { translation: en },
+ zh: { translation: zh },
+ de: { translation: de },
+ fr: { translation: fr },
+ km: { translation: km },
+ ar: { translation: ar }
+}
+const getStoredLanguage = async () => {
+ const lng = await AsyncStorage.getItem('enatega-language')
+ console.log(lng)
+ i18next.use(initReactI18next).init({
+ compatibilityJSON: 'v3',
+ lng: lng,
+ fallbackLng: 'en',
+ resources: languageResources
+ })
+}
+if (Platform.OS === 'android') {
+ getStoredLanguage()
+}
+if (Platform.OS === 'ios') {
+ i18next.locale = Localization.locale
+ i18next.use(initReactI18next).init({
+ compatibilityJSON: 'v3',
+ lng: i18next.locale,
+ fallbackLng: 'en',
+ resources: languageResources
+ })
+
+ i18next.changeLanguage(i18next.locale)
+}
+
+export default i18next
diff --git a/enatega-multivendor-app/index.js b/enatega-multivendor-app/index.js
new file mode 100644
index 0000000..ef3e322
--- /dev/null
+++ b/enatega-multivendor-app/index.js
@@ -0,0 +1,11 @@
+import 'expo-dev-client'
+
+import 'react-native-gesture-handler'
+import { registerRootComponent } from 'expo'
+
+import App from './App'
+
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
+// It also ensures that whether you load the app in Expo Go or in a native build,
+// the environment is set up appropriately
+registerRootComponent(App)
diff --git a/enatega-multivendor-app/metro.config.js b/enatega-multivendor-app/metro.config.js
new file mode 100644
index 0000000..039dc76
--- /dev/null
+++ b/enatega-multivendor-app/metro.config.js
@@ -0,0 +1,4 @@
+const { getDefaultConfig } = require('@expo/metro-config')
+const defaultConfig = getDefaultConfig(__dirname)
+defaultConfig.resolver.sourceExts.push('cjs')
+module.exports = defaultConfig
diff --git a/enatega-multivendor-app/package-lock.json b/enatega-multivendor-app/package-lock.json
new file mode 100644
index 0000000..5b3dbd0
--- /dev/null
+++ b/enatega-multivendor-app/package-lock.json
@@ -0,0 +1,18058 @@
+{
+ "name": "enatega-full-app",
+ "version": "5.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "enatega-full-app",
+ "version": "5.0.0",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@amplitude/analytics-react-native": "^1.1.1",
+ "@apollo/client": "^3.5.6",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@expo/vector-icons": "^14.0.0",
+ "@react-native-async-storage/async-storage": "1.21.0",
+ "@react-native-community/datetimepicker": "7.6.1",
+ "@react-native-google-signin/google-signin": "^11.0.0",
+ "@react-navigation/drawer": "^6.3.0",
+ "@react-navigation/elements": "^1.2.1",
+ "@react-navigation/native": "^6.0.6",
+ "@react-navigation/stack": "^6.0.11",
+ "@sentry/react-native": "5.17.0",
+ "@twotalltotems/react-native-otp-input": "^1.3.11",
+ "core-js": "^3.33.3",
+ "deprecated-react-native-prop-types": "^5.0.0",
+ "expo": "~50.0.3",
+ "expo-apple-authentication": "~6.3.0",
+ "expo-application": "~5.8.3",
+ "expo-constants": "~15.4.5",
+ "expo-crypto": "~12.8.0",
+ "expo-dev-client": "~3.3.8",
+ "expo-device": "~5.9.3",
+ "expo-font": "~11.10.2",
+ "expo-image-picker": "~14.7.1",
+ "expo-linking": "~6.2.2",
+ "expo-localization": "~14.8.3",
+ "expo-location": "~16.5.2",
+ "expo-notifications": "~0.27.5",
+ "expo-random": "~13.6.0",
+ "expo-splash-screen": "~0.26.4",
+ "expo-system-ui": "~2.9.3",
+ "expo-tracking-transparency": "~3.3.0",
+ "expo-updates": "~0.24.10",
+ "expo-web-browser": "~12.8.2",
+ "graphql": "^16.8.1",
+ "graphql-tag": "^2.10.1",
+ "i18n-js": "^4.3.2",
+ "i18next": "^23.7.6",
+ "install": "^0.13.0",
+ "moment": "^2.29.1",
+ "patch-package": "^8.0.0",
+ "react": "18.2.0",
+ "react-i18next": "^14.0.1",
+ "react-native": "0.73.4",
+ "react-native-button": "^3.0.1",
+ "react-native-country-picker-modal": "^2.0.0",
+ "react-native-flash-message": "^0.4.2",
+ "react-native-gesture-handler": "~2.14.0",
+ "react-native-gifted-chat": "^2.4.0",
+ "react-native-google-places-autocomplete": "^2.1.1",
+ "react-native-maps": "1.10.0",
+ "react-native-material-textfield": "^0.16.1",
+ "react-native-modal": "^13.0.1",
+ "react-native-modalize": "^2.0.13",
+ "react-native-paper": "^5.8.0",
+ "react-native-phone-number-input": "^2.1.0",
+ "react-native-reanimated": "~3.6.2",
+ "react-native-safe-area-context": "4.8.2",
+ "react-native-screens": "~3.29.0",
+ "react-native-star-rating": "^1.1.0",
+ "react-native-svg": "14.1.0",
+ "react-native-webview": "13.6.4",
+ "react-navigation-collapsible": "^6.3.0",
+ "rn-placeholder": "^3.0.1",
+ "sentry-expo": "~7.2.0",
+ "subscriptions-transport-ws": "^0.11.0",
+ "uglify-js": "^3.17.4",
+ "uuid": "^9.0.1"
+ },
+ "devDependencies": {
+ "@expo/metro-config": "^0.17.3",
+ "babel-preset-expo": "^10.0.0",
+ "babel-preset-react-native": "^4.0.1",
+ "eslint": "^8.56.0",
+ "eslint-config-standard": "^17.1.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^6.1.1",
+ "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-standard": "^5.0.0",
+ "husky": "^8.0.3",
+ "lint-staged": "^15.2.0",
+ "metro-react-native-babel-preset": "^0.77.0",
+ "prettier": "^3.2.4",
+ "prettier-config-standard": "^7.0.0",
+ "react-test-renderer": "^18.2.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/@amplitude/analytics-client-common": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-client-common/-/analytics-client-common-1.2.2.tgz",
+ "integrity": "sha512-vwGgVXl9FKEi99OzjqqhX8RrulQQ55aAllhgbdyxpyyAQ5NbbZOPdrxp1ow0oliCVvbSDgUYOAeAwTChIgnStA==",
+ "dependencies": {
+ "@amplitude/analytics-connector": "^1.5.0",
+ "@amplitude/analytics-core": "^1.2.5",
+ "@amplitude/analytics-types": "^1.3.4",
+ "tslib": "^2.4.1"
+ }
+ },
+ "node_modules/@amplitude/analytics-connector": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-connector/-/analytics-connector-1.5.0.tgz",
+ "integrity": "sha512-T8mOYzB9RRxckzhL0NTHwdge9xuFxXEOplC8B1Y3UX3NHa3BLh7DlBUZlCOwQgMc2nxDfnSweDL5S3bhC+W90g=="
+ },
+ "node_modules/@amplitude/analytics-core": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-1.2.5.tgz",
+ "integrity": "sha512-V7CVlHVN+1diKiOpdp2bCPZ0mbS4CmUYF+v+eXDwVfJL3M/t3sVcT1apXnmVYGYi14cGu9hQOD11rD6qKbUOsw==",
+ "dependencies": {
+ "@amplitude/analytics-types": "^1.3.4",
+ "tslib": "^2.4.1"
+ }
+ },
+ "node_modules/@amplitude/analytics-react-native": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-react-native/-/analytics-react-native-1.4.7.tgz",
+ "integrity": "sha512-3Fiu+O1rsfAY37Zh3oUMxaDwV0KCDdoshsHphpjtE0WJc8AMjCC2mcSlBgC/FUqrz/8H6UY+8D8FZeN8wpqujA==",
+ "dependencies": {
+ "@amplitude/analytics-client-common": "^1.2.2",
+ "@amplitude/analytics-core": "^1.2.5",
+ "@amplitude/analytics-types": "^1.3.4",
+ "@amplitude/ua-parser-js": "^0.7.31",
+ "@react-native-async-storage/async-storage": "^1.17.11",
+ "tslib": "^2.4.1"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@amplitude/analytics-types": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-types/-/analytics-types-1.3.4.tgz",
+ "integrity": "sha512-tR70gzqFkEzX9QpxvWYMfLCledT7vMhgd3d4/bkp3nnGXTOORaVUOCcSgOyxyuFdSx84T61aP/eZPKIcZcaP+A=="
+ },
+ "node_modules/@amplitude/ua-parser-js": {
+ "version": "0.7.33",
+ "resolved": "https://registry.npmjs.org/@amplitude/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
+ "integrity": "sha512-wKEtVR4vXuPT9cVEIJkYWnlF++Gx3BdLatPBM+SZ1ztVIvnhdGBZR/mn9x/PzyrMcRlZmyi6L56I2J3doVBnjA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@apollo/client": {
+ "version": "3.9.7",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.7.tgz",
+ "integrity": "sha512-OEEwt55bkFhqihCT5d75KUxZt50JZ9MuIYwG7VZlyPPIAb9K+qzVWlXWlf3tB5DaV43yXkUSLQfNpdIBFOB55Q==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@wry/caches": "^1.0.0",
+ "@wry/equality": "^0.5.6",
+ "@wry/trie": "^0.5.0",
+ "graphql-tag": "^2.12.6",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.18.0",
+ "prop-types": "^15.7.2",
+ "rehackt": "0.0.6",
+ "response-iterator": "^0.2.6",
+ "symbol-observable": "^4.0.0",
+ "ts-invariant": "^0.10.3",
+ "tslib": "^2.3.0",
+ "zen-observable-ts": "^1.2.5"
+ },
+ "peerDependencies": {
+ "graphql": "^15.0.0 || ^16.0.0",
+ "graphql-ws": "^5.5.5",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "subscriptions-transport-ws": "^0.9.0 || ^0.11.0"
+ },
+ "peerDependenciesMeta": {
+ "graphql-ws": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "subscriptions-transport-ws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/code-frame/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/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/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz",
+ "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.24.0",
+ "@babel/parser": "^7.24.0",
+ "@babel/template": "^7.24.0",
+ "@babel/traverse": "^7.24.0",
+ "@babel/types": "^7.24.0",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dependencies": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz",
+ "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz",
+ "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dependencies": {
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz",
+ "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz",
+ "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==",
+ "dependencies": {
+ "@babel/template": "^7.24.0",
+ "@babel/traverse": "^7.24.0",
+ "@babel/types": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/highlight/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/parser": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz",
+ "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
+ "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.23.3",
+ "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.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
+ "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz",
+ "integrity": "sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.24.0",
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/plugin-syntax-decorators": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-default-from": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
+ "dependencies": {
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.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-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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-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.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz",
+ "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.0"
+ },
+ "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-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
+ "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
+ "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-flow-strip-types": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-flow": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
+ "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
+ "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-numeric-separator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-assign": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.23.3.tgz",
+ "integrity": "sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz",
+ "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-optional-chaining": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz",
+ "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz",
+ "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/types": "^7.23.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
+ "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz",
+ "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz",
+ "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz",
+ "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz",
+ "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz",
+ "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@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-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.9",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.4",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.4",
+ "@babel/plugin-transform-classes": "^7.23.8",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.4",
+ "@babel/plugin-transform-for-of": "^7.23.6",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.4",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.9",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
+ "@babel/plugin-transform-numeric-separator": "^7.23.4",
+ "@babel/plugin-transform-object-rest-spread": "^7.24.0",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@babel/plugin-transform-optional-chaining": "^7.23.4",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-flow": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.0.tgz",
+ "integrity": "sha512-cum/nSi82cDaSJ21I4PgLTVlj0OXovFk6GRguJYe/IKg6y6JHLTbJhybtX4k35WT9wdeJfEVjycTixMhBHd0Dg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-transform-flow-strip-types": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz",
+ "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-react-display-name": "^7.23.3",
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
+ "@babel/plugin-transform-react-jsx-development": "^7.22.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/register": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz",
+ "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "find-cache-dir": "^2.0.0",
+ "make-dir": "^2.1.0",
+ "pirates": "^4.0.6",
+ "source-map-support": "^0.5.16"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz",
+ "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/runtime/node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+ },
+ "node_modules/@babel/template": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
+ "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.24.0",
+ "@babel/types": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz",
+ "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.24.0",
+ "@babel/types": "^7.24.0",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz",
+ "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@callstack/react-theme-provider": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.3.tgz",
+ "integrity": "sha512-B+9JBK7zsND/AdVkjwHvbb4cR05fJofLFG30hOeoXke8WkKAWN36yFljauAhI8qwlXlGFGZMYE1wQvsqBSccrA==",
+ "dependencies": {
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "deepmerge": "^3.2.0",
+ "hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0"
+ }
+ },
+ "node_modules/@callstack/react-theme-provider/node_modules/deepmerge": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
+ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@egjs/hammerjs": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
+ "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
+ "dependencies": {
+ "@types/hammerjs": "^2.0.36"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "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.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "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/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@eslint/js": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@expo/bunyan": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
+ "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==",
+ "engines": [
+ "node >=0.10.0"
+ ],
+ "dependencies": {
+ "uuid": "^8.0.0"
+ },
+ "optionalDependencies": {
+ "mv": "~2",
+ "safe-json-stringify": "~1"
+ }
+ },
+ "node_modules/@expo/bunyan/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/@expo/cli": {
+ "version": "0.17.8",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.17.8.tgz",
+ "integrity": "sha512-yfkoghCltbGPDbRI71Qu3puInjXx4wO82+uhW82qbWLvosfIN7ep5Gr0Lq54liJpvlUG6M0IXM1GiGqcCyP12w==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/devcert": "^1.0.0",
+ "@expo/env": "~0.2.2",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "@expo/metro-config": "~0.17.0",
+ "@expo/osascript": "^2.0.31",
+ "@expo/package-manager": "^1.1.1",
+ "@expo/plist": "^0.1.0",
+ "@expo/prebuild-config": "6.7.4",
+ "@expo/rudder-sdk-node": "1.1.1",
+ "@expo/spawn-async": "1.5.0",
+ "@expo/xcpretty": "^4.3.0",
+ "@react-native/dev-middleware": "^0.73.6",
+ "@urql/core": "2.3.6",
+ "@urql/exchange-retry": "0.3.0",
+ "accepts": "^1.3.8",
+ "arg": "5.0.2",
+ "better-opn": "~3.0.2",
+ "bplist-parser": "^0.3.1",
+ "cacache": "^15.3.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.3.0",
+ "connect": "^3.7.0",
+ "debug": "^4.3.4",
+ "env-editor": "^0.4.1",
+ "find-yarn-workspace-root": "~2.0.0",
+ "form-data": "^3.0.1",
+ "freeport-async": "2.0.0",
+ "fs-extra": "~8.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.1.7",
+ "graphql": "15.8.0",
+ "graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
+ "internal-ip": "4.3.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
+ "js-yaml": "^3.13.1",
+ "json-schema-deref-sync": "^0.13.0",
+ "lodash.debounce": "^4.0.8",
+ "md5hex": "^1.0.0",
+ "minimatch": "^3.0.4",
+ "minipass": "3.3.6",
+ "node-fetch": "^2.6.7",
+ "node-forge": "^1.3.1",
+ "npm-package-arg": "^7.0.0",
+ "open": "^8.3.0",
+ "ora": "3.4.0",
+ "picomatch": "^3.0.1",
+ "pretty-bytes": "5.6.0",
+ "progress": "2.0.3",
+ "prompts": "^2.3.2",
+ "qrcode-terminal": "0.11.0",
+ "require-from-string": "^2.0.2",
+ "requireg": "^0.2.2",
+ "resolve": "^1.22.2",
+ "resolve-from": "^5.0.0",
+ "resolve.exports": "^2.0.2",
+ "semver": "^7.5.3",
+ "send": "^0.18.0",
+ "slugify": "^1.3.4",
+ "source-map-support": "~0.5.21",
+ "stacktrace-parser": "^0.1.10",
+ "structured-headers": "^0.4.1",
+ "tar": "^6.0.5",
+ "temp-dir": "^2.0.0",
+ "tempy": "^0.7.1",
+ "terminal-link": "^2.1.1",
+ "text-table": "^0.2.0",
+ "url-join": "4.0.0",
+ "wrap-ansi": "^7.0.0",
+ "ws": "^8.12.1"
+ },
+ "bin": {
+ "expo-internal": "build/bin/cli"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/graphql": {
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
+ "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "dependencies": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/@expo/config": {
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-8.5.4.tgz",
+ "integrity": "sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~7.8.2",
+ "@expo/config-types": "^50.0.0",
+ "@expo/json-file": "^8.2.37",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "slugify": "^1.3.4",
+ "sucrase": "3.34.0"
+ }
+ },
+ "node_modules/@expo/config-plugins": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.4.tgz",
+ "integrity": "sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==",
+ "dependencies": {
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/fingerprint": "^0.6.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/plist": "^0.1.0",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.0"
+ }
+ },
+ "node_modules/@expo/config-plugins/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-plugins/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-types": {
+ "version": "50.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz",
+ "integrity": "sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw=="
+ },
+ "node_modules/@expo/config/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/config/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@expo/config/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/@expo/config/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/config/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/@expo/devcert": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
+ "dependencies": {
+ "application-config-path": "^0.1.0",
+ "command-exists": "^1.2.4",
+ "debug": "^3.1.0",
+ "eol": "^0.9.1",
+ "get-port": "^3.2.0",
+ "glob": "^7.1.2",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "password-prompt": "^1.0.4",
+ "rimraf": "^2.6.2",
+ "sudo-prompt": "^8.2.0",
+ "tmp": "^0.0.33",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@expo/devcert/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/@expo/env": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.2.2.tgz",
+ "integrity": "sha512-m9nGuaSpzdvMzevQ1H60FWgf4PG5s4J0dfKUzdAGnDu7sMUerY/yUeDaA4+OBo3vBwGVQ+UHcQS9vPSMBNaPcg==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "debug": "^4.3.4",
+ "dotenv": "~16.0.3",
+ "dotenv-expand": "~10.0.0",
+ "getenv": "^1.0.0"
+ }
+ },
+ "node_modules/@expo/fingerprint": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz",
+ "integrity": "sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.4",
+ "find-up": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^3.1.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "fingerprint": "bin/cli.js"
+ }
+ },
+ "node_modules/@expo/image-utils": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.1.tgz",
+ "integrity": "sha512-EZb+VHSmw+a5s2hS9qksTcWylY0FDaIAVufcxoaRS9tHIXLjW5zcKW7Rhj9dSEbZbRVy9yXXdHKa3GQdUQIOFw==",
+ "dependencies": {
+ "@expo/spawn-async": "1.5.0",
+ "chalk": "^4.0.0",
+ "fs-extra": "9.0.0",
+ "getenv": "^1.0.0",
+ "jimp-compact": "0.16.1",
+ "node-fetch": "^2.6.0",
+ "parse-png": "^2.1.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "tempy": "0.3.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/fs-extra": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/tempy": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "dependencies": {
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/@expo/image-utils/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/@expo/json-file": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz",
+ "integrity": "sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^2.2.2",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/@expo/json-file/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/metro-config": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.17.6.tgz",
+ "integrity": "sha512-WaC1C+sLX/Wa7irwUigLhng3ckmXIEQefZczB8DfYmleV6uhfWWo2kz/HijFBpV7FKs2cW6u8J/aBQpFkxlcqg==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.5",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "@expo/config": "~8.5.0",
+ "@expo/env": "~0.2.2",
+ "@expo/json-file": "~8.3.0",
+ "@expo/spawn-async": "^1.7.2",
+ "babel-preset-fbjs": "^3.4.0",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "find-yarn-workspace-root": "~2.0.0",
+ "fs-extra": "^9.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.2.3",
+ "jsc-safe-url": "^0.2.4",
+ "lightningcss": "~1.19.0",
+ "postcss": "~8.4.32",
+ "resolve-from": "^5.0.0",
+ "sucrase": "3.34.0"
+ },
+ "peerDependencies": {
+ "@react-native/babel-preset": "*"
+ }
+ },
+ "node_modules/@expo/osascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.0.tgz",
+ "integrity": "sha512-bOhuFnlRaS7CU33+rFFIWdcET/Vkyn1vsN8BYFwCDEF5P1fVVvYN7bFOsQLTMD3nvi35C1AGmtqUr/Wfv8Xaow==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "exec-async": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/package-manager": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.4.2.tgz",
+ "integrity": "sha512-LKdo/6y4W7llZ6ghsg1kdx2CeH/qR/c6QI/JI8oPUvppsZoeIYjSkdflce978fAMfR8IXoi0wt0jA2w0kWpwbg==",
+ "dependencies": {
+ "@expo/json-file": "^8.2.37",
+ "@expo/spawn-async": "^1.5.0",
+ "ansi-regex": "^5.0.0",
+ "chalk": "^4.0.0",
+ "find-up": "^5.0.0",
+ "find-yarn-workspace-root": "~2.0.0",
+ "js-yaml": "^3.13.1",
+ "micromatch": "^4.0.2",
+ "npm-package-arg": "^7.0.0",
+ "ora": "^3.4.0",
+ "split": "^1.0.1",
+ "sudo-prompt": "9.1.1"
+ }
+ },
+ "node_modules/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/node_modules/sudo-prompt": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
+ "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
+ },
+ "node_modules/@expo/plist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz",
+ "integrity": "sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.7",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config": {
+ "version": "6.7.4",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz",
+ "integrity": "sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "debug": "^4.3.1",
+ "fs-extra": "^9.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "xml2js": "0.6.0"
+ },
+ "peerDependencies": {
+ "expo-modules-autolinking": ">=0.8.1"
+ }
+ },
+ "node_modules/@expo/prebuild-config/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/@expo/prebuild-config/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/prebuild-config/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/@expo/react-native-action-sheet": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/react-native-action-sheet/-/react-native-action-sheet-4.0.1.tgz",
+ "integrity": "sha512-FwCFpjpB6yzrK8CIWssLlh/i6zQFytFBiJfNdz0mJ2ckU4hWk8SrjB37P0Q4kF7w0bnIdYzPgRbdPR9hnfFqPw==",
+ "dependencies": {
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0"
+ }
+ },
+ "node_modules/@expo/rudder-sdk-node": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz",
+ "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==",
+ "dependencies": {
+ "@expo/bunyan": "^4.0.0",
+ "@segment/loosely-validate-event": "^2.0.0",
+ "fetch-retry": "^4.1.1",
+ "md5": "^2.2.1",
+ "node-fetch": "^2.6.1",
+ "remove-trailing-slash": "^0.1.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/rudder-sdk-node/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/@expo/sdk-runtime-versions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz",
+ "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="
+ },
+ "node_modules/@expo/spawn-async": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
+ "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/vector-icons": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.0.tgz",
+ "integrity": "sha512-5orm59pdnBQlovhU9k4DbjMUZBHNlku7IRgFY56f7pcaaCnXq9yaLJoOQl9sMwNdFzf4gnkTyHmR5uN10mI9rA=="
+ },
+ "node_modules/@expo/xcpretty": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz",
+ "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==",
+ "dependencies": {
+ "@babel/code-frame": "7.10.4",
+ "chalk": "^4.1.0",
+ "find-up": "^5.0.0",
+ "js-yaml": "^4.1.0"
+ },
+ "bin": {
+ "excpretty": "build/cli.js"
+ }
+ },
+ "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.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": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+ "dev": true
+ },
+ "node_modules/@ide/backoff": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@ide/backoff/-/backoff-1.0.0.tgz",
+ "integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g=="
+ },
+ "node_modules/@isaacs/ttlcache": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz",
+ "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jest/create-cache-key-function": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz",
+ "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==",
+ "dependencies": {
+ "@jest/types": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "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=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "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/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/fs/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/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/@react-native-async-storage/async-storage": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz",
+ "integrity": "sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==",
+ "dependencies": {
+ "merge-options": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react-native": "^0.0.0-0 || >=0.60 <1.0"
+ }
+ },
+ "node_modules/@react-native-community/cli": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz",
+ "integrity": "sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==",
+ "dependencies": {
+ "@react-native-community/cli-clean": "12.3.2",
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-doctor": "12.3.2",
+ "@react-native-community/cli-hermes": "12.3.2",
+ "@react-native-community/cli-plugin-metro": "12.3.2",
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native-community/cli-types": "12.3.2",
+ "chalk": "^4.1.2",
+ "commander": "^9.4.1",
+ "deepmerge": "^4.3.0",
+ "execa": "^5.0.0",
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.1.0",
+ "graceful-fs": "^4.1.3",
+ "prompts": "^2.4.2",
+ "semver": "^7.5.2"
+ },
+ "bin": {
+ "react-native": "build/bin.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz",
+ "integrity": "sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-config": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.2.tgz",
+ "integrity": "sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "cosmiconfig": "^5.1.0",
+ "deepmerge": "^4.3.0",
+ "glob": "^7.1.3",
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-debugger-ui": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz",
+ "integrity": "sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==",
+ "dependencies": {
+ "serve-static": "^1.13.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz",
+ "integrity": "sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==",
+ "dependencies": {
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "command-exists": "^1.2.8",
+ "deepmerge": "^4.3.0",
+ "envinfo": "^7.10.0",
+ "execa": "^5.0.0",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5",
+ "node-stream-zip": "^1.9.1",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1",
+ "yaml": "^2.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/ora/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/@react-native-community/cli-doctor/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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/@react-native-community/cli-hermes": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz",
+ "integrity": "sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==",
+ "dependencies": {
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-android": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz",
+ "integrity": "sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.2.4",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-ios": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz",
+ "integrity": "sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.0.12",
+ "glob": "^7.1.3",
+ "ora": "^5.4.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-plugin-metro": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz",
+ "integrity": "sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g=="
+ },
+ "node_modules/@react-native-community/cli-server-api": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz",
+ "integrity": "sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==",
+ "dependencies": {
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "compression": "^1.7.1",
+ "connect": "^3.6.5",
+ "errorhandler": "^1.5.1",
+ "nocache": "^3.0.1",
+ "pretty-format": "^26.6.2",
+ "serve-static": "^1.13.1",
+ "ws": "^7.5.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/@react-native-community/cli-tools": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz",
+ "integrity": "sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==",
+ "dependencies": {
+ "appdirsjs": "^1.2.4",
+ "chalk": "^4.1.2",
+ "find-up": "^5.0.0",
+ "mime": "^2.4.1",
+ "node-fetch": "^2.6.0",
+ "open": "^6.2.0",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "shell-quote": "^1.7.3",
+ "sudo-prompt": "^9.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/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/@react-native-community/cli-tools/node_modules/open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+ "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
+ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ },
+ "node_modules/@react-native-community/cli-tools/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/@react-native-community/cli-types": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.2.tgz",
+ "integrity": "sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==",
+ "dependencies": {
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli/node_modules/commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/clipboard": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/clipboard/-/clipboard-1.5.1.tgz",
+ "integrity": "sha512-AHAmrkLEH5UtPaDiRqoULERHh3oNv7Dgs0bTC0hO5Z2GdNokAMPT5w8ci8aMcRemcwbtdHjxChgtjbeA38GBdA==",
+ "peerDependencies": {
+ "react": ">=16.0",
+ "react-native": ">=0.57.0"
+ }
+ },
+ "node_modules/@react-native-community/datetimepicker": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-7.6.1.tgz",
+ "integrity": "sha512-g66Q2Kd9Uw3eRL7kkrTsGhi+eXxNoPDRFYH6z78sZQuYjPkUQgJDDMUYgBmaBsQx/fKMtemPrCj1ulGmyi0OSw==",
+ "dependencies": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "node_modules/@react-native-google-signin/google-signin": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-google-signin/google-signin/-/google-signin-11.0.0.tgz",
+ "integrity": "sha512-J8BFFGr5HcEWE2gRaVSJ0rQN8ztxYIr2wdWMG4PS1vhQZJqUzmRr6vpu12O1GppItq8ai7AA0rl/ja7hSytSXA==",
+ "peerDependencies": {
+ "expo": ">=47.0.0",
+ "react": "*",
+ "react-native": "*"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@react-native/assets-registry": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz",
+ "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/babel-plugin-codegen": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz",
+ "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==",
+ "dependencies": {
+ "@react-native/codegen": "0.73.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/babel-preset": {
+ "version": "0.73.21",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz",
+ "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.18.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.18.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.20.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.20.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.20.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@react-native/babel-plugin-codegen": "0.73.4",
+ "babel-plugin-transform-flow-enums": "^0.0.2",
+ "react-refresh": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native/codegen": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz",
+ "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==",
+ "dependencies": {
+ "@babel/parser": "^7.20.0",
+ "flow-parser": "^0.206.0",
+ "glob": "^7.1.1",
+ "invariant": "^2.2.4",
+ "jscodeshift": "^0.14.0",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin": {
+ "version": "0.73.16",
+ "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz",
+ "integrity": "sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==",
+ "dependencies": {
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native/dev-middleware": "0.73.7",
+ "@react-native/metro-babel-transformer": "0.73.15",
+ "chalk": "^4.0.0",
+ "execa": "^5.1.1",
+ "metro": "^0.80.3",
+ "metro-config": "^0.80.3",
+ "metro-core": "^0.80.3",
+ "node-fetch": "^2.2.0",
+ "readline": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": {
+ "version": "0.73.7",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz",
+ "integrity": "sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native/debugger-frontend": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz",
+ "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/dev-middleware": {
+ "version": "0.73.8",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz",
+ "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0",
+ "ws": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/dev-middleware/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/@react-native/dev-middleware/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/dev-middleware/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native/dev-middleware/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/@react-native/gradle-plugin": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz",
+ "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/js-polyfills": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz",
+ "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/metro-babel-transformer": {
+ "version": "0.73.15",
+ "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz",
+ "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@react-native/babel-preset": "0.73.21",
+ "hermes-parser": "0.15.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native/normalize-color": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz",
+ "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA=="
+ },
+ "node_modules/@react-native/normalize-colors": {
+ "version": "0.73.2",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz",
+ "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w=="
+ },
+ "node_modules/@react-native/virtualized-lists": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz",
+ "integrity": "sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/core": {
+ "version": "6.4.16",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.16.tgz",
+ "integrity": "sha512-UDTJBsHxnzgFETR3ZxhctP+RWr4SkyeZpbhpkQoIGOuwSCkt1SE0qjU48/u6r6w6XlX8OqVudn1Ab0QFXTHxuQ==",
+ "dependencies": {
+ "@react-navigation/routers": "^6.1.9",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.9"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/@react-navigation/drawer": {
+ "version": "6.6.15",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.15.tgz",
+ "integrity": "sha512-GLkFQNxjtmxB/qXSHmu1DfoB89jCzW64tmX68iPndth+9U+0IP27GcCCaMZxQfwj+nI8Kn2zlTlXAZDIIHE+DQ==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.30",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-reanimated": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/elements": {
+ "version": "1.3.30",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.30.tgz",
+ "integrity": "sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ==",
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/native": {
+ "version": "6.1.17",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.17.tgz",
+ "integrity": "sha512-mer3OvfwWOHoUSMJyLa4vnBH3zpFmCwuzrBPlw7feXklurr/ZDiLjLxUScOot6jLRMz/67GyilEYMmP99LL0RQ==",
+ "dependencies": {
+ "@react-navigation/core": "^6.4.16",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/routers": {
+ "version": "6.1.9",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz",
+ "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==",
+ "dependencies": {
+ "nanoid": "^3.1.23"
+ }
+ },
+ "node_modules/@react-navigation/stack": {
+ "version": "6.3.29",
+ "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.29.tgz",
+ "integrity": "sha512-tzlGkoRgB6P7vgw7rHuWo3TL7Gzu6xh5LMf+zSdCuEiKp/qASzxYfnTEr9tOLbVs/gf+qeukEDheCSAJKVpBXw==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.30",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@segment/loosely-validate-event": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
+ "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
+ "dependencies": {
+ "component-type": "^1.2.1",
+ "join-component": "^1.1.0"
+ }
+ },
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.81.1.tgz",
+ "integrity": "sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/browser": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.81.1.tgz",
+ "integrity": "sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/replay": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/cli": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.25.2.tgz",
+ "integrity": "sha512-lgt1QPaCfs/QZNXwyw3gvuBR2/CLwFSdU/oT7Bpxwizz8XVXhlKS98zJF1UVCy7SecsDSoOI0Z+B+X658cpquQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "sentry-cli": "bin/sentry-cli"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@sentry/cli-darwin": "2.25.2",
+ "@sentry/cli-linux-arm": "2.25.2",
+ "@sentry/cli-linux-arm64": "2.25.2",
+ "@sentry/cli-linux-i686": "2.25.2",
+ "@sentry/cli-linux-x64": "2.25.2",
+ "@sentry/cli-win32-i686": "2.25.2",
+ "@sentry/cli-win32-x64": "2.25.2"
+ }
+ },
+ "node_modules/@sentry/cli-darwin": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.25.2.tgz",
+ "integrity": "sha512-o1d5NnVUrc1dxDm56k7Co8tSTcOuxbApdxweVXXsiq20HblZCyIi7WxxRkAg4RfKx594sKGiw9uCVvECi+9UpA==",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.25.2.tgz",
+ "integrity": "sha512-n398jd87Ymejt5k/6RjCEjXAvntOWuqhBDANxzhgr5/9FzbODJ844g1mOpcxiIlduzKSzWlPbTEKQulMp2Mt4w==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.25.2.tgz",
+ "integrity": "sha512-lm5jaigV6xu9Gwo0wNk+bX6yVkl5k3gNXcSXcKCISFo+Teb7Zhf9IyXANPm4VY2DdiZAjPJt8gS1bu+Mn7irtQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.25.2.tgz",
+ "integrity": "sha512-/YYx2gfqO5mkxyBgFcnDbZzkZ2+2xNarwrqWcqq3Qw0XlO9DWAQB2G+twV1RW/UfSU6fFIWErn94efh2EWmyzQ==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.25.2.tgz",
+ "integrity": "sha512-rRafqy84R5mYA4JEfNsUeN10af5euJnK7fgqYM0mJIaplHC2YEXT9aUYWoryWPZiYqmdNUhsA6lX7iynSW9pZw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.25.2.tgz",
+ "integrity": "sha512-plT/gi41F+67g9AwrEm4avRXnjCtHCcnRnJ6zPu/iINGap8mvYQJSU/qM0oGwV6hRGg3JJN66XIvJPIuIs8P8w==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.25.2.tgz",
+ "integrity": "sha512-Mb6mAyPi9gIfpzF5MTk0JXgFP9nxka3Fb7JYn6AY4RW++sOjapkTrcXL2Gp3ZfQkWj5rFTgln4+eNmZPsD2gzA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.81.1.tgz",
+ "integrity": "sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==",
+ "dependencies": {
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/hub": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.81.1.tgz",
+ "integrity": "sha512-25cvsI3HKiRLJBZGFC8ntuy7/yB8M1w8YLTjr3tIqydYmjFUX7f18w0iuWEtd204d8OQSPBJDapbGMdfkE5x6w==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/integrations": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.81.1.tgz",
+ "integrity": "sha512-DN5ONn0/LX5HHVPf1EBGHFssIZaZmLgkqUIeMqCNYBpB4DiOrJANnGwTcWKDPphqhdPxjnPv9AGRLaU0PdvvZQ==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "localforage": "^1.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/react": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.81.1.tgz",
+ "integrity": "sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw==",
+ "dependencies": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "hoist-non-react-statics": "^3.3.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "react": "15.x || 16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/@sentry/react-native": {
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-5.17.0.tgz",
+ "integrity": "sha512-d0TLASMcpUtvw0A8zNznRyCskfH0kwfb3GzqMXXpfPJAG8vsBnY15EFOIc+czOLt6FbV9o3567bHYWhSW51Ssg==",
+ "dependencies": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/cli": "2.25.2",
+ "@sentry/core": "7.81.1",
+ "@sentry/hub": "7.81.1",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "bin": {
+ "sentry-expo-upload-sourcemaps": "scripts/expo-upload-sourcemaps.js"
+ },
+ "peerDependencies": {
+ "expo": ">=49.0.0",
+ "react": ">=17.0.0",
+ "react-native": ">=0.65.0"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@sentry/replay": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.81.1.tgz",
+ "integrity": "sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry/types": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.81.1.tgz",
+ "integrity": "sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.81.1.tgz",
+ "integrity": "sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==",
+ "dependencies": {
+ "@sentry/types": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@twotalltotems/react-native-otp-input": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/@twotalltotems/react-native-otp-input/-/react-native-otp-input-1.3.11.tgz",
+ "integrity": "sha512-xSsEMa8llYHITKgx1FGwU3uK56Kk6+abgkJpo57pLnUpYC2CZpvhkvRKhFa7Ui6BhdRuh0Ob1O7q234d3CksRg==",
+ "dependencies": {
+ "@react-native-community/clipboard": "^1.2.2"
+ }
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.14",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
+ "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
+ },
+ "node_modules/@types/hammerjs": {
+ "version": "2.0.45",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz",
+ "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ=="
+ },
+ "node_modules/@types/hoist-non-react-statics": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz",
+ "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==",
+ "dependencies": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.29",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.29.tgz",
+ "integrity": "sha512-P99thMkD/1YkCvAtOd6/zGedKNA0p2fj4ZpjCzcNiSCBWgm3cNRTBfa/qjFnsKkkojxu4vVLtWpesnZ9+ap+gA==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+ },
+ "node_modules/@types/react": {
+ "version": "18.2.67",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.67.tgz",
+ "integrity": "sha512-vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@urql/core": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz",
+ "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.0",
+ "wonka": "^4.0.14"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/@urql/exchange-retry": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz",
+ "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==",
+ "dependencies": {
+ "@urql/core": ">=2.3.1",
+ "wonka": "^4.0.14"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/@wry/caches": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz",
+ "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/context": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz",
+ "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/equality": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz",
+ "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/trie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz",
+ "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz",
+ "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "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.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "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/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": "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/anser": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
+ "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="
+ },
+ "node_modules/ansi-escapes": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
+ "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-fragments": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
+ "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
+ "dependencies": {
+ "colorette": "^1.0.7",
+ "slice-ansi": "^2.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/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/ansi-fragments/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/ansi-fragments/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/ansi-fragments/node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ },
+ "node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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": "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/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+ },
+ "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==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/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/appdirsjs": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
+ "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ },
+ "node_modules/application-config-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "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/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.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.findlast": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz",
+ "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
+ "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.toreversed": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
+ "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
+ "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.1.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "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": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/assert": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
+ "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-nan": "^1.3.2",
+ "object-is": "^1.1.5",
+ "object.assign": "^4.1.4",
+ "util": "^0.12.5"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
+ "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "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/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/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==",
+ "dev": true
+ },
+ "node_modules/babel-code-frame/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/babel-core": {
+ "version": "7.0.0-bridge.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+ "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-builder-react-jsx": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
+ "integrity": "sha512-02I9jDjnVEuGy2BR3LRm9nPRb/+Ja0pvZVLr1eI5TYAA/dB0Xoc+WBo50+aDfhGDLhlBY1+QURjn9uvcFd8gzg==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "esutils": "^2.0.2"
+ }
+ },
+ "node_modules/babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
+ "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz",
+ "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.1",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-react-native-web": {
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz",
+ "integrity": "sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw=="
+ },
+ "node_modules/babel-plugin-react-transform": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz",
+ "integrity": "sha512-4vJGddwPiHAOgshzZdGwYy4zRjjIr5SMY7gkOaCyIASjgpcsyLTlZNuB5rHOFoaTvGlhfo8/g4pobXPyHqm/3w==",
+ "dev": true,
+ "dependencies": {
+ "lodash": "^4.6.1"
+ }
+ },
+ "node_modules/babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-class-properties": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
+ "integrity": "sha512-chI3Rt9T1AbrQD1s+vxw3KcwC9yHtF621/MacuItITfZX344uhQoANjpoSJZleAmW2tjlolqB/f+h7jIqXa7pA==",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
+ "integrity": "sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-flow": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
+ "integrity": "sha512-HbTDIoG1A1op7Tl/wIFQPULIBA61tsJ8Ntq2FAhLwuijrzosM/92kAfgU1Q3Kc7DH/cprJg5vDfuTY4QUL4rDA==",
+ "dev": true
+ },
+ "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": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-object-rest-spread": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+ "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ },
+ "node_modules/babel-plugin-transform-class-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
+ "integrity": "sha512-n4jtBA3OYBdvG5PRMKsMXJXHfLYw/ZOmtxCLOOwz6Ro5XlrColkStLnz1AS1L2yfPA9BKJ1ZNlmVCLjAL9DSIg==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-plugin-syntax-class-properties": "^6.8.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+ "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-flow-enums": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
+ "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
+ "dependencies": {
+ "@babel/plugin-syntax-flow": "^7.12.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-flow-strip-types": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
+ "integrity": "sha512-TxIM0ZWNw9oYsoTthL3lvAK3+eTujzktoXJg4ubGvICGbVuXVYv5hHv0XXpz8fbqlJaGYY4q5SVzaSmsg3t4Fg==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-syntax-flow": "^6.18.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-object-assign": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz",
+ "integrity": "sha512-N6Pddn/0vgLjnGr+mS7ttlFkQthqcnINE9EMOxB0CF8F4t6kuJXz6NUeLfSoRbLmkGh0mgDs9i2isdaZj0Ghtg==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-object-rest-spread": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+ "babel-runtime": "^6.26.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-react-display-name": {
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
+ "integrity": "sha512-QLYkLiZeeED2PKd4LuXGg5y9fCgPB5ohF8olWUuETE2ryHNRqqnXlEVP7RPuef89+HTfd3syptMGVHeoAu0Wig==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-react-jsx": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
+ "integrity": "sha512-s+q/Y2u2OgDPHRuod3t6zyLoV8pUHc64i/O7ZNgIOEdYTq+ChPeybcKBi/xk9VI60VriILzFPW+dUxAEbTxh2w==",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-builder-react-jsx": "^6.24.1",
+ "babel-plugin-syntax-jsx": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-react-jsx-source": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
+ "integrity": "sha512-pcDNDsZ9q/6LJmujQ/OhjeoIlp5Nl546HJ2yiFIJK3mYpgNXhI5/S9mXfVxu5yqWAi7HdI7e/q6a9xtzwL69Vw==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-syntax-jsx": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==",
+ "dev": true,
+ "dependencies": {
+ "regenerator-transform": "^0.10.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-regenerator/node_modules/regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ },
+ "node_modules/babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-preset-expo": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-10.0.1.tgz",
+ "integrity": "sha512-uWIGmLfbP3dS5+8nesxaW6mQs41d4iP7X82ZwRdisB/wAhKQmuJM9Y1jQe4006uNYkw6Phf2TT03ykLVro7KuQ==",
+ "dependencies": {
+ "@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.12.13",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/preset-env": "^7.20.0",
+ "@babel/preset-react": "^7.22.15",
+ "@react-native/babel-preset": "^0.73.18",
+ "babel-plugin-react-native-web": "~0.18.10",
+ "react-refresh": "0.14.0"
+ }
+ },
+ "node_modules/babel-preset-fbjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
+ "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
+ "dependencies": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-react-native": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-4.0.1.tgz",
+ "integrity": "sha512-uhFXnl1WbEWNG4W8QB/jeQaVXkd0a0AD+wh4D2VqtdRnEyvscahqyHExnwKLU9N0sXRYwDyed4JfbiBtiOSGgA==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-check-es2015-constants": "^6.5.0",
+ "babel-plugin-react-transform": "^3.0.0",
+ "babel-plugin-syntax-async-functions": "^6.5.0",
+ "babel-plugin-syntax-class-properties": "^6.5.0",
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
+ "babel-plugin-syntax-flow": "^6.5.0",
+ "babel-plugin-syntax-jsx": "^6.5.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.5.0",
+ "babel-plugin-transform-class-properties": "^6.5.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.5.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.5.0",
+ "babel-plugin-transform-es2015-classes": "^6.5.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.5.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.5.0",
+ "babel-plugin-transform-es2015-for-of": "^6.5.0",
+ "babel-plugin-transform-es2015-function-name": "^6.5.0",
+ "babel-plugin-transform-es2015-literals": "^6.5.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.5.0",
+ "babel-plugin-transform-es2015-parameters": "^6.5.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.5.0",
+ "babel-plugin-transform-es2015-spread": "^6.5.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.5.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.5.0",
+ "babel-plugin-transform-flow-strip-types": "^6.5.0",
+ "babel-plugin-transform-object-assign": "^6.5.0",
+ "babel-plugin-transform-object-rest-spread": "^6.5.0",
+ "babel-plugin-transform-react-display-name": "^6.5.0",
+ "babel-plugin-transform-react-jsx": "^6.5.0",
+ "babel-plugin-transform-react-jsx-source": "^6.5.0",
+ "babel-plugin-transform-regenerator": "^6.5.0",
+ "babel-template": "^6.24.1",
+ "react-transform-hmr": "^1.0.4"
+ }
+ },
+ "node_modules/babel-preset-react-native/node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==",
+ "dev": true
+ },
+ "node_modules/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+ "dev": true,
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-runtime/node_modules/core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "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.",
+ "dev": true,
+ "hasInstallScript": true
+ },
+ "node_modules/babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==",
+ "dev": true,
+ "dependencies": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-traverse/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/babel-traverse/node_modules/globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-traverse/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ }
+ },
+ "node_modules/babel-types/node_modules/to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true,
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
+ },
+ "node_modules/backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
+ },
+ "node_modules/badgin": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.3.tgz",
+ "integrity": "sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw=="
+ },
+ "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/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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/better-opn": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
+ "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
+ "dependencies": {
+ "open": "^8.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/big-integer": {
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/blueimp-md5": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
+ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "node_modules/bplist-creator": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
+ "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==",
+ "dependencies": {
+ "stream-buffers": "2.2.x"
+ }
+ },
+ "node_modules/bplist-parser": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
+ "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "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/browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "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": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "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": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dependencies": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ },
+ "node_modules/buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ },
+ "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/builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ=="
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cacache/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/cacache/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/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/cacache/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/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-callsite/node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/caniuse-lite": {
+ "version": "1.0.30001599",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz",
+ "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "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/charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chrome-launcher": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
+ "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0"
+ },
+ "bin": {
+ "print-chrome-path": "bin/print-chrome-path.js"
+ },
+ "engines": {
+ "node": ">=12.13.0"
+ }
+ },
+ "node_modules/chromium-edge-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz",
+ "integrity": "sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "node_modules/chromium-edge-launcher/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chromium-edge-launcher/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/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/cli-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+ "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^5.0.0",
+ "string-width": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/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/cliui/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/cliui/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/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "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/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/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "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/command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+ },
+ "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/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "node_modules/compare-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz",
+ "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==",
+ "dependencies": {
+ "normalize-url": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/component-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
+ "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/connect/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/connect/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "node_modules/core-js": {
+ "version": "3.36.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz",
+ "integrity": "sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==",
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.36.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz",
+ "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==",
+ "dependencies": {
+ "browserslist": "^4.23.0"
+ },
+ "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": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cosmiconfig/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/cosmiconfig/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cosmiconfig/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/cosmiconfig/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "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/crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "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/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": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/dag-map": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
+ "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/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/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dependencies": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defaults/node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "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/del/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/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/denodeify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
+ "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
+ },
+ "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/deprecated-react-native-prop-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz",
+ "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==",
+ "dependencies": {
+ "@react-native/normalize-colors": "^0.73.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "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-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/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/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/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-walk": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
+ "dev": true
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/dotenv-expand": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
+ "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/electron-to-chromium": {
+ "version": "1.4.710",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.710.tgz",
+ "integrity": "sha512-w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA=="
+ },
+ "node_modules/emoji-regex": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+ "dev": true
+ },
+ "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/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/env-editor": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
+ "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/envinfo": {
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
+ "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eol": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "dependencies": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.23.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz",
+ "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.3",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.5",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz",
+ "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.2",
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "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-config-standard": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
+ "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
+ "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"
+ }
+ ],
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^8.0.1",
+ "eslint-plugin-import": "^2.25.2",
+ "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
+ "eslint-plugin-promise": "^6.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
+ "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dev": true,
+ "dependencies": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-node": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "dev": true,
+ "dependencies": {
+ "eslint-plugin-es": "^3.0.0",
+ "eslint-utils": "^2.0.0",
+ "ignore": "^5.1.1",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.10.1",
+ "semver": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-plugin-promise": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz",
+ "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.34.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz",
+ "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.7",
+ "array.prototype.findlast": "^1.2.4",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.toreversed": "^1.1.2",
+ "array.prototype.tosorted": "^1.1.3",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.17",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.7",
+ "object.fromentries": "^2.0.7",
+ "object.hasown": "^1.1.3",
+ "object.values": "^1.1.7",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.10"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.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/eslint-plugin-standard": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz",
+ "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==",
+ "deprecated": "standard 16.0.0 and eslint-config-standard 16.0.0 no longer require the eslint-plugin-standard package. You can remove it from your dependencies with 'npm rm eslint-plugin-standard'. More info here: https://github.com/standard/standard/issues/1316",
+ "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"
+ }
+ ],
+ "peerDependencies": {
+ "eslint": ">=5.0.0"
+ }
+ },
+ "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-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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/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/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.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==",
+ "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/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+ "dev": true
+ },
+ "node_modules/exec-async": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz",
+ "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw=="
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/execa/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/execa/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/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/expo": {
+ "version": "50.0.13",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-50.0.13.tgz",
+ "integrity": "sha512-p0FYrhUJZe92YOwOXx6GZ/WaxF6YtsLXtWkql9pFIIocYBN6iQ3OMGsbQCRSu0ao8rlxsk7HgQDEWK4D+y9tAg==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/cli": "0.17.8",
+ "@expo/config": "8.5.4",
+ "@expo/config-plugins": "7.8.4",
+ "@expo/metro-config": "0.17.6",
+ "@expo/vector-icons": "^14.0.0",
+ "babel-preset-expo": "~10.0.1",
+ "expo-asset": "~9.0.2",
+ "expo-file-system": "~16.0.8",
+ "expo-font": "~11.10.3",
+ "expo-keep-awake": "~12.8.2",
+ "expo-modules-autolinking": "1.10.3",
+ "expo-modules-core": "1.11.12",
+ "fbemitter": "^3.0.0",
+ "whatwg-url-without-unicode": "8.0.0-3"
+ },
+ "bin": {
+ "expo": "bin/cli"
+ }
+ },
+ "node_modules/expo-apple-authentication": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/expo-apple-authentication/-/expo-apple-authentication-6.3.0.tgz",
+ "integrity": "sha512-eYoRMlh7qKkWdbNe5TV5n0/1mLMRDFDxt+uetyu0XMdn70vZSTaPr5yewyGzoFHRx5t4QCEj8wTobcjoqH5PGw==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-application": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.8.3.tgz",
+ "integrity": "sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-asset": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-9.0.2.tgz",
+ "integrity": "sha512-PzYKME1MgUOoUvwtdzhAyXkjXOXGiSYqGKG/MsXwWr0Ef5wlBaBm2DCO9V6KYbng5tBPFu6hTjoRNil1tBOSow==",
+ "dependencies": {
+ "@react-native/assets-registry": "~0.73.1",
+ "blueimp-md5": "^2.10.0",
+ "expo-constants": "~15.4.0",
+ "expo-file-system": "~16.0.0",
+ "invariant": "^2.2.4",
+ "md5-file": "^3.2.3"
+ }
+ },
+ "node_modules/expo-constants": {
+ "version": "15.4.5",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-15.4.5.tgz",
+ "integrity": "sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg==",
+ "dependencies": {
+ "@expo/config": "~8.5.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-crypto": {
+ "version": "12.8.1",
+ "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-12.8.1.tgz",
+ "integrity": "sha512-EJEzmfBUSkGfALTlZRKUbh1RMKF7mWI12vkhO2w6bhGO4bjgGB8XzUHgLfrvSjphDFMx/lwaR6bAQDmXKO9UkQ==",
+ "dependencies": {
+ "base64-js": "^1.3.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-client": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-3.3.10.tgz",
+ "integrity": "sha512-UhZOJ+O90dRo7S/rmFmVIWwa/HxOqoQ4ySCqvWh87O3pFQuluPfVI9PdKicF4djYrNHZZmE8UXqBDN41hiYtAA==",
+ "dependencies": {
+ "expo-dev-launcher": "3.6.8",
+ "expo-dev-menu": "4.5.7",
+ "expo-dev-menu-interface": "1.7.2",
+ "expo-manifests": "~0.13.0",
+ "expo-updates-interface": "~0.15.1"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-launcher": {
+ "version": "3.6.8",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-3.6.8.tgz",
+ "integrity": "sha512-lFyxRXpUk0z7V7BDd1tFg/M9eFPzo+WRq7kQBA4F8bFPX6drYuTjPqs/bEF/6A5S38oA1wcA34bY9TNgkiKf5w==",
+ "dependencies": {
+ "ajv": "8.11.0",
+ "expo-dev-menu": "4.5.7",
+ "expo-manifests": "~0.13.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-launcher/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/expo-dev-launcher/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/expo-dev-launcher/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/expo-dev-launcher/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-dev-launcher/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/expo-dev-menu": {
+ "version": "4.5.7",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-4.5.7.tgz",
+ "integrity": "sha512-yIAsiKIhxvAmzd6x25HTvANeengGg2Uax6JnKy7+YfxgynKtqmWUlGCyc9EECoQI4+ItxbfjU4fSTxTiQYGFug==",
+ "dependencies": {
+ "expo-dev-menu-interface": "1.7.2",
+ "semver": "^7.5.3"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-menu-interface": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.2.tgz",
+ "integrity": "sha512-V/geSB9rW0IPTR+d7E5CcvkV0uVUCE7SMHZqE/J0/dH06Wo8AahB16fimXeh5/hTL2Qztq8CQ41xpFUBoA9TEw==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-menu/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/expo-dev-menu/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-dev-menu/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/expo-device": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/expo-device/-/expo-device-5.9.3.tgz",
+ "integrity": "sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w==",
+ "dependencies": {
+ "ua-parser-js": "^0.7.33"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-eas-client": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/expo-eas-client/-/expo-eas-client-0.11.2.tgz",
+ "integrity": "sha512-SY7rVFxb4ut/OMTgR7A39Jg+8+hXwQNRpZd+RBpB+B5XV2STj/pWXHnGFhBayEF4umI4SxrOvisY90rlPWVO9Q=="
+ },
+ "node_modules/expo-file-system": {
+ "version": "16.0.8",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-16.0.8.tgz",
+ "integrity": "sha512-yDbVT0TUKd7ewQjaY5THum2VRFx2n/biskGhkUmLh3ai21xjIVtaeIzHXyv9ir537eVgt4ReqDNWi7jcXjdUcA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-font": {
+ "version": "11.10.3",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.10.3.tgz",
+ "integrity": "sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ==",
+ "dependencies": {
+ "fontfaceobserver": "^2.1.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-image-loader": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.6.0.tgz",
+ "integrity": "sha512-RHQTDak7/KyhWUxikn2yNzXL7i2cs16cMp6gEAgkHOjVhoCJQoOJ0Ljrt4cKQ3IowxgCuOrAgSUzGkqs7omj8Q==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-image-picker": {
+ "version": "14.7.1",
+ "resolved": "https://registry.npmjs.org/expo-image-picker/-/expo-image-picker-14.7.1.tgz",
+ "integrity": "sha512-ILQVOJgI3aEzrDmCFGDPtpAepYkn8mot8G7vfQ51BfFdQbzL6N3Wm1fS/ofdWlAZJl/qT2DwaIh5xYmf3SyGZA==",
+ "dependencies": {
+ "expo-image-loader": "~4.6.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-json-utils": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.12.3.tgz",
+ "integrity": "sha512-4pypQdinpNc6XY9wsZk56njvzDh+B/9mISr7FPP3CVk1QGB1nSLh883/BCDSgnsephATZkC5HG+cdE60kCAR6A=="
+ },
+ "node_modules/expo-keep-awake": {
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz",
+ "integrity": "sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-linking": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-6.2.2.tgz",
+ "integrity": "sha512-FEe6lP4f7xFT/vjoHRG+tt6EPVtkEGaWNK1smpaUevmNdyCJKqW0PDB8o8sfG6y7fly8ULe8qg3HhKh5J7aqUQ==",
+ "dependencies": {
+ "expo-constants": "~15.4.3",
+ "invariant": "^2.2.4"
+ }
+ },
+ "node_modules/expo-localization": {
+ "version": "14.8.3",
+ "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-14.8.3.tgz",
+ "integrity": "sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw==",
+ "dependencies": {
+ "rtl-detect": "^1.0.2"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-location": {
+ "version": "16.5.5",
+ "resolved": "https://registry.npmjs.org/expo-location/-/expo-location-16.5.5.tgz",
+ "integrity": "sha512-dXEd1HaZgdi6yHVF8R+SMnGlKDYrD+Hkkzd/b9edjMSUBLxF2y824AFSSNUf6BVOM53tJBOFEELneXkU1uj9nA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-manifests": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.13.2.tgz",
+ "integrity": "sha512-l0Sia1WmLULx8V41K8RzGLsFoTe4qqthPRGpHjItsYn8ZB6lRrdTBM9OYp2McIflgqN1HAimUCQMFIwJyH+UmA==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "expo-json-utils": "~0.12.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-modules-autolinking": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz",
+ "integrity": "sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "fast-glob": "^3.2.5",
+ "find-up": "^5.0.0",
+ "fs-extra": "^9.1.0"
+ },
+ "bin": {
+ "expo-modules-autolinking": "bin/expo-modules-autolinking.js"
+ }
+ },
+ "node_modules/expo-modules-core": {
+ "version": "1.11.12",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.11.12.tgz",
+ "integrity": "sha512-/e8g4kis0pFLer7C0PLyx98AfmztIM6gU9jLkYnB1pU9JAfQf904XEi3bmszO7uoteBQwSL6FLp1m3TePKhDaA==",
+ "dependencies": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "node_modules/expo-notifications": {
+ "version": "0.27.6",
+ "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.27.6.tgz",
+ "integrity": "sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA==",
+ "dependencies": {
+ "@expo/image-utils": "^0.4.0",
+ "@ide/backoff": "^1.0.0",
+ "abort-controller": "^3.0.0",
+ "assert": "^2.0.0",
+ "badgin": "^1.1.5",
+ "expo-application": "~5.8.0",
+ "expo-constants": "~15.4.0",
+ "fs-extra": "^9.1.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-random": {
+ "version": "13.6.0",
+ "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-13.6.0.tgz",
+ "integrity": "sha512-c4Ikio+a2sUyJC0386K6JplqjVDelsyqQfjiy4yCx+0epEu44AP99ipF+HsmZVOvsWsWkd/lkpq5kGnJON5EfA==",
+ "dependencies": {
+ "base64-js": "^1.3.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-splash-screen": {
+ "version": "0.26.4",
+ "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.26.4.tgz",
+ "integrity": "sha512-2DwofTQ0FFQCsvDysm/msENsbyNsJiAJwK3qK/oXeizECAPqD7bK19J4z9kuEbr7ORPX9MLnTQYKl6kmX3keUg==",
+ "dependencies": {
+ "@expo/prebuild-config": "6.7.4"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-structured-headers": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-3.7.2.tgz",
+ "integrity": "sha512-/nGOyeWUXSUy4aIYKJTwQOznRNs0yKqKPAyEE6jtwvOl9qvfDWx9xskNtShioggBhFAssFkV6RBbPn+xZMQtvw=="
+ },
+ "node_modules/expo-system-ui": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-2.9.3.tgz",
+ "integrity": "sha512-RNFNBLJ9lhnjOGrHhtfDc15Ry/lF+SA4kwulmHzYGqaTeYvsL9q0K0+m9qmxuDdrbKJkuurvzvjVylDNnKNFVg==",
+ "dependencies": {
+ "@react-native/normalize-color": "^2.0.0",
+ "debug": "^4.3.2"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-tracking-transparency": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/expo-tracking-transparency/-/expo-tracking-transparency-3.3.0.tgz",
+ "integrity": "sha512-aFeDm1Y/4N8CigCdDKQPCIzCMAHDIAhdpb8PopuH1Lz7jtq+K+D2OgAUJsgyI6pyKO/MqcXMsa0s/JkIzi593Q==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates": {
+ "version": "0.24.12",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.24.12.tgz",
+ "integrity": "sha512-35ZpAMSqHIyVGT5mEptaZJBxytu0mv4PIG28i3BQe+GG4ifQtY94aCOCrUwZe8Myzaf4dNVGEUXWTPo+JPCgcw==",
+ "dependencies": {
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "arg": "4.1.0",
+ "chalk": "^4.1.2",
+ "expo-eas-client": "~0.11.0",
+ "expo-manifests": "~0.13.0",
+ "expo-structured-headers": "~3.7.0",
+ "expo-updates-interface": "~0.15.1",
+ "fbemitter": "^3.0.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "expo-updates": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates-interface": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.15.3.tgz",
+ "integrity": "sha512-uLvsbaCmUsXgJqeen8rYH/jPr874ZUCXEvWpKHxrCv5/XATPlYEaDuecbNSGQ+cu78i6MdtB4BHOwZmoH2d47A==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates/node_modules/arg": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
+ "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg=="
+ },
+ "node_modules/expo-web-browser": {
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-12.8.2.tgz",
+ "integrity": "sha512-Mw8WoFMSADecNjtC4PZVsVj1/lYdxIAH1jOVV+F8v8SEWYxORWofoShfXg7oUxRLu0iUG8JETfO5y4m8+fOgdg==",
+ "dependencies": {
+ "compare-urls": "^2.0.0",
+ "url": "^0.11.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "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.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "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==",
+ "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/fast-xml-parser": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz",
+ "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/naturalintelligence"
+ }
+ ],
+ "dependencies": {
+ "strnum": "^1.0.5"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fbemitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
+ "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
+ "dependencies": {
+ "fbjs": "^3.0.0"
+ }
+ },
+ "node_modules/fbjs": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz",
+ "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==",
+ "dependencies": {
+ "cross-fetch": "^3.1.5",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^1.0.35"
+ }
+ },
+ "node_modules/fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "node_modules/fbjs/node_modules/ua-parser-js": {
+ "version": "1.0.37",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
+ "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fetch-retry": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
+ "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
+ },
+ "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==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "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/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/find-yarn-workspace-root": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
+ "dependencies": {
+ "micromatch": "^4.0.2"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "node_modules/flow-enums-runtime": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz",
+ "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="
+ },
+ "node_modules/flow-parser": {
+ "version": "0.206.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
+ "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/fontfaceobserver": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
+ "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "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/freeport-async": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz",
+ "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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": "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/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "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/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/fuse.js": {
+ "version": "3.4.5",
+ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.4.5.tgz",
+ "integrity": "sha512-s9PGTaQIkT69HaeoTVjwGsLfb8V8ScJLx5XGFcKHg0MqLUH/UZ4EKOtqtXX9k7AFqCGxD1aJmYb8Q5VYDibVRQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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-east-asian-width": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz",
+ "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/getenv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz",
+ "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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": "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/global": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
+ "dev": true,
+ "dependencies": {
+ "min-document": "^2.19.0",
+ "process": "^0.11.10"
+ }
+ },
+ "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/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/google-libphonenumber": {
+ "version": "3.2.34",
+ "resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.34.tgz",
+ "integrity": "sha512-CLwkp0lZvMywh6dCh0T3Fm8XsfJhLAupc8AECwYkJNQBPW8wQPrv/tV0oFKCs8FMw+pTQyNPZoycgBzYjqtTZQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "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/graphql": {
+ "version": "16.8.1",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz",
+ "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==",
+ "engines": {
+ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
+ }
+ },
+ "node_modules/graphql-tag": {
+ "version": "2.12.6",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
+ "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-ansi/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hermes-estree": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz",
+ "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ=="
+ },
+ "node_modules/hermes-parser": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz",
+ "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==",
+ "dependencies": {
+ "hermes-estree": "0.15.0"
+ }
+ },
+ "node_modules/hermes-profile-transformer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
+ "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "dependencies": {
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/hosted-git-info": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
+ "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/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/hosted-git-info/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/html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "dependencies": {
+ "void-elements": "3.1.0"
+ }
+ },
+ "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/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/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "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/husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true,
+ "bin": {
+ "husky": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/typicode"
+ }
+ },
+ "node_modules/i18n-js": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-4.4.3.tgz",
+ "integrity": "sha512-QIIyvJ+wOKdigL4BlgwiFFrpoXeGdlC8EYgori64YSWm1mnhNYYjIfRu5wETFrmiNP2fyD6xIjVG8dlzaiQr/A==",
+ "dependencies": {
+ "bignumber.js": "*",
+ "lodash": "*",
+ "make-plural": "*"
+ }
+ },
+ "node_modules/i18next": {
+ "version": "23.10.1",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.10.1.tgz",
+ "integrity": "sha512-NDiIzFbcs3O9PXpfhkjyf7WdqFn5Vq6mhzhtkXzj51aOcNuPNcTwuYNuXCpHsanZGHlHKL35G7huoFeVic1hng==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "dependencies": {
+ "queue": "6.0.2"
+ },
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=16.x"
+ }
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
+ "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/import-fresh/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/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "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/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ },
+ "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==",
+ "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/install": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz",
+ "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dependencies": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
+ },
+ "node_modules/ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-invalid-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
+ "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==",
+ "dependencies": {
+ "is-glob": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-invalid-path/node_modules/is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-invalid-path/node_modules/is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "dependencies": {
+ "is-extglob": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-nan": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "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.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-valid-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
+ "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==",
+ "dependencies": {
+ "is-invalid-path": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+ "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util/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/jest-message-util/node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/jest-mock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util/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/jest-validate": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/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/jest-validate/node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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/jimp-compact": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
+ "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
+ },
+ "node_modules/joi": {
+ "version": "17.12.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz",
+ "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/join-component": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz",
+ "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
+ },
+ "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": "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/jsc-android": {
+ "version": "250231.0.0",
+ "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz",
+ "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw=="
+ },
+ "node_modules/jsc-safe-url": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz",
+ "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="
+ },
+ "node_modules/jscodeshift": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
+ "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
+ "dependencies": {
+ "@babel/core": "^7.13.16",
+ "@babel/parser": "^7.13.16",
+ "@babel/plugin-proposal-class-properties": "^7.13.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
+ "@babel/plugin-proposal-optional-chaining": "^7.13.12",
+ "@babel/plugin-transform-modules-commonjs": "^7.13.8",
+ "@babel/preset-flow": "^7.13.13",
+ "@babel/preset-typescript": "^7.13.0",
+ "@babel/register": "^7.13.16",
+ "babel-core": "^7.0.0-bridge.0",
+ "chalk": "^4.1.2",
+ "flow-parser": "0.*",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.4",
+ "neo-async": "^2.5.0",
+ "node-dir": "^0.1.17",
+ "recast": "^0.21.0",
+ "temp": "^0.8.4",
+ "write-file-atomic": "^2.3.0"
+ },
+ "bin": {
+ "jscodeshift": "bin/jscodeshift.js"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "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-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "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-schema-deref-sync": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz",
+ "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==",
+ "dependencies": {
+ "clone": "^2.1.2",
+ "dag-map": "~1.0.0",
+ "is-valid-path": "^0.1.1",
+ "lodash": "^4.17.13",
+ "md5": "~2.2.0",
+ "memory-cache": "~0.2.0",
+ "traverse": "~0.6.6",
+ "valid-url": "~1.0.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/json-schema-deref-sync/node_modules/md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
+ "dependencies": {
+ "charenc": "~0.0.1",
+ "crypt": "~0.0.1",
+ "is-buffer": "~1.1.1"
+ }
+ },
+ "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": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz",
+ "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "isarray": "^2.0.5",
+ "jsonify": "^0.0.1",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "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/jsonify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz",
+ "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "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/klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "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/lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==",
+ "dependencies": {
+ "invert-kv": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/lighthouse-logger": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
+ "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
+ "dependencies": {
+ "debug": "^2.6.9",
+ "marky": "^1.2.2"
+ }
+ },
+ "node_modules/lighthouse-logger/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/lighthouse-logger/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/lightningcss": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz",
+ "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==",
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.19.0",
+ "lightningcss-darwin-x64": "1.19.0",
+ "lightningcss-linux-arm-gnueabihf": "1.19.0",
+ "lightningcss-linux-arm64-gnu": "1.19.0",
+ "lightningcss-linux-arm64-musl": "1.19.0",
+ "lightningcss-linux-x64-gnu": "1.19.0",
+ "lightningcss-linux-x64-musl": "1.19.0",
+ "lightningcss-win32-x64-msvc": "1.19.0"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz",
+ "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz",
+ "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz",
+ "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz",
+ "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz",
+ "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz",
+ "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz",
+ "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
+ "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz",
+ "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "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/lint-staged": {
+ "version": "15.2.2",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz",
+ "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "5.3.0",
+ "commander": "11.1.0",
+ "debug": "4.3.4",
+ "execa": "8.0.1",
+ "lilconfig": "3.0.0",
+ "listr2": "8.0.1",
+ "micromatch": "4.0.5",
+ "pidtree": "0.6.0",
+ "string-argv": "0.3.2",
+ "yaml": "2.3.4"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "dev": true,
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/lint-staged/node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/lint-staged/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/lint-staged/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/listr2": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz",
+ "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^4.0.0",
+ "colorette": "^2.0.20",
+ "eventemitter3": "^5.0.1",
+ "log-update": "^6.0.0",
+ "rfdc": "^1.3.0",
+ "wrap-ansi": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/listr2/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/listr2/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/listr2/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/listr2/node_modules/wrap-ansi": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file/node_modules/parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
+ "dependencies": {
+ "error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/load-json-file/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "dependencies": {
+ "lie": "3.1.1"
+ }
+ },
+ "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": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "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/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "node_modules/lodash.toarray": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
+ "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw=="
+ },
+ "node_modules/log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dependencies": {
+ "chalk": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/log-symbols/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/log-symbols/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-symbols/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/log-update": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz",
+ "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^6.2.0",
+ "cli-cursor": "^4.0.0",
+ "slice-ansi": "^7.0.0",
+ "strip-ansi": "^7.1.0",
+ "wrap-ansi": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
+ "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
+ "dev": true,
+ "dependencies": {
+ "get-east-asian-width": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
+ "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "is-fullwidth-code-point": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/logkitty": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
+ "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
+ "dependencies": {
+ "ansi-fragments": "^0.2.1",
+ "dayjs": "^1.8.15",
+ "yargs": "^15.1.0"
+ },
+ "bin": {
+ "logkitty": "bin/logkitty.js"
+ }
+ },
+ "node_modules/logkitty/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/logkitty/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/logkitty/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/make-plural": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz",
+ "integrity": "sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw=="
+ },
+ "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/marky": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
+ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q=="
+ },
+ "node_modules/md5": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+ "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+ "dependencies": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "~1.1.6"
+ }
+ },
+ "node_modules/md5-file": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz",
+ "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==",
+ "dependencies": {
+ "buffer-alloc": "^1.1.0"
+ },
+ "bin": {
+ "md5-file": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/md5hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
+ "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
+ },
+ "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/mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==",
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mem/node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/memoize-one": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
+ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
+ },
+ "node_modules/memory-cache": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz",
+ "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA=="
+ },
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/metro": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.6.tgz",
+ "integrity": "sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "accepts": "^1.3.7",
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "denodeify": "^1.2.1",
+ "error-stack-parser": "^2.0.6",
+ "graceful-fs": "^4.2.4",
+ "hermes-parser": "0.19.1",
+ "image-size": "^1.0.2",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "jsc-safe-url": "^0.2.2",
+ "lodash.throttle": "^4.1.1",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-config": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-file-map": "0.80.6",
+ "metro-resolver": "0.80.6",
+ "metro-runtime": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-symbolicate": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "metro-transform-worker": "0.80.6",
+ "mime-types": "^2.1.27",
+ "node-fetch": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "rimraf": "^3.0.2",
+ "serialize-error": "^2.1.0",
+ "source-map": "^0.5.6",
+ "strip-ansi": "^6.0.0",
+ "throat": "^5.0.0",
+ "ws": "^7.5.1",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "metro": "src/cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-babel-transformer": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.6.tgz",
+ "integrity": "sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "hermes-parser": "0.19.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-babel-transformer/node_modules/hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "node_modules/metro-babel-transformer/node_modules/hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "dependencies": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "node_modules/metro-cache": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.6.tgz",
+ "integrity": "sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==",
+ "dependencies": {
+ "metro-core": "0.80.6",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-cache-key": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.6.tgz",
+ "integrity": "sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-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==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/metro-config": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.6.tgz",
+ "integrity": "sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==",
+ "dependencies": {
+ "connect": "^3.6.5",
+ "cosmiconfig": "^5.0.5",
+ "jest-validate": "^29.6.3",
+ "metro": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-runtime": "0.80.6"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-core": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.6.tgz",
+ "integrity": "sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==",
+ "dependencies": {
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "0.80.6"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-file-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.6.tgz",
+ "integrity": "sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==",
+ "dependencies": {
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "micromatch": "^4.0.4",
+ "node-abort-controller": "^3.1.1",
+ "nullthrows": "^1.1.1",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/metro-file-map/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/metro-file-map/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro-minify-terser": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.6.tgz",
+ "integrity": "sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==",
+ "dependencies": {
+ "terser": "^5.15.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-react-native-babel-preset": {
+ "version": "0.77.0",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.77.0.tgz",
+ "integrity": "sha512-HPPD+bTxADtoE4y/4t1txgTQ1LVR6imOBy7RMHUsqMVTbekoi8Ph5YI9vKX2VMPtVWeFt0w9YnCSLPa76GcXsA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.18.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.18.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.20.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.20.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.20.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "babel-plugin-transform-flow-enums": "^0.0.2",
+ "react-refresh": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/metro-react-native-babel-preset/node_modules/react-refresh": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz",
+ "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-resolver": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.6.tgz",
+ "integrity": "sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-runtime": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.6.tgz",
+ "integrity": "sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-source-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.6.tgz",
+ "integrity": "sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==",
+ "dependencies": {
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.80.6",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-source-map/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-symbolicate": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.6.tgz",
+ "integrity": "sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ },
+ "bin": {
+ "metro-symbolicate": "src/index.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-symbolicate/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-transform-plugins": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.6.tgz",
+ "integrity": "sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-transform-worker": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.6.tgz",
+ "integrity": "sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "metro": "0.80.6",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-minify-terser": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/metro/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/metro/node_modules/hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "node_modules/metro/node_modules/hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "dependencies": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "node_modules/metro/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro/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/metro/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/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/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "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-document": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
+ "dev": true,
+ "dependencies": {
+ "dom-walk": "^0.1.0"
+ }
+ },
+ "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.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/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/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/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/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/modal-react-native-web": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/modal-react-native-web/-/modal-react-native-web-0.2.0.tgz",
+ "integrity": "sha512-sC0/jL3ZL4bGtv1VS43TnrH7/FHUqgb7IU3VYWNDzuR223fYlpG5Gc974GsTP172Vi+lnnBL/G70xONmaggxeQ==",
+ "dependencies": {
+ "warning": "^4.0.1"
+ },
+ "peerDependencies": {
+ "react": "16.x.x",
+ "react-art": "16.x.x",
+ "react-dom": "16.x.x",
+ "react-native-web": "0.9.x"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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/mv": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+ "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
+ "optional": true,
+ "dependencies": {
+ "mkdirp": "~0.5.1",
+ "ncp": "~2.0.0",
+ "rimraf": "~2.4.0"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/mv/node_modules/glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
+ "optional": true,
+ "dependencies": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mv/node_modules/rimraf": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+ "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
+ "optional": true,
+ "dependencies": {
+ "glob": "^6.0.1"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "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": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
+ "optional": true,
+ "bin": {
+ "ncp": "bin/ncp"
+ }
+ },
+ "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/nested-error-stacks": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz",
+ "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/nocache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
+ "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/node-abort-controller": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
+ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ=="
+ },
+ "node_modules/node-dir": {
+ "version": "0.1.17",
+ "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+ "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
+ "dependencies": {
+ "minimatch": "^3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10.5"
+ }
+ },
+ "node_modules/node-emoji": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
+ "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
+ "dependencies": {
+ "lodash.toarray": "^4.4.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "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": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ },
+ "node_modules/node-stream-zip": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/antelle"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "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-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "dependencies": {
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/normalize-url/node_modules/query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url/node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-package-arg": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
+ "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==",
+ "dependencies": {
+ "hosted-git-info": "^3.0.2",
+ "osenv": "^0.1.5",
+ "semver": "^5.6.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "node_modules/npm-package-arg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
+ },
+ "node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ob1": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.6.tgz",
+ "integrity": "sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "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"
+ }
+ },
+ "node_modules/object-is": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
+ "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1"
+ },
+ "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.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+ "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "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/optimism": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz",
+ "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==",
+ "dependencies": {
+ "@wry/caches": "^1.0.0",
+ "@wry/context": "^0.7.0",
+ "@wry/trie": "^0.4.3",
+ "tslib": "^2.3.0"
+ }
+ },
+ "node_modules/optimism/node_modules/@wry/trie": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz",
+ "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+ "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/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/ora/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/ora/node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/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/ora/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/ora/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/ora/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/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/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dependencies": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/os-locale/node_modules/cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
+ "dependencies": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "node_modules/os-locale/node_modules/execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==",
+ "dependencies": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/os-locale/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/os-locale/node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/os-locale/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-locale/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-locale/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/os-locale/node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-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/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/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/parse-png": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz",
+ "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
+ "dependencies": {
+ "pngjs": "^3.3.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/password-prompt": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz",
+ "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==",
+ "dependencies": {
+ "ansi-escapes": "^4.3.2",
+ "cross-spawn": "^7.0.3"
+ }
+ },
+ "node_modules/password-prompt/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/password-prompt/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/patch-package": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz",
+ "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==",
+ "dependencies": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^4.1.2",
+ "ci-info": "^3.7.0",
+ "cross-spawn": "^7.0.3",
+ "find-yarn-workspace-root": "^2.0.0",
+ "fs-extra": "^9.0.0",
+ "json-stable-stringify": "^1.0.2",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.6",
+ "open": "^7.4.2",
+ "rimraf": "^2.6.3",
+ "semver": "^7.5.3",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33",
+ "yaml": "^2.2.2"
+ },
+ "bin": {
+ "patch-package": "index.js"
+ },
+ "engines": {
+ "node": ">=14",
+ "npm": ">5"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/patch-package/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/patch-package/node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/patch-package/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/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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "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-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/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": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true,
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-dir/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-dir/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-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": "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-dir/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/plist": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+ "dependencies": {
+ "@xmldom/xmldom": "^0.8.8",
+ "base64-js": "^1.5.1",
+ "xmlbuilder": "^15.1.1"
+ },
+ "engines": {
+ "node": ">=10.4.0"
+ }
+ },
+ "node_modules/plist/node_modules/@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/plist/node_modules/xmlbuilder": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz",
+ "integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "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/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+ "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-config-standard": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-7.0.0.tgz",
+ "integrity": "sha512-NgZy4TYupJR6aMMuV/Aqs0ONnVhlFT8PXVkYRskxREq8EUhJHOddVfBxPV6fWpgcASpJSgvvhVLk0CBO5M3Hvw==",
+ "dev": true,
+ "peerDependencies": {
+ "prettier": "^2.6.0 || ^3.0.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-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/pretty-format/node_modules/@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/pretty-format/node_modules/@types/yargs": {
+ "version": "15.0.19",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
+ "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "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/private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "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/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ },
+ "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-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/pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qrcode-terminal": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
+ "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==",
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "dependencies": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "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/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/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-async-hook": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/react-async-hook/-/react-async-hook-3.6.1.tgz",
+ "integrity": "sha512-YWBB2feVQF79t5u2raMPHlZ8975Jds+guCvkWVC4kRLDlSCouLsYpQm4DGSqPeHvoHYVVcDfqNayLZAXQmnxnw==",
+ "engines": {
+ "node": ">=8",
+ "npm": ">=5"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-deep-force-update": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz",
+ "integrity": "sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==",
+ "dev": true
+ },
+ "node_modules/react-devtools-core": {
+ "version": "4.28.5",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
+ "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
+ "dependencies": {
+ "shell-quote": "^1.6.1",
+ "ws": "^7"
+ }
+ },
+ "node_modules/react-devtools-core/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/react-freeze": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz",
+ "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=17.0.0"
+ }
+ },
+ "node_modules/react-i18next": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.0.tgz",
+ "integrity": "sha512-3KwX6LHpbvGQ+sBEntjV4sYW3Zovjjl3fpoHbUwSgFHf0uRBcbeCBLR5al6ikncI5+W0EFb71QXZmfop+J6NrQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "html-parse-stringify": "^3.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 23.2.3",
+ "react": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "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-native": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.4.tgz",
+ "integrity": "sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==",
+ "dependencies": {
+ "@jest/create-cache-key-function": "^29.6.3",
+ "@react-native-community/cli": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native/assets-registry": "0.73.1",
+ "@react-native/codegen": "0.73.3",
+ "@react-native/community-cli-plugin": "0.73.16",
+ "@react-native/gradle-plugin": "0.73.4",
+ "@react-native/js-polyfills": "0.73.1",
+ "@react-native/normalize-colors": "0.73.2",
+ "@react-native/virtualized-lists": "0.73.4",
+ "abort-controller": "^3.0.0",
+ "anser": "^1.4.9",
+ "ansi-regex": "^5.0.0",
+ "base64-js": "^1.5.1",
+ "chalk": "^4.0.0",
+ "deprecated-react-native-prop-types": "^5.0.0",
+ "event-target-shim": "^5.0.1",
+ "flow-enums-runtime": "^0.0.6",
+ "invariant": "^2.2.4",
+ "jest-environment-node": "^29.6.3",
+ "jsc-android": "^250231.0.0",
+ "memoize-one": "^5.0.0",
+ "metro-runtime": "^0.80.3",
+ "metro-source-map": "^0.80.3",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1",
+ "pretty-format": "^26.5.2",
+ "promise": "^8.3.0",
+ "react-devtools-core": "^4.27.7",
+ "react-refresh": "^0.14.0",
+ "react-shallow-renderer": "^16.15.0",
+ "regenerator-runtime": "^0.13.2",
+ "scheduler": "0.24.0-canary-efb381bbf-20230505",
+ "stacktrace-parser": "^0.1.10",
+ "whatwg-fetch": "^3.0.0",
+ "ws": "^6.2.2",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "react-native": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": "18.2.0"
+ }
+ },
+ "node_modules/react-native-animatable": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz",
+ "integrity": "sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==",
+ "dependencies": {
+ "prop-types": "^15.7.2"
+ }
+ },
+ "node_modules/react-native-button": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-button/-/react-native-button-3.1.0.tgz",
+ "integrity": "sha512-z/KUH1zXHTYoGfldGRm8DKTdYO/5DgNYJDdi/kRdDesb7rx9PiM1ZMq1PUjT+/B0uy/BltJnSLhLCvs4pTL7uQ==",
+ "dependencies": {
+ "deprecated-react-native-prop-types": "^3.0.1",
+ "prop-types": "^15.5.10"
+ },
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-button/node_modules/deprecated-react-native-prop-types": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.2.tgz",
+ "integrity": "sha512-JoZY5iNM+oJlN2Ldpq0KSi0h3Nig4hlNJj5nWzWp8eL3uikMCvHwjSGPitwkEw0arL5JFra5nuGJQpXRbEjApg==",
+ "dependencies": {
+ "@react-native/normalize-color": "^2.1.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "node_modules/react-native-communications": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-native-communications/-/react-native-communications-2.2.1.tgz",
+ "integrity": "sha512-5+C0X9mopI0+qxyQHzOPEi5v5rxNBQjxydPPiKMQSlX1RBIcJ8uTcqUPssQ9Mo8p6c1IKIWJUSqCj4jAmD0qVQ=="
+ },
+ "node_modules/react-native-country-picker-modal": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/react-native-country-picker-modal/-/react-native-country-picker-modal-2.0.0.tgz",
+ "integrity": "sha512-p0wfkKx1mOCEkn3Qm2/FA8TrxSdUw/nqaCcT6KYvIGmPtPdia1Ce+iWh5G0j2hZcDs6yJSkYAx+7lrZ0HwixAw==",
+ "dependencies": {
+ "@callstack/react-theme-provider": "3.0.3",
+ "fuse.js": "3.4.5",
+ "modal-react-native-web": "0.2.0",
+ "node-emoji": "1.10.0",
+ "prop-types": "15.7.2",
+ "react-async-hook": "3.6.1"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*",
+ "react-native": "*",
+ "react-native-web": "*"
+ }
+ },
+ "node_modules/react-native-country-picker-modal/node_modules/prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
+ "node_modules/react-native-flash-message": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/react-native-flash-message/-/react-native-flash-message-0.4.2.tgz",
+ "integrity": "sha512-YvdXRW9AGMTI99S3DJZhLO0mbk/ehKv/UQf4/Df+3dtGi8DlkidRbyqCQZk1WMtZ7rN85PMTGr/xEI9CF9z0YA==",
+ "dependencies": {
+ "prop-types": "^15.8.1",
+ "react-native-iphone-screen-helper": "^2.0.2"
+ },
+ "peerDependencies": {
+ "prop-types": "^15.0 || ^16.0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gesture-handler": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.14.1.tgz",
+ "integrity": "sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==",
+ "dependencies": {
+ "@egjs/hammerjs": "^2.0.17",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gifted-chat": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-gifted-chat/-/react-native-gifted-chat-2.4.0.tgz",
+ "integrity": "sha512-dTpSMH8T4s16dM75oLXiDawpXoVSnApJZY9TWf0jYSRShw++0knnp38hO857zOrt6XhqJKm0JntT0pywYI3rYg==",
+ "dependencies": {
+ "@expo/react-native-action-sheet": "4.0.1",
+ "dayjs": "1.8.26",
+ "prop-types": "15.7.2",
+ "react-native-communications": "2.2.1",
+ "react-native-iphone-x-helper": "1.3.1",
+ "react-native-lightbox-v2": "0.9.0",
+ "react-native-parsed-text": "0.0.22",
+ "react-native-typing-animation": "0.1.7",
+ "use-memo-one": "1.1.3",
+ "uuid": "3.4.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gifted-chat/node_modules/dayjs": {
+ "version": "1.8.26",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.26.tgz",
+ "integrity": "sha512-KqtAuIfdNfZR5sJY1Dixr2Is4ZvcCqhb0dZpCOt5dGEFiMzoIbjkTSzUb4QKTCsP+WNpGwUjAFIZrnZvUxxkhw=="
+ },
+ "node_modules/react-native-gifted-chat/node_modules/prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
+ "node_modules/react-native-gifted-chat/node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/react-native-google-places-autocomplete": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/react-native-google-places-autocomplete/-/react-native-google-places-autocomplete-2.5.6.tgz",
+ "integrity": "sha512-Dy7mFKyEoiNeWPLd7HUkrI/SzJYe7GST55FGtiXzXDoPs05LYHIOCPrT9qFE51COh5X8kgDKm+f7D5aMY/aMbg==",
+ "dependencies": {
+ "lodash.debounce": "^4.0.8",
+ "prop-types": "^15.7.2",
+ "qs": "~6.9.1"
+ },
+ "peerDependencies": {
+ "react-native": ">= 0.59"
+ }
+ },
+ "node_modules/react-native-iphone-screen-helper": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-native-iphone-screen-helper/-/react-native-iphone-screen-helper-2.1.1.tgz",
+ "integrity": "sha512-geuw/bli83+tOg8UpoioLk1H1aEy0wnMDusWkCazsyH6fSk6qzmgaZ2cRyyJRU8s2tG87HctZFKGTkyYzcUcfA==",
+ "peerDependencies": {
+ "react-native": ">=0.42.0"
+ }
+ },
+ "node_modules/react-native-iphone-x-helper": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
+ "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
+ "peerDependencies": {
+ "react-native": ">=0.42.0"
+ }
+ },
+ "node_modules/react-native-lightbox-v2": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/react-native-lightbox-v2/-/react-native-lightbox-v2-0.9.0.tgz",
+ "integrity": "sha512-Fc5VFHFj2vokS+OegyTsANKb1CYoUlOtAv+EBH5wtpJn1b5cey6jVXH7136G5+8OC9JmKWSgKHc5thFwOoZTUg==",
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-native": ">=0.61.0"
+ }
+ },
+ "node_modules/react-native-maps": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-1.10.0.tgz",
+ "integrity": "sha512-Zs6lHZucEijTwkRVFyInMbPVkJ2UudDEI2fJPc8ArdzdnwDFAdL6OagqTjNRZyI1DBPHRihazfIWpy2+X1VwLg==",
+ "dependencies": {
+ "@types/geojson": "^7946.0.13"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": ">= 17.0.1",
+ "react-native": ">= 0.64.3",
+ "react-native-web": ">= 0.11"
+ },
+ "peerDependenciesMeta": {
+ "react-native-web": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-native-material-textfield": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.16.1.tgz",
+ "integrity": "sha512-pcV/ic3i6vYEODS7pvAMUYJ+evkzIB8cjXtSzkab9rBtYNGRpAlM0Yp8QNnjZ7foZqkj9Ynav0nguWcuJST10A==",
+ "dependencies": {
+ "prop-types": "^15.5.9"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0",
+ "react-native": ">=0.55.0"
+ }
+ },
+ "node_modules/react-native-modal": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.1.tgz",
+ "integrity": "sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==",
+ "dependencies": {
+ "prop-types": "^15.6.2",
+ "react-native-animatable": "1.3.3"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": ">=0.65.0"
+ }
+ },
+ "node_modules/react-native-modalize": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.1.1.tgz",
+ "integrity": "sha512-4/7EZWsrUqAAkkAVEnOsSdpAPQaEBewX7TvwFuzgvGDzxKpq3O58I9SnSeU8QtG/r91XYHJNaU5dAuDrcLjUaQ==",
+ "peerDependencies": {
+ "react": "> 15.0.0",
+ "react-native": "> 0.50.0",
+ "react-native-gesture-handler": "> 1.0.0"
+ }
+ },
+ "node_modules/react-native-paper": {
+ "version": "5.12.3",
+ "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.12.3.tgz",
+ "integrity": "sha512-nH1e1pGPE/aOE5YR2GRX7CfMHFA9cAfrAfgCtwL4amJPDZCoVjc5yt2VDiUE1rT+JUfk0qdICMP3UggxvjMgug==",
+ "dependencies": {
+ "@callstack/react-theme-provider": "^3.0.9",
+ "color": "^3.1.2",
+ "use-latest-callback": "^0.1.5"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": "*",
+ "react-native-vector-icons": "*"
+ }
+ },
+ "node_modules/react-native-paper/node_modules/@callstack/react-theme-provider": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.9.tgz",
+ "integrity": "sha512-tTQ0uDSCL0ypeMa8T/E9wAZRGKWj8kXP7+6RYgPTfOPs9N07C9xM8P02GJ3feETap4Ux5S69D9nteq9mEj86NA==",
+ "dependencies": {
+ "deepmerge": "^3.2.0",
+ "hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0"
+ }
+ },
+ "node_modules/react-native-paper/node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/react-native-paper/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/react-native-paper/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/react-native-paper/node_modules/deepmerge": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
+ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-parsed-text": {
+ "version": "0.0.22",
+ "resolved": "https://registry.npmjs.org/react-native-parsed-text/-/react-native-parsed-text-0.0.22.tgz",
+ "integrity": "sha512-hfD83RDXZf9Fvth3DowR7j65fMnlqM9PpxZBGWkzVcUTFtqe6/yPcIoIAgrJbKn6YmtzkivmhWE2MCE4JKBXrQ==",
+ "dependencies": {
+ "prop-types": "^15.7.x"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-phone-number-input": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-phone-number-input/-/react-native-phone-number-input-2.1.0.tgz",
+ "integrity": "sha512-EItzeDH6QUw6Kd1uwqFgcUl1YstxULB1M3HuCMHTvHVLoPE3ddjiuHyx+EHs0+4FcZtaXLQzLuC4cC/c4XIEuA==",
+ "dependencies": {
+ "google-libphonenumber": "^3.2.10",
+ "react-native-country-picker-modal": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-reanimated": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.6.3.tgz",
+ "integrity": "sha512-2KkkPozoIvDbJcHuf8qeyoLROXQxizSi+2CTCkuNVkVZOxxY4B0Omvgq61aOQhSZUh/649x1YHoAaTyGMGDJUw==",
+ "dependencies": {
+ "@babel/plugin-transform-object-assign": "^7.16.7",
+ "@babel/preset-typescript": "^7.16.7",
+ "convert-source-map": "^2.0.0",
+ "invariant": "^2.2.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0-0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0-0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0-0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0-0",
+ "@babel/plugin-transform-template-literals": "^7.0.0-0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-safe-area-context": {
+ "version": "4.8.2",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.8.2.tgz",
+ "integrity": "sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-screens": {
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.29.0.tgz",
+ "integrity": "sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg==",
+ "dependencies": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-star-rating": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-star-rating/-/react-native-star-rating-1.1.0.tgz",
+ "integrity": "sha512-ocOYx+BKUvfruvXm45MBbQZtpkVO3PQieBDepB0FaLuxE3vUtDTPzHqXuBes3iCM5oRi5umrnmMUMsM0mEq5ZA==",
+ "dependencies": {
+ "prop-types": "^15.5.10",
+ "react-native-animatable": "^1.2.4",
+ "react-native-button": "^2.3.0",
+ "react-native-vector-icons": "^4.5.0"
+ }
+ },
+ "node_modules/react-native-star-rating/node_modules/react-native-button": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-button/-/react-native-button-2.4.0.tgz",
+ "integrity": "sha512-4siaJlpOLeL9fAhX8VU3cnUfcGLe3E2zABDWSKxkF+NiYOd+AnKeYY29WXlV8hXhCFo+Ry7E+alrJ6zjZLTSfg==",
+ "dependencies": {
+ "prop-types": "^15.5.10"
+ },
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-svg": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-14.1.0.tgz",
+ "integrity": "sha512-HeseElmEk+AXGwFZl3h56s0LtYD9HyGdrpg8yd9QM26X+d7kjETrRQ9vCjtxuT5dCZEIQ5uggU1dQhzasnsCWA==",
+ "dependencies": {
+ "css-select": "^5.1.0",
+ "css-tree": "^1.1.3"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-typing-animation": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/react-native-typing-animation/-/react-native-typing-animation-0.1.7.tgz",
+ "integrity": "sha512-4H3rF9M+I2yAZpYJcY0Mb29TXkn98QK12rrKSY6LZj1BQD9NNmRZuNXzwX4XHapsIz+N/J8M3p27FOQPbfzqeg==",
+ "peerDependencies": {
+ "prop-types": "*",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-vector-icons": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-4.6.0.tgz",
+ "integrity": "sha512-rpfhfPiXCK2PX1nrNhdxSMrEGB/Gw/SvKoPM0G2wAkSoqynnes19K0VYI+Up7DqR1rFIpE4hP2erpT1tNx2tfg==",
+ "dependencies": {
+ "lodash": "^4.0.0",
+ "prop-types": "^15.5.10",
+ "yargs": "^8.0.2"
+ },
+ "bin": {
+ "generate-icon": "bin/generate-icon.js"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/cliui/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "node_modules/react-native-vector-icons/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug=="
+ },
+ "node_modules/react-native-vector-icons/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/string-width/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/string-width/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ },
+ "node_modules/react-native-vector-icons/node_modules/yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==",
+ "dependencies": {
+ "camelcase": "^4.1.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "read-pkg-up": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^7.0.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==",
+ "dependencies": {
+ "camelcase": "^4.1.0"
+ }
+ },
+ "node_modules/react-native-webview": {
+ "version": "13.6.4",
+ "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.6.4.tgz",
+ "integrity": "sha512-AdgmaMBHPcyERTvng9eSGgHX6AleyUlSusWAxngSOSdiYGgHW81T6C5A8j/ImJAF9oZg0bQDxp43Hu56tzENZQ==",
+ "dependencies": {
+ "escape-string-regexp": "2.0.0",
+ "invariant": "2.2.4"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-webview/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/react-native/node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/react-native/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-native/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/react-navigation-collapsible": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/react-navigation-collapsible/-/react-navigation-collapsible-6.3.0.tgz",
+ "integrity": "sha512-EKr7e9/NrYswmLGNyO+PvUJ58OSMGlan0dWXtaZuW2hblv/HEa/5W0A8cRxFfokcZfaVv154OsviW+4Rc/1dvA==",
+ "dependencies": {
+ "react-native-iphone-x-helper": "^1.3.1",
+ "shallowequal": "^1.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": ">=6",
+ "@react-navigation/stack": ">=6",
+ "react": ">=16.8",
+ "react-native": ">=0.59"
+ }
+ },
+ "node_modules/react-proxy": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz",
+ "integrity": "sha512-46GkBpZD97R/vV+iw+u6aFACzIHOst9gCl41d5K5vepPBz2i2gqHmXQJWKXsrUsSOdylKahN3sd9taswFN8Wzw==",
+ "dev": true,
+ "dependencies": {
+ "lodash": "^4.6.1",
+ "react-deep-force-update": "^1.0.0"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
+ "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-shallow-renderer": {
+ "version": "16.15.0",
+ "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz",
+ "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-test-renderer": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz",
+ "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==",
+ "dev": true,
+ "dependencies": {
+ "react-is": "^18.2.0",
+ "react-shallow-renderer": "^16.15.0",
+ "scheduler": "^0.23.0"
+ },
+ "peerDependencies": {
+ "react": "^18.2.0"
+ }
+ },
+ "node_modules/react-test-renderer/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "node_modules/react-test-renderer/node_modules/scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "dev": true,
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/react-transform-hmr": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz",
+ "integrity": "sha512-8bK1DWUZynE6swD2jNPbzO5mvhB8fs9Ub5GksoVqYkc9i06FdSLC36qQYjaKOW79KBdsROq2cK0tRKITiEzmyg==",
+ "dev": true,
+ "dependencies": {
+ "global": "^4.3.0",
+ "react-proxy": "^1.1.7"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==",
+ "dependencies": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==",
+ "dependencies": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/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/read-pkg-up/node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==",
+ "dependencies": {
+ "pify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/readable-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ },
+ "node_modules/recast": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
+ "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
+ "dependencies": {
+ "ast-types": "0.15.2",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/recast/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/reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/rehackt": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.6.tgz",
+ "integrity": "sha512-l3WEzkt4ntlEc/IB3/mF6SRgNHA6zfQR7BlGOgBTOmx7IJJXojDASav+NsgXHFjHn+6RmwqsGPFgZpabWpeOdw==",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/remove-trailing-slash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
+ "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "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/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/requireg": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz",
+ "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==",
+ "dependencies": {
+ "nested-error-stacks": "~2.0.1",
+ "rc": "~1.2.7",
+ "resolve": "~1.7.1"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/requireg/node_modules/resolve": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
+ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "dependencies": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.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": "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.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/response-iterator": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
+ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/rfdc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
+ "dev": true
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rn-placeholder": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/rn-placeholder/-/rn-placeholder-3.0.3.tgz",
+ "integrity": "sha512-EmVeLT8zDcTPilQZ2OHO/IiYUy2gApKGgbshDZBX0C4qxsn0cFATwgwOwyz8O7Vwg1Hul97Ci95hu7d6Js6XMQ==",
+ "peerDependencies": {
+ "react": "^16.13.1",
+ "react-native": "^0.63.2"
+ }
+ },
+ "node_modules/rtl-detect": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz",
+ "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ=="
+ },
+ "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-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/safe-json-stringify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
+ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "optional": true
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+ },
+ "node_modules/scheduler": {
+ "version": "0.24.0-canary-efb381bbf-20230505",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz",
+ "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "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/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/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/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/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/sentry-expo": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/sentry-expo/-/sentry-expo-7.2.0.tgz",
+ "integrity": "sha512-stVE2B1RgHxpcup8XU1UIGhoI3cta63guExInl6WYx3d5HsvIu8PZ0yDJnJGflYi9cKPAUCxErIQXMTrS0JQEw==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.7.0",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/react-native": "5.17.0",
+ "@sentry/types": "7.81.1",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "peerDependencies": {
+ "expo": ">=47.0.0",
+ "expo-application": "*",
+ "expo-constants": "*",
+ "expo-device": "*"
+ }
+ },
+ "node_modules/sentry-expo/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sentry-expo/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/serialize-error": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
+ "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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/simple-plist": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz",
+ "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==",
+ "dependencies": {
+ "bplist-creator": "0.1.0",
+ "bplist-parser": "0.3.1",
+ "plist": "^3.0.5"
+ }
+ },
+ "node_modules/simple-plist/node_modules/bplist-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "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/slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sort-keys/node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz",
+ "integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==",
+ "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==",
+ "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/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg=="
+ },
+ "node_modules/split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dependencies": {
+ "through": "2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "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.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "node_modules/stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "dependencies": {
+ "type-fest": "^0.7.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/stream-buffers": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
+ "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==",
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-argv": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
+ "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+ "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "regexp.prototype.flags": "^1.5.0",
+ "set-function-name": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-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/strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ },
+ "node_modules/structured-headers": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz",
+ "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="
+ },
+ "node_modules/subscriptions-transport-ws": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz",
+ "integrity": "sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==",
+ "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
+ "dependencies": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^15.7.2 || ^16.0.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/sucrase": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "7.1.6",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sucrase/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/sucrase/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sudo-prompt": {
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
+ "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
+ },
+ "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-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.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/symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/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/temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "dependencies": {
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/temp/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/tempy": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
+ "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "dependencies": {
+ "del": "^6.0.0",
+ "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/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/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/terminal-link/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/terminal-link/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/terser": {
+ "version": "5.29.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz",
+ "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/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=="
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "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/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/traverse": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz",
+ "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+ },
+ "node_modules/ts-invariant": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
+ "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dev": true,
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "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-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": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+ "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ua-parser-js": {
+ "version": "0.7.37",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz",
+ "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "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/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz",
+ "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.11.2"
+ }
+ },
+ "node_modules/url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA=="
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/url/node_modules/qs": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz",
+ "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/use-latest-callback": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz",
+ "integrity": "sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==",
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/use-memo-one": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
+ "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "engines": {
+ "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/valid-url": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
+ "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA=="
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "dependencies": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vlq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
+ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
+ "node_modules/warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/whatwg-fetch": {
+ "version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
+ "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/whatwg-url-without-unicode": {
+ "version": "8.0.0-3",
+ "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz",
+ "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==",
+ "dependencies": {
+ "buffer": "^5.4.3",
+ "punycode": "^2.1.1",
+ "webidl-conversions": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/whatwg-url-without-unicode/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/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==",
+ "dev": true,
+ "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/which-builtin-type": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
+ "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "dev": true,
+ "dependencies": {
+ "function.prototype.name": "^1.1.5",
+ "has-tostringtag": "^1.0.0",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "dependencies": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wonka": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
+ "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg=="
+ },
+ "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/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/wrap-ansi/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/wrap-ansi/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/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "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/xcode": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz",
+ "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==",
+ "dependencies": {
+ "simple-plist": "^1.1.0",
+ "uuid": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/xcode/node_modules/uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/xml2js": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
+ "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xml2js/node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz",
+ "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "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": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "node_modules/yaml": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs/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/yargs/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/yargs/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/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"
+ }
+ },
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
+ "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
+ "dependencies": {
+ "zen-observable": "0.8.15"
+ }
+ }
+ }
+}
diff --git a/enatega-multivendor-app/package.json b/enatega-multivendor-app/package.json
new file mode 100644
index 0000000..5832450
--- /dev/null
+++ b/enatega-multivendor-app/package.json
@@ -0,0 +1,126 @@
+{
+ "name": "enatega-full-app",
+ "version": "5.0.0",
+ "main": "node_modules/expo/AppEntry.js",
+ "scripts": {
+ "start": "expo start --offline",
+ "android": "expo run:android",
+ "ios": "expo run:ios",
+ "eject": "expo eject",
+ "format": "prettier --write '**/*.js'",
+ "lint:fix": "eslint . --ext .js --fix",
+ "postinstall": "patch-package",
+ "build:staging": "eas build --profile staging -p all",
+ "build:staging:android": "eas build --profile staging -p android",
+ "build:staging:ios": "eas build --profile staging -p ios",
+ "build:production": "eas build --profile production -p all",
+ "build:production:android": "eas build --profile production -p android",
+ "build:production:ios": "eas build --profile production -p ios",
+ "submit:production": "eas submit --profile production -p all",
+ "submit:production:android": "eas submit --profile production -p android",
+ "submit:production:ios": "eas submit --profile production -p ios",
+ "publish:staging": "ENVIRONMENT=staging expo publish --release-channel staging",
+ "publish:production": "ENVIRONMENT=production expo publish --release-channel production"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "*.js": [
+ "npm run format",
+ "npm run lint:fix"
+ ]
+ },
+ "dependencies": {
+ "@amplitude/analytics-react-native": "^1.1.1",
+ "@apollo/client": "^3.5.6",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@expo/vector-icons": "^14.0.0",
+ "@react-native-async-storage/async-storage": "1.21.0",
+ "@react-native-community/datetimepicker": "7.6.1",
+ "@react-native-google-signin/google-signin": "^11.0.0",
+ "@react-navigation/drawer": "^6.3.0",
+ "@react-navigation/elements": "^1.2.1",
+ "@react-navigation/native": "^6.0.6",
+ "@react-navigation/stack": "^6.0.11",
+ "@sentry/react-native": "5.17.0",
+ "@twotalltotems/react-native-otp-input": "^1.3.11",
+ "core-js": "^3.33.3",
+ "deprecated-react-native-prop-types": "^5.0.0",
+ "expo": "~50.0.3",
+ "expo-apple-authentication": "~6.3.0",
+ "expo-application": "~5.8.3",
+ "expo-constants": "~15.4.5",
+ "expo-crypto": "~12.8.0",
+ "expo-dev-client": "~3.3.8",
+ "expo-device": "~5.9.3",
+ "expo-font": "~11.10.2",
+ "expo-image-picker": "~14.7.1",
+ "expo-localization": "~14.8.3",
+ "expo-location": "~16.5.2",
+ "expo-notifications": "~0.27.5",
+ "expo-random": "~13.6.0",
+ "expo-splash-screen": "~0.26.4",
+ "expo-system-ui": "~2.9.3",
+ "expo-tracking-transparency": "~3.3.0",
+ "expo-updates": "~0.24.10",
+ "expo-web-browser": "~12.8.2",
+ "graphql": "^16.8.1",
+ "graphql-tag": "^2.10.1",
+ "i18n-js": "^4.3.2",
+ "i18next": "^23.7.6",
+ "install": "^0.13.0",
+ "moment": "^2.29.1",
+ "patch-package": "^8.0.0",
+ "react": "18.2.0",
+ "react-i18next": "^14.0.1",
+ "react-native": "0.73.4",
+ "react-native-button": "^3.0.1",
+ "react-native-country-picker-modal": "^2.0.0",
+ "react-native-flash-message": "^0.4.2",
+ "react-native-gesture-handler": "~2.14.0",
+ "react-native-gifted-chat": "^2.4.0",
+ "react-native-google-places-autocomplete": "^2.1.1",
+ "react-native-maps": "1.10.0",
+ "react-native-material-textfield": "^0.16.1",
+ "react-native-modal": "^13.0.1",
+ "react-native-modalize": "^2.0.13",
+ "react-native-paper": "^5.8.0",
+ "react-native-phone-number-input": "^2.1.0",
+ "react-native-reanimated": "~3.6.2",
+ "react-native-safe-area-context": "4.8.2",
+ "react-native-screens": "~3.29.0",
+ "react-native-star-rating": "^1.1.0",
+ "react-native-svg": "14.1.0",
+ "react-native-webview": "13.6.4",
+ "react-navigation-collapsible": "^6.3.0",
+ "rn-placeholder": "^3.0.1",
+ "sentry-expo": "~7.2.0",
+ "subscriptions-transport-ws": "^0.11.0",
+ "uglify-js": "^3.17.4",
+ "uuid": "^9.0.1",
+ "expo-linking": "~6.2.2"
+ },
+ "devDependencies": {
+ "@expo/metro-config": "^0.17.3",
+ "babel-preset-expo": "^10.0.0",
+ "babel-preset-react-native": "^4.0.1",
+ "eslint": "^8.56.0",
+ "eslint-config-standard": "^17.1.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^6.1.1",
+ "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-standard": "^5.0.0",
+ "husky": "^8.0.3",
+ "lint-staged": "^15.2.0",
+ "metro-react-native-babel-preset": "^0.77.0",
+ "prettier": "^3.2.4",
+ "prettier-config-standard": "^7.0.0",
+ "react-test-renderer": "^18.2.0"
+ },
+ "private": true
+}
diff --git a/enatega-multivendor-app/patches/@twotalltotems+react-native-otp-input+1.3.11.patch b/enatega-multivendor-app/patches/@twotalltotems+react-native-otp-input+1.3.11.patch
new file mode 100644
index 0000000..8bf7ea8
--- /dev/null
+++ b/enatega-multivendor-app/patches/@twotalltotems+react-native-otp-input+1.3.11.patch
@@ -0,0 +1,15 @@
+diff --git a/node_modules/@twotalltotems/react-native-otp-input/dist/index.js b/node_modules/@twotalltotems/react-native-otp-input/dist/index.js
+index 71580b8..c9a05de 100644
+--- a/node_modules/@twotalltotems/react-native-otp-input/dist/index.js
++++ b/node_modules/@twotalltotems/react-native-otp-input/dist/index.js
+@@ -10,8 +10,8 @@ export default class OTPInputView extends Component {
+ this.fields = [];
+ this.copyCodeFromClipBoardOnAndroid = () => {
+ if (Platform.OS === "android") {
+- this.checkPinCodeFromClipBoard();
+- this.timer = setInterval(this.checkPinCodeFromClipBoard, 400);
++ // this.checkPinCodeFromClipBoard();
++ // this.timer = setInterval(this.checkPinCodeFromClipBoard, 400);
+ }
+ };
+ this.bringUpKeyBoardIfNeeded = () => {
diff --git a/enatega-multivendor-app/patches/react-native+0.73.4.patch b/enatega-multivendor-app/patches/react-native+0.73.4.patch
new file mode 100644
index 0000000..f4e3b53
--- /dev/null
+++ b/enatega-multivendor-app/patches/react-native+0.73.4.patch
@@ -0,0 +1,51 @@
+diff --git a/node_modules/react-native/Libraries/Renderer/implementations/.ReactNativeRenderer-dev.js.swp b/node_modules/react-native/Libraries/Renderer/implementations/.ReactNativeRenderer-dev.js.swp
+new file mode 100644
+index 0000000..e69de29
+diff --git a/node_modules/react-native/index.js b/node_modules/react-native/index.js
+index 7149c64..6939b48 100644
+--- a/node_modules/react-native/index.js
++++ b/node_modules/react-native/index.js
+@@ -380,43 +380,15 @@ module.exports = {
+ },
+ // Deprecated Prop Types
+ get ColorPropType(): $FlowFixMe {
+- console.error(
+- 'ColorPropType will be removed from React Native, along with all ' +
+- 'other PropTypes. We recommend that you migrate away from PropTypes ' +
+- 'and switch to a type system like TypeScript. If you need to ' +
+- 'continue using ColorPropType, migrate to the ' +
+- "'deprecated-react-native-prop-types' package.",
+- );
+ return require('deprecated-react-native-prop-types').ColorPropType;
+ },
+ get EdgeInsetsPropType(): $FlowFixMe {
+- console.error(
+- 'EdgeInsetsPropType will be removed from React Native, along with all ' +
+- 'other PropTypes. We recommend that you migrate away from PropTypes ' +
+- 'and switch to a type system like TypeScript. If you need to ' +
+- 'continue using EdgeInsetsPropType, migrate to the ' +
+- "'deprecated-react-native-prop-types' package.",
+- );
+ return require('deprecated-react-native-prop-types').EdgeInsetsPropType;
+ },
+ get PointPropType(): $FlowFixMe {
+- console.error(
+- 'PointPropType will be removed from React Native, along with all ' +
+- 'other PropTypes. We recommend that you migrate away from PropTypes ' +
+- 'and switch to a type system like TypeScript. If you need to ' +
+- 'continue using PointPropType, migrate to the ' +
+- "'deprecated-react-native-prop-types' package.",
+- );
+ return require('deprecated-react-native-prop-types').PointPropType;
+ },
+ get ViewPropTypes(): $FlowFixMe {
+- console.error(
+- 'ViewPropTypes will be removed from React Native, along with all ' +
+- 'other PropTypes. We recommend that you migrate away from PropTypes ' +
+- 'and switch to a type system like TypeScript. If you need to ' +
+- 'continue using ViewPropTypes, migrate to the ' +
+- "'deprecated-react-native-prop-types' package.",
+- );
+ return require('deprecated-react-native-prop-types').ViewPropTypes;
+ },
+ };
diff --git a/enatega-multivendor-app/patches/react-native-material-textfield+0.16.1.patch b/enatega-multivendor-app/patches/react-native-material-textfield+0.16.1.patch
new file mode 100644
index 0000000..796f956
--- /dev/null
+++ b/enatega-multivendor-app/patches/react-native-material-textfield+0.16.1.patch
@@ -0,0 +1,354 @@
+diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
+index 0f85022..e467adb 100644
+--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
++++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
+@@ -9,26 +9,26 @@ export default class Affix extends PureComponent {
+ numberOfLines: 1,
+ };
+
+- static propTypes = {
+- numberOfLines: PropTypes.number,
+- style: Animated.Text.propTypes.style,
++ // static propTypes = {
++ // numberOfLines: PropTypes.number,
++ // style: PropTypes.object,
+
+- color: PropTypes.string.isRequired,
+- fontSize: PropTypes.number.isRequired,
++ // color: PropTypes.string.isRequired,
++ // fontSize: PropTypes.number.isRequired,
+
+- type: PropTypes
+- .oneOf(['prefix', 'suffix'])
+- .isRequired,
++ // type: PropTypes
++ // .oneOf(['prefix', 'suffix'])
++ // .isRequired,
+
+- labelAnimation: PropTypes
+- .instanceOf(Animated.Value)
+- .isRequired,
++ // labelAnimation: PropTypes
++ // .instanceOf(Animated.Value)
++ // .isRequired,
+
+- children: PropTypes.oneOfType([
+- PropTypes.arrayOf(PropTypes.node),
+- PropTypes.node,
+- ]),
+- };
++ // children: PropTypes.oneOfType([
++ // PropTypes.arrayOf(PropTypes.node),
++ // PropTypes.node,
++ // ]),
++ // };
+
+ render() {
+ let { labelAnimation, style, children, type, fontSize, color } = this.props;
+diff --git a/node_modules/react-native-material-textfield/src/components/counter/index.js b/node_modules/react-native-material-textfield/src/components/counter/index.js
+index 35d3264..8f4b8df 100644
+--- a/node_modules/react-native-material-textfield/src/components/counter/index.js
++++ b/node_modules/react-native-material-textfield/src/components/counter/index.js
+@@ -1,19 +1,19 @@
+ import PropTypes from 'prop-types';
+ import React, { PureComponent } from 'react';
+-import { Text } from 'react-native';
++import {TextPropTypes} from 'deprecated-react-native-prop-types';
+
+ import styles from './styles';
+
+ export default class Counter extends PureComponent {
+- static propTypes = {
+- count: PropTypes.number.isRequired,
+- limit: PropTypes.number,
++ // static propTypes = {
++ // count: PropTypes.number.isRequired,
++ // limit: PropTypes.number,
+
+- baseColor: PropTypes.string.isRequired,
+- errorColor: PropTypes.string.isRequired,
++ // baseColor: PropTypes.string.isRequired,
++ // errorColor: PropTypes.string.isRequired,
+
+- style: Text.propTypes.style,
+- };
++ // style: TextPropTypes.style,
++ // };
+
+ render() {
+ let { count, limit, baseColor, errorColor, style } = this.props;
+diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
+index 494bbaa..acb9429 100644
+--- a/node_modules/react-native-material-textfield/src/components/field/index.js
++++ b/node_modules/react-native-material-textfield/src/components/field/index.js
+@@ -2,14 +2,14 @@ import PropTypes from 'prop-types';
+ import React, { PureComponent } from 'react';
+ import {
+ View,
+- Text,
+ TextInput,
+ Animated,
+ StyleSheet,
+ Platform,
+- ViewPropTypes,
+ } from 'react-native';
+
++import {TextPropTypes, ViewPropTypes} from 'deprecated-react-native-prop-types';
++
+ import Line from '../line';
+ import Label from '../label';
+ import Affix from '../affix';
+@@ -65,60 +65,60 @@ export default class TextField extends PureComponent {
+ disabled: false,
+ };
+
+- static propTypes = {
+- ...TextInput.propTypes,
++ // static propTypes = {
++ // ...TextInput.propTypes,
+
+- animationDuration: PropTypes.number,
++ // animationDuration: PropTypes.number,
+
+- fontSize: PropTypes.number,
+- labelFontSize: PropTypes.number,
++ // fontSize: PropTypes.number,
++ // labelFontSize: PropTypes.number,
+
+- contentInset: PropTypes.shape({
+- top: PropTypes.number,
+- label: PropTypes.number,
+- input: PropTypes.number,
+- left: PropTypes.number,
+- right: PropTypes.number,
+- }),
++ // contentInset: PropTypes.shape({
++ // top: PropTypes.number,
++ // label: PropTypes.number,
++ // input: PropTypes.number,
++ // left: PropTypes.number,
++ // right: PropTypes.number,
++ // }),
+
+- labelOffset: Label.propTypes.offset,
++ // labelOffset: Label.propTypes.offset,
+
+- labelTextStyle: Text.propTypes.style,
+- titleTextStyle: Text.propTypes.style,
+- affixTextStyle: Text.propTypes.style,
++ // labelTextStyle: TextPropTypes.style,
++ // titleTextStyle: TextPropTypes.style,
++ // affixTextStyle: TextPropTypes.style,
+
+- tintColor: PropTypes.string,
+- textColor: PropTypes.string,
+- baseColor: PropTypes.string,
++ // tintColor: PropTypes.string,
++ // textColor: PropTypes.string,
++ // baseColor: PropTypes.string,
+
+- label: PropTypes.string,
+- title: PropTypes.string,
++ // label: PropTypes.string,
++ // title: PropTypes.string,
+
+- characterRestriction: PropTypes.number,
++ // characterRestriction: PropTypes.number,
+
+- error: PropTypes.string,
+- errorColor: PropTypes.string,
++ // error: PropTypes.string,
++ // errorColor: PropTypes.string,
+
+- lineWidth: PropTypes.number,
+- activeLineWidth: PropTypes.number,
+- disabledLineWidth: PropTypes.number,
++ // lineWidth: PropTypes.number,
++ // activeLineWidth: PropTypes.number,
++ // disabledLineWidth: PropTypes.number,
+
+- lineType: Line.propTypes.lineType,
+- disabledLineType: Line.propTypes.lineType,
++ // lineType: Line.propTypes.lineType,
++ // disabledLineType: Line.propTypes.lineType,
+
+- disabled: PropTypes.bool,
++ // disabled: PropTypes.bool,
+
+- formatText: PropTypes.func,
++ // formatText: PropTypes.func,
+
+- renderLeftAccessory: PropTypes.func,
+- renderRightAccessory: PropTypes.func,
++ // renderLeftAccessory: PropTypes.func,
++ // renderRightAccessory: PropTypes.func,
+
+- prefix: PropTypes.string,
+- suffix: PropTypes.string,
++ // prefix: PropTypes.string,
++ // suffix: PropTypes.string,
+
+- containerStyle: (ViewPropTypes || View.propTypes).style,
+- inputContainerStyle: (ViewPropTypes || View.propTypes).style,
+- };
++ // containerStyle: (ViewPropTypes || View.propTypes).style,
++ // inputContainerStyle: (ViewPropTypes || View.propTypes).style,
++ // };
+
+ static inputContainerStyle = styles.inputContainer;
+
+@@ -221,6 +221,7 @@ export default class TextField extends PureComponent {
+
+ let options = {
+ toValue: this.focusState(),
++ useNativeDriver: false,
+ duration,
+ };
+
+diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
+index 6060f9f..7f790ca 100644
+--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
++++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
+@@ -5,19 +5,19 @@ import { Animated } from 'react-native';
+ import styles from './styles';
+
+ export default class Helper extends PureComponent {
+- static propTypes = {
+- title: PropTypes.string,
+- error: PropTypes.string,
++ // static propTypes = {
++ // title: PropTypes.string,
++ // error: PropTypes.string,
+
+- disabled: PropTypes.bool,
++ // disabled: PropTypes.bool,
+
+- style: Animated.Text.propTypes.style,
++ // style: PropTypes.object,
+
+- baseColor: PropTypes.string,
+- errorColor: PropTypes.string,
++ // baseColor: PropTypes.string,
++ // errorColor: PropTypes.string,
+
+- focusAnimation: PropTypes.instanceOf(Animated.Value),
+- };
++ // focusAnimation: PropTypes.instanceOf(Animated.Value),
++ // };
+
+ constructor(props) {
+ super(props);
+diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
+index 82eaf03..1ad9a93 100644
+--- a/node_modules/react-native-material-textfield/src/components/label/index.js
++++ b/node_modules/react-native-material-textfield/src/components/label/index.js
+@@ -11,41 +11,41 @@ export default class Label extends PureComponent {
+ restricted: false,
+ };
+
+- static propTypes = {
+- numberOfLines: PropTypes.number,
++ // static propTypes = {
++ // numberOfLines: PropTypes.number,
+
+- disabled: PropTypes.bool,
+- restricted: PropTypes.bool,
++ // disabled: PropTypes.bool,
++ // restricted: PropTypes.bool,
+
+- fontSize: PropTypes.number.isRequired,
+- activeFontSize: PropTypes.number.isRequired,
++ // fontSize: PropTypes.number.isRequired,
++ // activeFontSize: PropTypes.number.isRequired,
+
+- baseColor: PropTypes.string.isRequired,
+- tintColor: PropTypes.string.isRequired,
+- errorColor: PropTypes.string.isRequired,
++ // baseColor: PropTypes.string.isRequired,
++ // tintColor: PropTypes.string.isRequired,
++ // errorColor: PropTypes.string.isRequired,
+
+- focusAnimation: PropTypes
+- .instanceOf(Animated.Value)
+- .isRequired,
++ // focusAnimation: PropTypes
++ // .instanceOf(Animated.Value)
++ // .isRequired,
+
+- labelAnimation: PropTypes
+- .instanceOf(Animated.Value)
+- .isRequired,
++ // labelAnimation: PropTypes
++ // .instanceOf(Animated.Value)
++ // .isRequired,
+
+- contentInset: PropTypes.shape({
+- label: PropTypes.number,
+- }),
++ // contentInset: PropTypes.shape({
++ // label: PropTypes.number,
++ // }),
+
+- offset: PropTypes.shape({
+- x0: PropTypes.number,
+- y0: PropTypes.number,
+- x1: PropTypes.number,
+- y1: PropTypes.number,
+- }),
++ // offset: PropTypes.shape({
++ // x0: PropTypes.number,
++ // y0: PropTypes.number,
++ // x1: PropTypes.number,
++ // y1: PropTypes.number,
++ // }),
+
+- style: Animated.Text.propTypes.style,
+- label: PropTypes.string,
+- };
++ // style: PropTypes.object,
++ // label: PropTypes.string,
++ // };
+
+ render() {
+ let {
+diff --git a/node_modules/react-native-material-textfield/src/components/line/index.js b/node_modules/react-native-material-textfield/src/components/line/index.js
+index 44995e9..b689387 100644
+--- a/node_modules/react-native-material-textfield/src/components/line/index.js
++++ b/node_modules/react-native-material-textfield/src/components/line/index.js
+@@ -16,23 +16,23 @@ export default class Line extends PureComponent {
+ restricted: false,
+ };
+
+- static propTypes = {
+- lineType: lineTypes,
+- disabledLineType: lineTypes,
++ // static propTypes = {
++ // lineType: lineTypes,
++ // disabledLineType: lineTypes,
+
+- disabled: PropTypes.bool,
+- restricted: PropTypes.bool,
++ // disabled: PropTypes.bool,
++ // restricted: PropTypes.bool,
+
+- tintColor: PropTypes.string,
+- baseColor: PropTypes.string,
+- errorColor: PropTypes.string,
++ // tintColor: PropTypes.string,
++ // baseColor: PropTypes.string,
++ // errorColor: PropTypes.string,
+
+- lineWidth: PropTypes.number,
+- activeLineWidth: PropTypes.number,
+- disabledLineWidth: PropTypes.number,
++ // lineWidth: PropTypes.number,
++ // activeLineWidth: PropTypes.number,
++ // disabledLineWidth: PropTypes.number,
+
+- focusAnimation: PropTypes.instanceOf(Animated.Value),
+- };
++ // focusAnimation: PropTypes.instanceOf(Animated.Value),
++ // };
+
+ static getDerivedStateFromProps(props, state) {
+ let { lineWidth, activeLineWidth, disabledLineWidth } = props;
diff --git a/enatega-multivendor-app/patches/react-native-modalize+2.1.1.patch b/enatega-multivendor-app/patches/react-native-modalize+2.1.1.patch
new file mode 100644
index 0000000..e6d18f1
--- /dev/null
+++ b/enatega-multivendor-app/patches/react-native-modalize+2.1.1.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/react-native-modalize/lib/index.js b/node_modules/react-native-modalize/lib/index.js
+index 5d5edac..07a93c0 100644
+--- a/node_modules/react-native-modalize/lib/index.js
++++ b/node_modules/react-native-modalize/lib/index.js
+@@ -556,7 +556,7 @@ onOpen, onOpened, onClose, onClosed, onBackButtonPress, onPositionChange, onOver
+ const renderChildren = () => {
+ const style = adjustToContentHeight ? styles_1.default.content__adjustHeight : styles_1.default.content__container;
+ const minDist = libraries_1.isRNGH2() ? undefined : ACTIVATED;
+- return (React.createElement(react_native_gesture_handler_1.PanGestureHandler, { ref: panGestureChildrenRef, enabled: panGestureEnabled, simultaneousHandlers: [nativeViewChildrenRef, tapGestureModalizeRef], shouldCancelWhenOutside: false, onGestureEvent: handleGestureEvent, minDist: minDist, activeOffsetY: ACTIVATED, activeOffsetX: ACTIVATED, onHandlerStateChange: handleChildren },
++ return (React.createElement(react_native_gesture_handler_1.PanGestureHandler, { ref: panGestureChildrenRef, enabled: panGestureEnabled, simultaneousHandlers: [nativeViewChildrenRef, tapGestureModalizeRef], shouldCancelWhenOutside: false, onGestureEvent: handleGestureEvent, activeOffsetY: ACTIVATED, activeOffsetX: ACTIVATED, onHandlerStateChange: handleChildren },
+ React.createElement(react_native_1.Animated.View, { style: [style, childrenStyle] },
+ React.createElement(react_native_gesture_handler_1.NativeViewGestureHandler, { ref: nativeViewChildrenRef, waitFor: tapGestureModalizeRef, simultaneousHandlers: panGestureChildrenRef }, renderContent()))));
+ };
diff --git a/enatega-multivendor-app/patches/react-native-star-rating++react-native-button+2.4.0.patch b/enatega-multivendor-app/patches/react-native-star-rating++react-native-button+2.4.0.patch
new file mode 100644
index 0000000..b7a8f34
--- /dev/null
+++ b/enatega-multivendor-app/patches/react-native-star-rating++react-native-button+2.4.0.patch
@@ -0,0 +1,35 @@
+diff --git a/node_modules/react-native-star-rating/node_modules/react-native-button/Button.js b/node_modules/react-native-star-rating/node_modules/react-native-button/Button.js
+index fb7cf46..cb79a71 100644
+--- a/node_modules/react-native-star-rating/node_modules/react-native-button/Button.js
++++ b/node_modules/react-native-star-rating/node_modules/react-native-button/Button.js
+@@ -2,12 +2,13 @@ import PropTypes from 'prop-types';
+ import React, { Component } from 'react';
+ import {
+ StyleSheet,
+- Text,
+ TouchableOpacity,
+ View,
+ ViewPropTypes,
+ } from 'react-native';
+
++import {TextPropTypes} from 'deprecated-react-native-prop-types';
++
+ import coalesceNonElementChildren from './coalesceNonElementChildren';
+
+ const systemButtonOpacity = 0.2;
+@@ -16,12 +17,12 @@ export default class Button extends Component {
+ static propTypes = {
+ ...TouchableOpacity.propTypes,
+ accessibilityLabel: PropTypes.string,
+- allowFontScaling: Text.propTypes.allowFontScaling,
++ allowFontScaling: TextPropTypes.allowFontScaling,
+ containerStyle: ViewPropTypes.style,
+ disabledContainerStyle: ViewPropTypes.style,
+ disabled: PropTypes.bool,
+- style: Text.propTypes.style,
+- styleDisabled: Text.propTypes.style,
++ style: TextPropTypes.style,
++ styleDisabled: TextPropTypes.style,
+ childGroupStyle: ViewPropTypes.style,
+ };
+
diff --git a/enatega-multivendor-app/patches/react-native-star-rating+1.1.0.patch b/enatega-multivendor-app/patches/react-native-star-rating+1.1.0.patch
new file mode 100644
index 0000000..35a61f7
--- /dev/null
+++ b/enatega-multivendor-app/patches/react-native-star-rating+1.1.0.patch
@@ -0,0 +1,34 @@
+diff --git a/node_modules/react-native-star-rating/StarButton.js b/node_modules/react-native-star-rating/StarButton.js
+index b6db613..ad135f6 100644
+--- a/node_modules/react-native-star-rating/StarButton.js
++++ b/node_modules/react-native-star-rating/StarButton.js
+@@ -1,9 +1,11 @@
+ // React and react native imports
+ import React, { Component } from 'react';
+-import { Image, StyleSheet, ViewPropTypes } from 'react-native';
++import { Image, StyleSheet } from 'react-native';
+ import PropTypes from 'prop-types';
+ import { createIconSetFromIcoMoon } from 'react-native-vector-icons';
+
++import {ViewPropTypes} from 'deprecated-react-native-prop-types';
++
+ // Third party imports
+ import Button from 'react-native-button';
+ import EntypoIcons from 'react-native-vector-icons/Entypo';
+diff --git a/node_modules/react-native-star-rating/StarRating.js b/node_modules/react-native-star-rating/StarRating.js
+index 7aecc95..3f0a971 100644
+--- a/node_modules/react-native-star-rating/StarRating.js
++++ b/node_modules/react-native-star-rating/StarRating.js
+@@ -1,9 +1,11 @@
+ // React and react native imports
+ import React, { Component } from 'react';
+-import { View, ViewPropTypes, StyleSheet } from 'react-native';
++import { View, StyleSheet } from 'react-native';
+ import PropTypes from 'prop-types';
+ import { View as AnimatableView } from 'react-native-animatable';
+
++import {ViewPropTypes} from 'deprecated-react-native-prop-types';
++
+ // Local file imports
+ import StarButton from './StarButton';
+
diff --git a/enatega-multivendor-app/src/apollo/index.js b/enatega-multivendor-app/src/apollo/index.js
new file mode 100644
index 0000000..f02bea9
--- /dev/null
+++ b/enatega-multivendor-app/src/apollo/index.js
@@ -0,0 +1,108 @@
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import {
+ ApolloClient,
+ InMemoryCache,
+ createHttpLink,
+ ApolloLink,
+ split,
+ concat,
+ Observable
+} from '@apollo/client'
+import {
+ getMainDefinition,
+ offsetLimitPagination
+} from '@apollo/client/utilities'
+import { WebSocketLink } from '@apollo/client/link/ws'
+import useEnvVars from '../../environment'
+
+const setupApollo = () => {
+ const { GRAPHQL_URL, WS_GRAPHQL_URL } = useEnvVars()
+
+ const cache = new InMemoryCache({
+ typePolicies: {
+ Query: {
+ fields: {
+ _id: {
+ keyArgs: ['string']
+ },
+ orders: offsetLimitPagination()
+ }
+ },
+ Category: {
+ fields: {
+ foods: {
+ merge(_existing, incoming) {
+ return incoming
+ }
+ }
+ }
+ },
+ Food: {
+ fields: {
+ variations: {
+ merge(_existing, incoming) {
+ return incoming
+ }
+ }
+ }
+ }
+ }
+ })
+
+ const httpLink = createHttpLink({
+ uri: GRAPHQL_URL
+ })
+
+ const wsLink = new WebSocketLink({
+ uri: WS_GRAPHQL_URL,
+ options: {
+ reconnect: true
+ }
+ })
+
+ const request = async operation => {
+ const token = await AsyncStorage.getItem('token')
+
+ operation.setContext({
+ headers: {
+ authorization: token ? `Bearer ${token}` : ''
+ }
+ })
+ }
+
+ const requestLink = new ApolloLink(
+ (operation, forward) =>
+ new Observable(observer => {
+ let handle
+ Promise.resolve(operation)
+ .then(oper => request(oper))
+ .then(() => {
+ handle = forward(operation).subscribe({
+ next: observer.next.bind(observer),
+ error: observer.error.bind(observer),
+ complete: observer.complete.bind(observer)
+ })
+ })
+ .catch(observer.error.bind(observer))
+
+ return () => {
+ if (handle) handle.unsubscribe()
+ }
+ })
+ )
+
+ const terminatingLink = split(({ query }) => {
+ const { kind, operation } = getMainDefinition(query)
+ return kind === 'OperationDefinition' && operation === 'subscription'
+ }, wsLink)
+
+ const client = new ApolloClient({
+ link: concat(ApolloLink.from([terminatingLink, requestLink]), httpLink),
+ cache,
+ resolvers: {}
+ })
+
+ return client
+}
+
+export default setupApollo
diff --git a/enatega-multivendor-app/src/apollo/mutations.js b/enatega-multivendor-app/src/apollo/mutations.js
new file mode 100644
index 0000000..5e0fcf0
--- /dev/null
+++ b/enatega-multivendor-app/src/apollo/mutations.js
@@ -0,0 +1,356 @@
+export const sendChatMessage = `mutation SendChatMessage($orderId: ID!, $messageInput: ChatMessageInput!) {
+ sendChatMessage(message: $messageInput, orderId: $orderId) {
+ success
+ message
+ data {
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+ }
+ }
+ `
+
+export const placeOrder = `
+ mutation PlaceOrder($restaurant:String!,$orderInput:[OrderInput!]!,$paymentMethod:String!,$couponCode:String,$tipping:Float!, $taxationAmount: Float!,$address:AddressInput!, $orderDate: String!,$isPickedUp: Boolean!, $deliveryCharges: Float!){
+ placeOrder(restaurant:$restaurant,orderInput: $orderInput,paymentMethod:$paymentMethod,couponCode:$couponCode,tipping:$tipping, taxationAmount: $taxationAmount, address:$address, orderDate: $orderDate,isPickedUp: $isPickedUp, deliveryCharges:$deliveryCharges) {
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ orderDate
+ expectedTime
+ isPickedUp
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ deliveryCharges
+ acceptedAt
+ pickedAt
+ deliveredAt
+ cancelledAt
+ assignedAt
+ }
+ }`
+
+export const pushToken = `mutation PushToken($token:String){
+ pushToken(token:$token){
+ _id
+ notificationToken
+ }
+ }`
+
+export const forgotPassword = `mutation ForgotPassword($email:String!,$otp:String!){
+ forgotPassword(email:$email,otp:$otp){
+ result
+ }
+ }`
+
+export const resetPassword = `mutation ResetPassword($password:String!,$email:String!){
+ resetPassword(password:$password,email:$email){
+ result
+ }
+ }`
+
+export const getCoupon = `mutation Coupon($coupon:String!){
+ coupon(coupon:$coupon){
+ _id
+ title
+ discount
+ enabled
+ }
+ }`
+
+export const deleteAddress = `mutation DeleteAddress($id:ID!){
+ deleteAddress(id:$id){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ }
+ }
+ }`
+
+export const createAddress = `mutation CreateAddress($addressInput:AddressInput!){
+ createAddress(addressInput:$addressInput){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+ }`
+
+export const editAddress = `mutation EditAddress($addressInput:AddressInput!){
+ editAddress(addressInput:$addressInput){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+ }`
+
+export const changePassword = `mutation ChangePassword($oldPassword:String!,$newPassword:String!){
+ changePassword(oldPassword:$oldPassword,newPassword:$newPassword)
+ }`
+
+export const selectAddress = `mutation SelectAddress($id:String!){
+ selectAddress(id:$id){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+ }`
+
+export const reviewOrder = `mutation ReviewOrder(
+ $order:String!,
+ $rating:Int!,
+ $description:String,
+ ){
+ reviewOrder(reviewInput:{
+ order:$order,
+ rating:$rating,
+ description:$description,
+ }){
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ orderDate
+ expectedTime
+ isPickedUp
+ deliveryCharges
+ acceptedAt
+ pickedAt
+ deliveredAt
+ cancelledAt
+ assignedAt
+ }
+ }`
+
+export const addFavouriteRestaurant = `mutation AddFavourite($id:String!){
+ addFavourite(id:$id){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+ }`
+
+export const emailExist = `
+ mutation EmailExist($email: String!) {
+ emailExist(email: $email) {
+ userType
+ _id
+ email
+ }
+ }`
+
+export const sendOtpToEmail = `
+ mutation SendOtpToEmail($email: String!, $otp: String!) {
+ sendOtpToEmail(email: $email, otp: $otp) {
+ result
+ }
+ }
+ `
+export const sendOtpToPhoneNumber = `
+ mutation SendOtpToPhoneNumber($phone: String!, $otp: String!) {
+ sendOtpToPhoneNumber(phone: $phone, otp: $otp) {
+ result
+ }
+ }
+ `
+ export const Deactivate = `
+ mutation deactivated($isActive: Boolean!, $email: String!) {
+ Deactivate(isActive: $isActive,email: $email) {
+ isActive
+ }
+ }
+ `
+export const login = `
+ mutation Login($email:String,$password:String,$type:String!,$appleId:String,$name:String,$notificationToken:String){
+ login(email:$email,password:$password,type:$type,appleId:$appleId,name:$name,notificationToken:$notificationToken){
+ userId
+ token
+ tokenExpiration
+ isActive
+ name
+ email
+ phone
+ isNewUser
+ }
+ }
+ `
+export const createUser = `
+ mutation CreateUser($phone:String,$email:String,$password:String,$name:String,$notificationToken:String,$appleId:String){
+ createUser(userInput:{
+ phone:$phone,
+ email:$email,
+ password:$password,
+ name:$name,
+ notificationToken:$notificationToken,
+ appleId:$appleId
+ }){
+ userId
+ token
+ tokenExpiration
+ name
+ email
+ phone
+ }
+ }`
+
+export const updateUser = `
+ mutation UpdateUser($name:String!,$phone:String!,$phoneIsVerified:Boolean,$emailIsVerified:Boolean){
+ updateUser(updateUserInput:{name:$name,phone:$phone,phoneIsVerified:$phoneIsVerified,emailIsVerified:$emailIsVerified}){
+ _id
+ name
+ phone
+ phoneIsVerified
+ emailIsVerified
+ }
+ }`
+
+export const updateNotificationStatus = `
+ mutation UpdateNotificationStatus($offerNotification:Boolean!,$orderNotification:Boolean!){
+ updateNotificationStatus(offerNotification:$offerNotification,orderNotification:$orderNotification){
+ _id
+ notificationToken
+ isOrderNotification
+ isOfferNotification
+ }
+ }`
diff --git a/enatega-multivendor-app/src/apollo/queries.js b/enatega-multivendor-app/src/apollo/queries.js
new file mode 100644
index 0000000..a80ddcc
--- /dev/null
+++ b/enatega-multivendor-app/src/apollo/queries.js
@@ -0,0 +1,524 @@
+export const User = `
+query Users {
+ users {
+ _id
+ email
+ }
+}`
+
+export const profile = `
+ query{
+ profile{
+ _id
+ name
+ phone
+ phoneIsVerified
+ email
+ emailIsVerified
+ notificationToken
+ isActive
+ isOrderNotification
+ isOfferNotification
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ favourite
+ }
+ }`
+
+export const order = `query Order($id:String!){
+ order(id:$id){
+ _id
+ orderId
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ items{
+ title
+ food
+ description
+ image
+ quantity
+ variation{
+ title
+ price
+ discounted
+ }
+ addons{
+ title
+ options{
+ title
+ description
+ price
+ }
+ }
+ }
+ user{
+ _id
+ name
+ email
+ }
+ paymentMethod
+ orderAmount
+ orderDate
+ expectedTime
+ isPickedUp
+ deliveryCharges
+ acceptedAt
+ pickedAt
+ deliveredAt
+ cancelledAt
+ assignedAt
+ }
+}
+`
+
+export const myOrders = `query Orders($offset:Int){
+ orders(offset:$offset){
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ orderDate
+ expectedTime
+ isPickedUp
+ deliveryCharges
+ acceptedAt
+ pickedAt
+ deliveredAt
+ cancelledAt
+ assignedAt
+ }
+}
+`
+
+export const getConfiguration = `query Configuration{
+ configuration{
+ _id
+ currency
+ currencySymbol
+ deliveryRate
+ twilioEnabled
+ androidClientID
+ iOSClientID
+ appAmplitudeApiKey
+ googleApiKey
+ expoClientID
+ customerAppSentryUrl
+ termsAndConditions
+ privacyPolicy
+ testOtp
+ skipMobileVerification
+ skipEmailVerification
+ }
+}`
+
+export const restaurantList = `query Restaurants($latitude:Float,$longitude:Float){
+ nearByRestaurants(latitude:$latitude,longitude:$longitude){
+ offers{
+ _id
+ name
+ tag
+ restaurants
+ }
+ sections{
+ _id
+ name
+ restaurants
+ }
+ restaurants{
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ reviewData{
+ total
+ ratings
+ reviews{
+ _id
+ order{
+ user{
+ _id
+ name
+ email
+ }
+ }
+ rating
+ description
+ createdAt
+ }
+ }
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ image
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ }
+ }
+ options{
+ _id
+ title
+ description
+ price
+ }
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ rating
+ isAvailable
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+}
+}`
+
+export const restaurant = `query Restaurant($id:String){
+ restaurant(id:$id){
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ reviewData{
+ total
+ ratings
+ reviews{
+ _id
+ order{
+ user{
+ _id
+ name
+ email
+ }
+ }
+ rating
+ description
+ createdAt
+ }
+ }
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ image
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ }
+ }
+ options{
+ _id
+ title
+ description
+ price
+ }
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ zone{
+ _id
+ title
+ tax
+ }
+ rating
+ isAvailable
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+}`
+
+export const rider = `query Rider($id:String){
+ rider(id:$id){
+ _id
+ location {coordinates}
+ }
+}`
+
+export const getTaxation = `query Taxes{
+ taxes {
+ _id
+ taxationCharges
+ enabled
+ }
+ }`
+
+export const getTipping = `query Tips{
+ tips {
+ _id
+ tipVariations
+ enabled
+ }
+ }`
+
+export const FavouriteRestaurant = `query UserFavourite ($latitude:Float,$longitude:Float){
+ userFavourite(latitude:$latitude,longitude:$longitude) {
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ reviewData{
+ total
+ ratings
+ reviews{
+ _id
+ order{
+ user{
+ _id
+ name
+ email
+ }
+ }
+ rating
+ description
+ createdAt
+ }
+ }
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ image
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ }
+ }
+ options{
+ _id
+ title
+ description
+ price
+ }
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ rating
+ isAvailable
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+ }`
+
+export const orderFragment = `fragment NewOrder on Order {
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ orderDate
+ expectedTime
+ isPickedUp
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ deliveryCharges
+ acceptedAt
+ pickedAt
+ deliveredAt
+ cancelledAt
+ assignedAt
+}`
+
+export const chat = `query Chat($order: ID!) {
+ chat(order: $order) {
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+}`
diff --git a/enatega-multivendor-app/src/apollo/subscriptions.js b/enatega-multivendor-app/src/apollo/subscriptions.js
new file mode 100644
index 0000000..5bf0ac5
--- /dev/null
+++ b/enatega-multivendor-app/src/apollo/subscriptions.js
@@ -0,0 +1,106 @@
+export const subscriptionOrder = `subscription SubscriptionOrder($id:String!){
+ subscriptionOrder(id:$id){
+ _id
+ orderStatus
+ rider{
+ _id
+ }
+ completionTime
+ }
+ }`
+
+export const subscriptionRiderLocation = `subscription SubscriptionRiderLocation($riderId:String!){
+ subscriptionRiderLocation(riderId:$riderId) {
+ _id
+ location {coordinates}
+ }
+ }`
+
+export const orderStatusChanged = `subscription OrderStatusChanged($userId:String!){
+ orderStatusChanged(userId:$userId){
+ userId
+ origin
+ order{
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ orderDate
+ expectedTime
+ isPickedUp
+ deliveryCharges
+ acceptedAt
+ pickedAt
+ deliveredAt
+ cancelledAt
+ assignedAt
+ }
+ }
+ }`
+
+export const subscriptionNewMessage = `subscription SubscriptionNewMessage($order:ID!){
+ subscriptionNewMessage(order:$order){
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+}`
diff --git a/enatega-multivendor-app/src/assets/SVG/RandomShape.js b/enatega-multivendor-app/src/assets/SVG/RandomShape.js
new file mode 100644
index 0000000..06035a4
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/RandomShape.js
@@ -0,0 +1,21 @@
+import React, { useContext } from 'react'
+import Svg, { Path } from 'react-native-svg'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+
+function RandomShape(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+ )
+}
+
+export default RandomShape
diff --git a/enatega-multivendor-app/src/assets/SVG/arrows-loading.js b/enatega-multivendor-app/src/assets/SVG/arrows-loading.js
new file mode 100644
index 0000000..5b5a61e
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/arrows-loading.js
@@ -0,0 +1,18 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const ArrowsLoading = props => (
+
+
+
+)
+
+export default ArrowsLoading
diff --git a/enatega-multivendor-app/src/assets/SVG/customer-marker.js b/enatega-multivendor-app/src/assets/SVG/customer-marker.js
new file mode 100644
index 0000000..f73db08
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/customer-marker.js
@@ -0,0 +1,27 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const CustomerMarker = props => (
+
+
+
+
+)
+
+export default CustomerMarker
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/CartIcon.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/CartIcon.js
new file mode 100644
index 0000000..ce87e60
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/CartIcon.js
@@ -0,0 +1,25 @@
+import React, { useContext } from 'react'
+import Svg, { Path } from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function CartIcon(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+ )
+}
+
+export default CartIcon
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/CloseIcon.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/CloseIcon.js
new file mode 100644
index 0000000..1eef5e9
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/CloseIcon.js
@@ -0,0 +1,20 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+function CloseIcon(props) {
+ return (
+
+
+
+ )
+}
+export default CloseIcon
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomHomeIcon.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomHomeIcon.js
new file mode 100644
index 0000000..4b5f50e
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomHomeIcon.js
@@ -0,0 +1,31 @@
+import React from 'react'
+import { View, StyleSheet } from 'react-native'
+import Svg, { Path } from 'react-native-svg'
+
+const CustomHomeIcon = () => {
+ return (
+
+
+
+
+
+ )
+}
+
+export default CustomHomeIcon
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomMarker.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomMarker.js
new file mode 100644
index 0000000..b9eefe1
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomMarker.js
@@ -0,0 +1,23 @@
+import React, { useContext } from 'react'
+import Svg, { Path } from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function CustomMarker(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+ )
+}
+
+export default CustomMarker
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomOtherIcon.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomOtherIcon.js
new file mode 100644
index 0000000..fa886d9
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomOtherIcon.js
@@ -0,0 +1,35 @@
+import React from 'react'
+import { View, StyleSheet } from 'react-native'
+import Svg, { Path } from 'react-native-svg'
+
+const CustomOtherIcon = () => {
+ return (
+
+
+
+
+
+
+ )
+}
+
+export default CustomOtherIcon
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomWorkIcon.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomWorkIcon.js
new file mode 100644
index 0000000..6bca3bc
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/CustomWorkIcon.js
@@ -0,0 +1,66 @@
+import React from 'react'
+import { View, StyleSheet } from 'react-native'
+import Svg, { Path } from 'react-native-svg'
+
+const CustomWorkIcon = () => {
+ return (
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default CustomWorkIcon
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/EmptyAddress.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/EmptyAddress.js
new file mode 100644
index 0000000..6cb1c43
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/EmptyAddress.js
@@ -0,0 +1,197 @@
+import React, { useContext } from 'react'
+import Svg, { Path, G } from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function EmptyAddress(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default EmptyAddress
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/EmptyCart.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/EmptyCart.js
new file mode 100644
index 0000000..eae6b5c
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/EmptyCart.js
@@ -0,0 +1,957 @@
+import React, { useContext } from 'react'
+import Svg, {
+ Defs,
+ ClipPath,
+ Path,
+ G,
+ Rect,
+ Circle,
+ Ellipse
+} from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function EmptyCart(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default EmptyCart
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/LocationPermission.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/LocationPermission.js
new file mode 100644
index 0000000..bbe2333
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/LocationPermission.js
@@ -0,0 +1,560 @@
+import React, { useContext } from 'react'
+import Svg, { Path, G, Circle } from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function LocationPermission(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default LocationPermission
diff --git a/enatega-multivendor-app/src/assets/SVG/imageComponents/SearchFood.js b/enatega-multivendor-app/src/assets/SVG/imageComponents/SearchFood.js
new file mode 100644
index 0000000..2db0446
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/imageComponents/SearchFood.js
@@ -0,0 +1,507 @@
+import React, { useContext } from 'react'
+import Svg, { Path, G } from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function SearchFood(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default SearchFood
diff --git a/enatega-multivendor-app/src/assets/SVG/order-delivered.js b/enatega-multivendor-app/src/assets/SVG/order-delivered.js
new file mode 100644
index 0000000..ee64f36
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/order-delivered.js
@@ -0,0 +1,483 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const OrderDelivered = props => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+)
+
+export default OrderDelivered
diff --git a/enatega-multivendor-app/src/assets/SVG/restaurant-marker.js b/enatega-multivendor-app/src/assets/SVG/restaurant-marker.js
new file mode 100644
index 0000000..4f31d51
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/restaurant-marker.js
@@ -0,0 +1,27 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const RestaurantMarker = props => (
+
+
+
+
+)
+
+export default RestaurantMarker
diff --git a/enatega-multivendor-app/src/assets/SVG/restaurant-preparing.js b/enatega-multivendor-app/src/assets/SVG/restaurant-preparing.js
new file mode 100644
index 0000000..181a3d7
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/restaurant-preparing.js
@@ -0,0 +1,23 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const RestaurantPreparing = props => (
+
+
+
+)
+
+export default RestaurantPreparing
diff --git a/enatega-multivendor-app/src/assets/SVG/rider-marker.js b/enatega-multivendor-app/src/assets/SVG/rider-marker.js
new file mode 100644
index 0000000..0d09936
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/rider-marker.js
@@ -0,0 +1,32 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const RiderMarker = props => (
+
+
+
+
+)
+
+export default RiderMarker
diff --git a/enatega-multivendor-app/src/assets/SVG/rider.js b/enatega-multivendor-app/src/assets/SVG/rider.js
new file mode 100644
index 0000000..1638017
--- /dev/null
+++ b/enatega-multivendor-app/src/assets/SVG/rider.js
@@ -0,0 +1,511 @@
+import * as React from 'react'
+import Svg, { Path } from 'react-native-svg'
+
+const Rider = props => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+)
+
+export default Rider
diff --git a/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans300.ttf b/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans300.ttf
new file mode 100644
index 0000000..9e1f7f7
Binary files /dev/null and b/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans300.ttf differ
diff --git a/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans500.ttf b/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans500.ttf
new file mode 100644
index 0000000..fc028ae
Binary files /dev/null and b/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans500.ttf differ
diff --git a/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans700.ttf b/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans700.ttf
new file mode 100644
index 0000000..dffdf46
Binary files /dev/null and b/enatega-multivendor-app/src/assets/font/MuseoSans/MuseoSans700.ttf differ
diff --git a/enatega-multivendor-app/src/assets/font/Poppins/Poppins-Bold.ttf b/enatega-multivendor-app/src/assets/font/Poppins/Poppins-Bold.ttf
new file mode 100644
index 0000000..1170ea9
Binary files /dev/null and b/enatega-multivendor-app/src/assets/font/Poppins/Poppins-Bold.ttf differ
diff --git a/enatega-multivendor-app/src/assets/font/Poppins/Poppins-Regular.ttf b/enatega-multivendor-app/src/assets/font/Poppins/Poppins-Regular.ttf
new file mode 100644
index 0000000..850d03e
Binary files /dev/null and b/enatega-multivendor-app/src/assets/font/Poppins/Poppins-Regular.ttf differ
diff --git a/enatega-multivendor-app/src/assets/icons/backArrow.png b/enatega-multivendor-app/src/assets/icons/backArrow.png
new file mode 100644
index 0000000..148128b
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/backArrow.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/backArrowWhite.png b/enatega-multivendor-app/src/assets/icons/backArrowWhite.png
new file mode 100644
index 0000000..f85d623
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/backArrowWhite.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/checkmark64.png b/enatega-multivendor-app/src/assets/icons/checkmark64.png
new file mode 100644
index 0000000..324bb78
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/checkmark64.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/cross.png b/enatega-multivendor-app/src/assets/icons/cross.png
new file mode 100644
index 0000000..972f111
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/cross.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/crossWhite.png b/enatega-multivendor-app/src/assets/icons/crossWhite.png
new file mode 100644
index 0000000..410fe09
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/crossWhite.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/downArrow.png b/enatega-multivendor-app/src/assets/icons/downArrow.png
new file mode 100644
index 0000000..03a0775
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/downArrow.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/emptyHeart.png b/enatega-multivendor-app/src/assets/icons/emptyHeart.png
new file mode 100644
index 0000000..01bfe8f
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/emptyHeart.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/filter.png b/enatega-multivendor-app/src/assets/icons/filter.png
new file mode 100644
index 0000000..02b318b
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/filter.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/fullHeart.png b/enatega-multivendor-app/src/assets/icons/fullHeart.png
new file mode 100644
index 0000000..b3e2573
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/fullHeart.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/gapStarRating.png b/enatega-multivendor-app/src/assets/icons/gapStarRating.png
new file mode 100644
index 0000000..3af7541
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/gapStarRating.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/grid.png b/enatega-multivendor-app/src/assets/icons/grid.png
new file mode 100644
index 0000000..24c8e78
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/grid.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/list.png b/enatega-multivendor-app/src/assets/icons/list.png
new file mode 100644
index 0000000..47d8616
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/list.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/rightArrow.png b/enatega-multivendor-app/src/assets/icons/rightArrow.png
new file mode 100644
index 0000000..5dfd7f0
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/rightArrow.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/rightArrowOrange.png b/enatega-multivendor-app/src/assets/icons/rightArrowOrange.png
new file mode 100644
index 0000000..a69e316
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/rightArrowOrange.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/sort.png b/enatega-multivendor-app/src/assets/icons/sort.png
new file mode 100644
index 0000000..435ecd1
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/sort.png differ
diff --git a/enatega-multivendor-app/src/assets/icons/verfiedmark64.png b/enatega-multivendor-app/src/assets/icons/verfiedmark64.png
new file mode 100644
index 0000000..5f07589
Binary files /dev/null and b/enatega-multivendor-app/src/assets/icons/verfiedmark64.png differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/beignet.jpeg b/enatega-multivendor-app/src/assets/images/ItemsList/beignet.jpeg
new file mode 100644
index 0000000..7eaa5e0
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/beignet.jpeg differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/cornmealMush.jpeg b/enatega-multivendor-app/src/assets/images/ItemsList/cornmealMush.jpeg
new file mode 100644
index 0000000..01e878f
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/cornmealMush.jpeg differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/coverBreakfast.jpg b/enatega-multivendor-app/src/assets/images/ItemsList/coverBreakfast.jpg
new file mode 100644
index 0000000..ccf24b0
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/coverBreakfast.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/fruitPizza.jpg b/enatega-multivendor-app/src/assets/images/ItemsList/fruitPizza.jpg
new file mode 100644
index 0000000..b8cc568
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/fruitPizza.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/like.png b/enatega-multivendor-app/src/assets/images/ItemsList/like.png
new file mode 100644
index 0000000..4488660
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/like.png differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/liked.png b/enatega-multivendor-app/src/assets/images/ItemsList/liked.png
new file mode 100644
index 0000000..86cf616
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/liked.png differ
diff --git a/enatega-multivendor-app/src/assets/images/ItemsList/omelette.jpg b/enatega-multivendor-app/src/assets/images/ItemsList/omelette.jpg
new file mode 100644
index 0000000..3b5eb0c
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/ItemsList/omelette.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/cashIcon.png b/enatega-multivendor-app/src/assets/images/cashIcon.png
new file mode 100644
index 0000000..65a2228
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/cashIcon.png differ
diff --git a/enatega-multivendor-app/src/assets/images/defaultNotification.png b/enatega-multivendor-app/src/assets/images/defaultNotification.png
new file mode 100644
index 0000000..99ceb13
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/defaultNotification.png differ
diff --git a/enatega-multivendor-app/src/assets/images/delivery-man.png b/enatega-multivendor-app/src/assets/images/delivery-man.png
new file mode 100644
index 0000000..1bcdc0c
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/delivery-man.png differ
diff --git a/enatega-multivendor-app/src/assets/images/delivery.png b/enatega-multivendor-app/src/assets/images/delivery.png
new file mode 100644
index 0000000..97ed584
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/delivery.png differ
diff --git a/enatega-multivendor-app/src/assets/images/drop.png b/enatega-multivendor-app/src/assets/images/drop.png
new file mode 100644
index 0000000..84adf36
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/drop.png differ
diff --git a/enatega-multivendor-app/src/assets/images/email.png b/enatega-multivendor-app/src/assets/images/email.png
new file mode 100644
index 0000000..e813bb7
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/email.png differ
diff --git a/enatega-multivendor-app/src/assets/images/emailphone.png b/enatega-multivendor-app/src/assets/images/emailphone.png
new file mode 100644
index 0000000..73f5f1a
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/emailphone.png differ
diff --git a/enatega-multivendor-app/src/assets/images/emptyCart.png b/enatega-multivendor-app/src/assets/images/emptyCart.png
new file mode 100644
index 0000000..7868c30
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/emptyCart.png differ
diff --git a/enatega-multivendor-app/src/assets/images/emptyVoucher.png b/enatega-multivendor-app/src/assets/images/emptyVoucher.png
new file mode 100644
index 0000000..67f0944
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/emptyVoucher.png differ
diff --git a/enatega-multivendor-app/src/assets/images/facebook.png b/enatega-multivendor-app/src/assets/images/facebook.png
new file mode 100644
index 0000000..c69e1bd
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/facebook.png differ
diff --git a/enatega-multivendor-app/src/assets/images/flags/de.png b/enatega-multivendor-app/src/assets/images/flags/de.png
new file mode 100644
index 0000000..f6434b6
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/flags/de.png differ
diff --git a/enatega-multivendor-app/src/assets/images/flags/en.png b/enatega-multivendor-app/src/assets/images/flags/en.png
new file mode 100644
index 0000000..a812802
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/flags/en.png differ
diff --git a/enatega-multivendor-app/src/assets/images/flags/fr.png b/enatega-multivendor-app/src/assets/images/flags/fr.png
new file mode 100644
index 0000000..db42367
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/flags/fr.png differ
diff --git a/enatega-multivendor-app/src/assets/images/flags/km.png b/enatega-multivendor-app/src/assets/images/flags/km.png
new file mode 100644
index 0000000..a7b4fe1
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/flags/km.png differ
diff --git a/enatega-multivendor-app/src/assets/images/flags/zh.png b/enatega-multivendor-app/src/assets/images/flags/zh.png
new file mode 100644
index 0000000..9aa62c8
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/flags/zh.png differ
diff --git a/enatega-multivendor-app/src/assets/images/foodPlaceholder.jpeg b/enatega-multivendor-app/src/assets/images/foodPlaceholder.jpeg
new file mode 100644
index 0000000..cd25b54
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/foodPlaceholder.jpeg differ
diff --git a/enatega-multivendor-app/src/assets/images/foodSharing.jpg b/enatega-multivendor-app/src/assets/images/foodSharing.jpg
new file mode 100644
index 0000000..f0905f4
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/foodSharing.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/food_placeholder.png b/enatega-multivendor-app/src/assets/images/food_placeholder.png
new file mode 100644
index 0000000..978fb34
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/food_placeholder.png differ
diff --git a/enatega-multivendor-app/src/assets/images/food_placeholder1.png b/enatega-multivendor-app/src/assets/images/food_placeholder1.png
new file mode 100644
index 0000000..978fb34
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/food_placeholder1.png differ
diff --git a/enatega-multivendor-app/src/assets/images/giftVoucher.png b/enatega-multivendor-app/src/assets/images/giftVoucher.png
new file mode 100644
index 0000000..5c3d599
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/giftVoucher.png differ
diff --git a/enatega-multivendor-app/src/assets/images/google.png b/enatega-multivendor-app/src/assets/images/google.png
new file mode 100644
index 0000000..05b1acd
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/google.png differ
diff --git a/enatega-multivendor-app/src/assets/images/home.png b/enatega-multivendor-app/src/assets/images/home.png
new file mode 100644
index 0000000..80d70ef
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/home.png differ
diff --git a/enatega-multivendor-app/src/assets/images/key.png b/enatega-multivendor-app/src/assets/images/key.png
new file mode 100644
index 0000000..f85dcae
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/key.png differ
diff --git a/enatega-multivendor-app/src/assets/images/leftarrow.png b/enatega-multivendor-app/src/assets/images/leftarrow.png
new file mode 100644
index 0000000..7952e9a
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/leftarrow.png differ
diff --git a/enatega-multivendor-app/src/assets/images/location.png b/enatega-multivendor-app/src/assets/images/location.png
new file mode 100644
index 0000000..d418e5b
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/location.png differ
diff --git a/enatega-multivendor-app/src/assets/images/login_reg_food.jpg b/enatega-multivendor-app/src/assets/images/login_reg_food.jpg
new file mode 100644
index 0000000..8f33323
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/login_reg_food.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/logo.png b/enatega-multivendor-app/src/assets/images/logo.png
new file mode 100644
index 0000000..d9a41fe
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/logo.png differ
diff --git a/enatega-multivendor-app/src/assets/images/masterIcon.png b/enatega-multivendor-app/src/assets/images/masterIcon.png
new file mode 100644
index 0000000..a83afac
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/masterIcon.png differ
diff --git a/enatega-multivendor-app/src/assets/images/menu-button.png b/enatega-multivendor-app/src/assets/images/menu-button.png
new file mode 100644
index 0000000..33cdb1b
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/menu-button.png differ
diff --git a/enatega-multivendor-app/src/assets/images/menuItems/breakfast.gif b/enatega-multivendor-app/src/assets/images/menuItems/breakfast.gif
new file mode 100644
index 0000000..76cf30f
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/menuItems/breakfast.gif differ
diff --git a/enatega-multivendor-app/src/assets/images/menuItems/dinner.png b/enatega-multivendor-app/src/assets/images/menuItems/dinner.png
new file mode 100644
index 0000000..febf974
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/menuItems/dinner.png differ
diff --git a/enatega-multivendor-app/src/assets/images/menuItems/drinks.png b/enatega-multivendor-app/src/assets/images/menuItems/drinks.png
new file mode 100644
index 0000000..9923f8b
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/menuItems/drinks.png differ
diff --git a/enatega-multivendor-app/src/assets/images/menuItems/icecream.png b/enatega-multivendor-app/src/assets/images/menuItems/icecream.png
new file mode 100644
index 0000000..961990d
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/menuItems/icecream.png differ
diff --git a/enatega-multivendor-app/src/assets/images/menuItems/lunch.png b/enatega-multivendor-app/src/assets/images/menuItems/lunch.png
new file mode 100644
index 0000000..89da3d4
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/menuItems/lunch.png differ
diff --git a/enatega-multivendor-app/src/assets/images/netBanking.jpg b/enatega-multivendor-app/src/assets/images/netBanking.jpg
new file mode 100644
index 0000000..b4da9a0
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/netBanking.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/notificationDefault.png b/enatega-multivendor-app/src/assets/images/notificationDefault.png
new file mode 100644
index 0000000..793f65a
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/notificationDefault.png differ
diff --git a/enatega-multivendor-app/src/assets/images/other.png b/enatega-multivendor-app/src/assets/images/other.png
new file mode 100644
index 0000000..0ea9778
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/other.png differ
diff --git a/enatega-multivendor-app/src/assets/images/paypal.png b/enatega-multivendor-app/src/assets/images/paypal.png
new file mode 100644
index 0000000..1eb9446
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/paypal.png differ
diff --git a/enatega-multivendor-app/src/assets/images/placeholder-1.png b/enatega-multivendor-app/src/assets/images/placeholder-1.png
new file mode 100644
index 0000000..2e84eb7
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/placeholder-1.png differ
diff --git a/enatega-multivendor-app/src/assets/images/placeholder.png b/enatega-multivendor-app/src/assets/images/placeholder.png
new file mode 100644
index 0000000..c13e0c3
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/placeholder.png differ
diff --git a/enatega-multivendor-app/src/assets/images/res.png b/enatega-multivendor-app/src/assets/images/res.png
new file mode 100644
index 0000000..a160895
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/res.png differ
diff --git a/enatega-multivendor-app/src/assets/images/restaurants/taimoori_1.jpg b/enatega-multivendor-app/src/assets/images/restaurants/taimoori_1.jpg
new file mode 100644
index 0000000..f0905f4
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/restaurants/taimoori_1.jpg differ
diff --git a/enatega-multivendor-app/src/assets/images/rider.png b/enatega-multivendor-app/src/assets/images/rider.png
new file mode 100644
index 0000000..81b3ee4
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/rider.png differ
diff --git a/enatega-multivendor-app/src/assets/images/shopping-bag.png b/enatega-multivendor-app/src/assets/images/shopping-bag.png
new file mode 100644
index 0000000..f6f65ff
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/shopping-bag.png differ
diff --git a/enatega-multivendor-app/src/assets/images/smartphone.png b/enatega-multivendor-app/src/assets/images/smartphone.png
new file mode 100644
index 0000000..b7ed959
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/smartphone.png differ
diff --git a/enatega-multivendor-app/src/assets/images/stripe.png b/enatega-multivendor-app/src/assets/images/stripe.png
new file mode 100644
index 0000000..64f2236
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/stripe.png differ
diff --git a/enatega-multivendor-app/src/assets/images/user.png b/enatega-multivendor-app/src/assets/images/user.png
new file mode 100644
index 0000000..21f0d60
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/user.png differ
diff --git a/enatega-multivendor-app/src/assets/images/visaIcon.png b/enatega-multivendor-app/src/assets/images/visaIcon.png
new file mode 100644
index 0000000..c5446ed
Binary files /dev/null and b/enatega-multivendor-app/src/assets/images/visaIcon.png differ
diff --git a/enatega-multivendor-app/src/components/About/Header/Header.js b/enatega-multivendor-app/src/components/About/Header/Header.js
new file mode 100644
index 0000000..2f661bd
--- /dev/null
+++ b/enatega-multivendor-app/src/components/About/Header/Header.js
@@ -0,0 +1,80 @@
+import React, { useContext } from 'react'
+import { View, TouchableOpacity, Image } from 'react-native'
+import { Ionicons } from '@expo/vector-icons'
+import { MaterialIcons } from '@expo/vector-icons'
+import { scale } from '../../../utils/scaling'
+import styles from './styles'
+import { useNavigation } from '@react-navigation/native'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import Animated from 'react-native-reanimated'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { useTranslation } from 'react-i18next'
+
+const AnimatedIon = Animated.createAnimatedComponent(Ionicons)
+
+function ImageHeader(props) {
+ const { t } = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const navigation = useNavigation()
+
+ return (
+
+
+
+
+ navigation.goBack()}>
+
+
+
+
+ {props.restaurantName.length > 12
+ ? `${props.restaurantName.slice(0, 15)}...`
+ : props.restaurantName}
+
+ {!props.loading && (
+
+
+ {t('delivery')} {props.deliveryTime} {t('Min')}
+
+
+ )}
+
+
+
+ {props.rating} ({props.total})
+
+
+
+
+
+ )
+}
+
+export default ImageHeader
diff --git a/enatega-multivendor-app/src/components/About/Header/index.js b/enatega-multivendor-app/src/components/About/Header/index.js
new file mode 100644
index 0000000..75599b2
--- /dev/null
+++ b/enatega-multivendor-app/src/components/About/Header/index.js
@@ -0,0 +1,2 @@
+import Header from './Header'
+export default Header
diff --git a/enatega-multivendor-app/src/components/About/Header/styles.js b/enatega-multivendor-app/src/components/About/Header/styles.js
new file mode 100644
index 0000000..432fa99
--- /dev/null
+++ b/enatega-multivendor-app/src/components/About/Header/styles.js
@@ -0,0 +1,81 @@
+import { Dimensions, StyleSheet } from 'react-native'
+import { scale } from '../../../utils/scaling'
+const { height } = Dimensions.get('window')
+const styles = (props = null) =>
+ StyleSheet.create({
+ mainContainer: {
+ height: height * 0.25,
+ width: '100%'
+ },
+ headerImage: {
+ width: '100%',
+ height: '100%',
+ borderBottomLeftRadius: 20,
+ borderBottomRightRadius: 20
+ },
+ headingTitle: {
+ position: 'absolute',
+ bottom: scale(10),
+ left: scale(30)
+ },
+ overlayContainer: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ touchArea: {
+ position: 'absolute',
+ top: scale(20),
+ left: scale(10),
+ width: scale(50),
+ height: scale(30),
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: 'white',
+ borderRadius: scale(15)
+ },
+ deliveryBoxContainer: {
+ backgroundColor:
+ props != null ? props.customizeOpacityBtn : 'transparent',
+ padding: scale(10),
+ borderRadius: scale(10),
+ borderColor: 'white',
+ borderWidth: 1,
+ width: '45%',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ deliveryBox: {
+ color: 'white',
+ backgroundColor: 'black',
+ borderRadius: scale(5),
+ padding: scale(5)
+ },
+ animatedIconStyle: {
+ fontSize: scale(20)
+ },
+ deliveryBoxText: {
+ paddingRight: scale(5),
+ paddingLeft: scale(5)
+ },
+ ratingContainer: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingTop: scale(10),
+ paddingBottom: scale(10)
+ },
+ backArrow: {
+ color: props != null ? props.black : '#FFF',
+ fontSize: scale(20),
+ backgroundColor: 'white',
+ paddingLeft: scale(15),
+ paddingRight: scale(15),
+ paddingBottom: scale(5),
+ paddingTop: scale(5),
+ borderRadius: scale(22)
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/Address/AddressText.js b/enatega-multivendor-app/src/components/Address/AddressText.js
new file mode 100644
index 0000000..da02d1f
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Address/AddressText.js
@@ -0,0 +1,23 @@
+import { EvilIcons } from '@expo/vector-icons'
+import React, { useContext } from 'react'
+import { TouchableOpacity } from 'react-native'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { scale } from '../../utils/scaling'
+import { theme } from '../../utils/themeColors'
+import styles from './styles'
+
+export default function AddressText({ onPress = () => {} }) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+ )
+}
diff --git a/enatega-multivendor-app/src/components/Address/SearchModal.js b/enatega-multivendor-app/src/components/Address/SearchModal.js
new file mode 100644
index 0000000..a73aece
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Address/SearchModal.js
@@ -0,0 +1,180 @@
+import React, { useContext, useEffect } from 'react'
+import {
+ Modal,
+ View,
+ TouchableOpacity,
+ Keyboard,
+ Dimensions
+} from 'react-native'
+import { GooglePlacesAutocomplete } from 'react-native-google-places-autocomplete'
+import Animated, {
+ Easing as EasingNode,
+ Extrapolation,
+ interpolate,
+ useSharedValue,
+ withTiming,
+ useAnimatedStyle
+} from 'react-native-reanimated'
+import useEnvVars from '../../../environment'
+import CloseIcon from '../../assets/SVG/imageComponents/CloseIcon'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+import { theme } from '../../utils/themeColors'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import styles from './styles'
+
+import { useTranslation } from 'react-i18next'
+
+const { height } = Dimensions.get('screen')
+
+export default function SearchModal({
+ visible = false,
+ onClose = () => { },
+ onSubmit = () => { }
+}) {
+ const { t } = useTranslation()
+ const animation = useSharedValue(0)
+ const { GOOGLE_MAPS_KEY } = useEnvVars()
+ console.log('GOOGLE_MAPS_KEY', GOOGLE_MAPS_KEY)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const marginTop = useAnimatedStyle(() => {
+ return {
+ marginTop: interpolate(
+ animation.value,
+ [0, 1],
+ [height * 0.4, height * 0.06],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ const borderTopLeftRadius = useAnimatedStyle(() => {
+ return {
+ borderTopLeftRadius: interpolate(animation.value,
+ [0, 1],
+ [30, 0],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ const borderTopRightRadius = useAnimatedStyle(() => {
+ return {
+ borderTopRightRadius: interpolate(animation.value,
+ [0, 1],
+ [30, 0],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ useEffect(() => {
+ Keyboard.addListener('keyboardDidShow', _keyboardDidShow)
+ Keyboard.addListener('keyboardDidHide', _keyboardDidHide)
+
+ // cleanup function
+ return () => {
+ Keyboard.removeAllListeners('keyboardDidShow', _keyboardDidShow)
+ Keyboard.removeAllListeners('keyboardDidHide', _keyboardDidHide)
+ }
+ }, [])
+
+ const _keyboardDidShow = () => {
+ animate()
+ }
+
+ const _keyboardDidHide = () => {
+ // alert('Off')
+ animate(true)
+ }
+
+ const animate = (hide = false) => {
+ withTiming(
+ animation.value = hide ? 0 : 1,
+ { duration: 300 },
+ { easing: EasingNode.inOut(EasingNode.ease) }
+ )
+ };
+
+
+ function close() {
+ animation.value = 0
+ onClose()
+ }
+
+ return (
+
+
+
+
+
+
+ {t('searchAddress')}
+
+
+ row.description} // custom description render
+ onPress={(data, details = null) => {
+ onSubmit(data.description, details.geometry.location)
+ }}
+ getDefaultValue={() => {
+ return '' // text input default value
+ }}
+ query={{
+ // available options: https://developers.google.com/places/web-service/autocomplete
+ key: GOOGLE_MAPS_KEY,
+ language: 'en' // language of the results
+ }}
+ styles={{
+ description: {
+ fontWeight: 'bold'
+ },
+ predefinedPlacesDescription: {
+ color: '#1faadb'
+ },
+ textInputContainer: {
+ borderWidth: 1,
+ borderColor: currentTheme.tagColor,
+ ...alignment.PRxSmall,
+ padding: 5
+ },
+ textInput: {
+ ...alignment.MLxSmall
+ }
+ }}
+ nearbyPlacesAPI="GooglePlacesSearch" // Which API to use: GoogleReverseGeocoding or GooglePlacesSearch
+ GoogleReverseGeocodingQuery={
+ {
+ // available options for GoogleReverseGeocoding API : https://developers.google.com/maps/documentation/geocoding/intro
+ }
+ }
+ GooglePlacesSearchQuery={{
+ // available options for GooglePlacesSearch API : https://developers.google.com/places/web-service/search
+ rankby: 'distance'
+ }}
+ // filterReverseGeocodingByTypes={[
+ // 'locality',
+ // ]} // filter the reverse geocoding results by types - ['locality', 'administrative_area_level_3'] if you want to display only cities
+ debounce={200}
+ />
+
+
+
+ )
+}
diff --git a/enatega-multivendor-app/src/components/Address/styles.js b/enatega-multivendor-app/src/components/Address/styles.js
new file mode 100644
index 0000000..1bb5efa
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Address/styles.js
@@ -0,0 +1,31 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ textBtn: {
+ backgroundColor: 'transparent',
+ justifyContent: 'center',
+ alignItems: 'flex-end',
+ ...alignment.PBsmall
+ },
+ modalContainer: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : '#FAFAFA',
+ borderColor: props !== null ? props.tagColor : '#FAFFAA',
+ ...alignment.PTmedium,
+ ...alignment.PRlarge,
+ ...alignment.PLlarge
+ },
+ modalTextBtn: {
+ alignSelf: 'flex-end',
+ height: scale(30),
+ width: scale(30),
+ ...alignment.MTsmall
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/Button/Button.js b/enatega-multivendor-app/src/components/Button/Button.js
new file mode 100644
index 0000000..88ee858
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Button/Button.js
@@ -0,0 +1,19 @@
+import { TouchableOpacity } from 'react-native'
+import React from 'react'
+import TextDefault from '../Text/TextDefault/TextDefault'
+
+export default function Button({
+ text,
+ textStyles,
+ buttonStyles,
+ buttonProps,
+ textProps
+}) {
+ return (
+
+
+ {text}
+
+
+ )
+}
diff --git a/enatega-multivendor-app/src/components/Button/styles.js b/enatega-multivendor-app/src/components/Button/styles.js
new file mode 100644
index 0000000..8f81188
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Button/styles.js
@@ -0,0 +1,5 @@
+import { StyleSheet } from 'react-native'
+
+export default StyleSheet.create({
+ container: theme => ({})
+})
diff --git a/enatega-multivendor-app/src/components/CartItem/CartItem.js b/enatega-multivendor-app/src/components/CartItem/CartItem.js
new file mode 100644
index 0000000..63ca115
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CartItem/CartItem.js
@@ -0,0 +1,67 @@
+import React, { useContext } from 'react'
+import { TouchableOpacity, View } from 'react-native'
+import { AntDesign } from '@expo/vector-icons'
+import { scale } from '../../utils/scaling'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import ConfigurationContext from '../../context/Configuration'
+import { theme } from '../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+
+const cartItem = props => {
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+ {props.quantity}
+
+
+
+
+
+
+
+
+ {props.dealName}
+
+ {props.optionsTitle.map((option, index) => (
+
+ +{option}
+
+ ))}
+
+
+ {configuration.currencySymbol} {parseFloat(props.dealPrice).toFixed(2)}
+
+
+ )
+}
+
+export default cartItem
diff --git a/enatega-multivendor-app/src/components/CartItem/styles.js b/enatega-multivendor-app/src/components/CartItem/styles.js
new file mode 100644
index 0000000..cd84c62
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CartItem/styles.js
@@ -0,0 +1,39 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ itemContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ width: '100%'
+ },
+ actionContainer: {
+ width: '27%',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.cartContainer : 'transparent'
+ },
+ actionContainerBtns: {
+ width: '24%',
+ backgroundColor: props !== null ? props.main : 'transparent',
+ justifyContent: 'center',
+ borderRadius: scale(20),
+ alignItems: 'center',
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ },
+ actionContainerView: {
+ width: '33%',
+ backgroundColor: props !== null ? props.cartContainer : 'transparent',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderWidth: 0.2,
+ borderRadius: scale(5),
+ padding: scale(5),
+ margin: scale(8)
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/CartComponent/CartComponent.js b/enatega-multivendor-app/src/components/CustomizeComponents/CartComponent/CartComponent.js
new file mode 100644
index 0000000..2d0046d
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/CartComponent/CartComponent.js
@@ -0,0 +1,67 @@
+import React, { useState, useContext } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import styles from './styles'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { AntDesign } from '@expo/vector-icons'
+import { scale } from '../../../utils/scaling'
+import {useTranslation} from 'react-i18next'
+
+function CartComponent(props) {
+ const {t} = useTranslation()
+ const [quantity, setQuantity] = useState(1)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ function onAdd() {
+ setQuantity(quantity + 1)
+ }
+ function onRemove() {
+ if (quantity === 1) return
+ setQuantity(quantity - 1)
+ }
+
+ return (
+
+
+
+
+
+
+ {quantity}
+
+
+
+
+
+
+ {t('addToCart')}
+
+
+
+
+ )
+}
+
+export default CartComponent
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/CartComponent/styles.js b/enatega-multivendor-app/src/components/CustomizeComponents/CartComponent/styles.js
new file mode 100644
index 0000000..9021528
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/CartComponent/styles.js
@@ -0,0 +1,61 @@
+import { verticalScale, scale } from '../../../utils/scaling'
+import { Dimensions, StyleSheet } from 'react-native'
+const { height } = Dimensions.get('window')
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ width: '100%',
+ height: height * 0.09,
+ elevation: 1,
+ borderTopRightRadius: scale(25),
+ borderTopLeftRadius: scale(25),
+ shadowColor: props !== null ? props.shadowColor : '#fefefe',
+ shadowOffset: {
+ width: 0,
+ height: -verticalScale(2)
+ },
+ shadowOpacity: 0.8,
+ shadowRadius: verticalScale(2),
+ elevation: 10,
+ backgroundColor: props !== null ? props.themeBackground : '#a92d2d',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ subContainer: {
+ width: '90%',
+ height: '70%',
+ alignItems: 'center',
+ justifyContent: 'space-around',
+ flexDirection: 'row'
+ },
+ icon: {
+ width: '8%',
+ height: '55%',
+ backgroundColor: 'black',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(15)
+ },
+ quantity: {
+ borderWidth: 1,
+ paddingLeft: scale(18),
+ paddingRight: scale(18),
+ paddingTop: scale(10),
+ paddingBottom: scale(10),
+ borderRadius: scale(10),
+ borderColor: 'black'
+ },
+ btnContainer: {
+ width: '60%',
+ height: '90%',
+ backgroundColor: props !== null ? props.main : 'black',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(10)
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/CheckComponent/CheckComponent.js b/enatega-multivendor-app/src/components/CustomizeComponents/CheckComponent/CheckComponent.js
new file mode 100644
index 0000000..e6e0443
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/CheckComponent/CheckComponent.js
@@ -0,0 +1,61 @@
+import React, { useState, useContext } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import CheckboxBtn from '../../../ui/FdCheckbox/CheckboxBtn'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import ConfigurationContext from '../../../context/Configuration'
+import { theme } from '../../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+
+function CheckComponent(props) {
+ const [options, setOptions] = useState(
+ props.options.map(option => ({ ...option, checked: false }))
+ )
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ function onPress(option) {
+ const tempOptions = options
+ const index = tempOptions.findIndex(opt => opt._id === option._id)
+ tempOptions[index].checked = !tempOptions[index].checked
+ setOptions(tempOptions)
+ props.onPress(option)
+ }
+
+ return (
+
+ {options.map(option => (
+
+
+
+
+ {option.title}
+
+
+
+ {`${configuration.currencySymbol} ${option.price}`}
+
+
+ ))}
+
+ )
+}
+
+export default CheckComponent
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/CheckComponent/styles.js b/enatega-multivendor-app/src/components/CustomizeComponents/CheckComponent/styles.js
new file mode 100644
index 0000000..1832bcf
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/CheckComponent/styles.js
@@ -0,0 +1,23 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ ...alignment.MBsmall
+ },
+ leftContainer: {
+ width: '70%',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ rightContainer: {
+ width: '30%',
+ justifyContent: 'center'
+ }
+})
+export default styles
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/HeadingComponent/HeadingComponent.js b/enatega-multivendor-app/src/components/CustomizeComponents/HeadingComponent/HeadingComponent.js
new file mode 100644
index 0000000..0ef2ec7
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/HeadingComponent/HeadingComponent.js
@@ -0,0 +1,46 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import ConfigurationContext from '../../../context/Configuration'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+
+function HeadingComponent(props) {
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+
+
+
+ {props.title}
+
+
+
+ {`${configuration.currencySymbol} ${props.price}`}
+
+
+
+
+ {props.desc}
+
+
+
+ )
+}
+
+export default HeadingComponent
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/HeadingComponent/styles.js b/enatega-multivendor-app/src/components/CustomizeComponents/HeadingComponent/styles.js
new file mode 100644
index 0000000..7c1d69a
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/HeadingComponent/styles.js
@@ -0,0 +1,26 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+const styles = StyleSheet.create({
+ topContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ ...alignment.MTsmall
+ },
+ titleContainer: {
+ width: '80%',
+ ...alignment.MTsmall,
+ ...alignment.MBsmall
+ },
+ priceContainer: {
+ width: '20%',
+ justifyContent: 'center',
+ ...alignment.MTsmall,
+ ...alignment.MBsmall
+ },
+ descContainer: {
+ width: '100%',
+ ...alignment.MBsmall
+ }
+})
+export default styles
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/ImageHeader/ImageHeader.js b/enatega-multivendor-app/src/components/CustomizeComponents/ImageHeader/ImageHeader.js
new file mode 100644
index 0000000..b1605da
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/ImageHeader/ImageHeader.js
@@ -0,0 +1,18 @@
+import React from 'react'
+import { ImageBackground, Text } from 'react-native'
+import styles from './styles'
+import { scale } from '../../../utils/scaling'
+
+function ImageHeader(props) {
+ return (
+
+ )
+}
+
+export default ImageHeader
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/ImageHeader/styles.js b/enatega-multivendor-app/src/components/CustomizeComponents/ImageHeader/styles.js
new file mode 100644
index 0000000..585b644
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/ImageHeader/styles.js
@@ -0,0 +1,9 @@
+import { Dimensions } from 'react-native'
+const { height } = Dimensions.get('window')
+
+export default {
+ backgroundImage: {
+ width: '100%',
+ height: height * 0.30,
+ }
+}
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/RadioComponent/RadioComponent.js b/enatega-multivendor-app/src/components/CustomizeComponents/RadioComponent/RadioComponent.js
new file mode 100644
index 0000000..eb87cf0
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/RadioComponent/RadioComponent.js
@@ -0,0 +1,60 @@
+import React, { useState, useContext } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import RadioButton from '../../../ui/FdRadioBtn/RadioBtn'
+import ConfigurationContext from '../../../context/Configuration'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+
+function RadioComponent(props) {
+ const [selected, setSelected] = useState(props.selected || null)
+ const [options] = useState(props.options)
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ function onPress(option) {
+ setSelected(option)
+ props.onPress(option)
+ }
+
+ return (
+
+ {options.map(option => (
+
+
+
+
+ {option.title}
+
+
+
+ {`${configuration.currencySymbol} ${option.price}`}
+
+
+ ))}
+
+ )
+}
+
+export default RadioComponent
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/RadioComponent/styles.js b/enatega-multivendor-app/src/components/CustomizeComponents/RadioComponent/styles.js
new file mode 100644
index 0000000..a893036
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/RadioComponent/styles.js
@@ -0,0 +1,20 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+
+const styles = StyleSheet.create({
+ mainContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ ...alignment.MBsmall
+ },
+ leftContainer: {
+ width: '80%',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ rightContainer: {
+ width: '20%',
+ justifyContent: 'center'
+ }
+})
+export default styles
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/TitleComponent/TitleComponent.js b/enatega-multivendor-app/src/components/CustomizeComponents/TitleComponent/TitleComponent.js
new file mode 100644
index 0000000..17eb6e8
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/TitleComponent/TitleComponent.js
@@ -0,0 +1,47 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import styles from './styles'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+
+function TitleComponent(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+
+
+ {props.title}
+
+
+ {props.subTitle}
+
+
+
+
+ {props.status}
+
+
+
+ )
+}
+
+export default TitleComponent
diff --git a/enatega-multivendor-app/src/components/CustomizeComponents/TitleComponent/styles.js b/enatega-multivendor-app/src/components/CustomizeComponents/TitleComponent/styles.js
new file mode 100644
index 0000000..9c4fb55
--- /dev/null
+++ b/enatega-multivendor-app/src/components/CustomizeComponents/TitleComponent/styles.js
@@ -0,0 +1,25 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+import { scale } from '../../../utils/scaling'
+import { theme } from '../../../utils/themeColors'
+
+const styles = StyleSheet.create({
+ mainContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ ...alignment.MBxSmall
+ },
+ leftContainer: {
+ width: '75%',
+ alignItems: 'flex-start'
+ },
+ rightContainer: {
+ height: '45%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ width: '25%',
+ backgroundColor: theme.Pink.buttonBackground,
+ borderRadius: scale(20)
+ }
+})
+export default styles
diff --git a/enatega-multivendor-app/src/components/Drawer/Items/DrawerItems.js b/enatega-multivendor-app/src/components/Drawer/Items/DrawerItems.js
new file mode 100644
index 0000000..808a5bd
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Drawer/Items/DrawerItems.js
@@ -0,0 +1,39 @@
+import React, { useContext } from 'react'
+import { TouchableOpacity, View } from 'react-native'
+import styles from './styles.js'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext.js'
+import { theme } from '../../../utils/themeColors.js'
+import TextDefault from '../../../components/Text/TextDefault/TextDefault'
+import { SimpleLineIcons } from '@expo/vector-icons'
+import { verticalScale } from '../../../utils/scaling.js'
+
+function DrawerItems(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+ {props.title}
+
+
+
+
+ )
+}
+export default DrawerItems
diff --git a/enatega-multivendor-app/src/components/Drawer/Items/styles.js b/enatega-multivendor-app/src/components/Drawer/Items/styles.js
new file mode 100644
index 0000000..e1e4b18
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Drawer/Items/styles.js
@@ -0,0 +1,32 @@
+import { StyleSheet } from 'react-native'
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ container: {
+ flex: 1,
+ flexDirection: 'row',
+ justifyContent: 'space-evenly',
+ alignItems: 'center'
+ },
+ leftContainer: {
+ height: '100%',
+ width: '15%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ img: {
+ width: '100%',
+ height: '100%'
+ },
+ rightContainer: {
+ height: '80%',
+ width: '75%',
+ justifyContent: 'center'
+ },
+ drawerContainer: {
+ alignSelf: 'flex-start'
+ }
+})
+export default styles
diff --git a/enatega-multivendor-app/src/components/Drawer/Profile/DrawerProfile.js b/enatega-multivendor-app/src/components/Drawer/Profile/DrawerProfile.js
new file mode 100644
index 0000000..97a59da
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Drawer/Profile/DrawerProfile.js
@@ -0,0 +1,52 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import { TouchableOpacity } from 'react-native-gesture-handler'
+import UserContext from '../../../context/User'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import {useTranslation} from 'react-i18next'
+
+function DrawerProfile(props) {
+ const {t} = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { isLoggedIn, loadingProfile, profile } = useContext(UserContext)
+
+ if (loadingProfile) return {t('loading')}
+ return (
+
+ {!isLoggedIn && (
+
+ {
+ props.navigation.navigate({ name: 'CreateAccount' })
+ }}>
+
+ {t('loginOrCreateAccount')}
+
+
+
+ )}
+
+ {isLoggedIn && profile && (
+
+
+
+ {profile.name.substr(0, 1).toUpperCase()}
+
+
+
+ {profile.name}
+
+
+ )}
+
+
+ )
+}
+
+export default DrawerProfile
diff --git a/enatega-multivendor-app/src/components/Drawer/Profile/styles.js b/enatega-multivendor-app/src/components/Drawer/Profile/styles.js
new file mode 100644
index 0000000..cb00336
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Drawer/Profile/styles.js
@@ -0,0 +1,43 @@
+import { scale } from '../../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ mainContainer: {
+ flex: 1,
+ backgroundColor: props !== null ? props.headerBackground : 'transparent'
+ },
+ logInContainer: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ ...alignment.PLsmall,
+ ...alignment.PBlarge
+ },
+ alignLeft:{
+ textAlign: 'left'
+ },
+ loggedInContainer: {
+ flex: 1,
+ justifyContent: 'flex-end',
+ alignItems: 'center'
+ },
+ subContainer: {
+ width: '85%',
+ height: '80%',
+ justifyContent: 'space-between',
+ ...alignment.MBlarge
+ },
+ imgContainer: {
+ width: scale(70),
+ height: scale(70),
+ borderRadius: scale(35),
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.fontWhite : 'transparent',
+ ...alignment.MTlarge
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/components/FlashMessage/MessageComponent/index.js b/enatega-multivendor-app/src/components/FlashMessage/MessageComponent/index.js
new file mode 100644
index 0000000..279543c
--- /dev/null
+++ b/enatega-multivendor-app/src/components/FlashMessage/MessageComponent/index.js
@@ -0,0 +1,25 @@
+import React from 'react'
+import { View, StyleSheet, Dimensions } from 'react-native'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+const { height: HEIGHT } = Dimensions.get('window')
+const MESSAGE_TOP = HEIGHT / 2
+export const MessageComponent = props => (
+
+
+ {props.message.message}
+
+
+)
+
+const styles = StyleSheet.create({
+ flashMessage: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ alignSelf: 'center',
+ top: MESSAGE_TOP,
+ borderRadius: 15,
+ backgroundColor: 'rgba(52, 52, 52, .9)',
+ marginHorizontal: 20,
+ padding: 10
+ }
+})
diff --git a/enatega-multivendor-app/src/components/Header/HeaderIcons/HeaderIcons.js b/enatega-multivendor-app/src/components/Header/HeaderIcons/HeaderIcons.js
new file mode 100644
index 0000000..53d2cdb
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Header/HeaderIcons/HeaderIcons.js
@@ -0,0 +1,295 @@
+import React, { useState, useContext } from 'react'
+import {
+ Ionicons,
+ EvilIcons,
+ MaterialIcons,
+ MaterialCommunityIcons,
+ AntDesign,
+ Feather
+} from '@expo/vector-icons'
+import { scale } from '../../../utils/scaling'
+import styles from './styles'
+import { TouchableOpacity, View } from 'react-native'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { FlashMessage } from '../../../ui/FlashMessage/FlashMessage'
+import {
+ useNavigation,
+ CommonActions,
+ useRoute
+} from '@react-navigation/native'
+import navigationService from '../../../routes/navigationService'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { HeaderBackButton } from '@react-navigation/elements'
+import UserContext from '../../../context/User'
+import { alignment } from '../../../utils/alignment'
+import CartIcon from '../../../assets/SVG/imageComponents/CartIcon'
+import { useTranslation } from 'react-i18next'
+
+const rippleColor = '#6FCF97'
+function BackButton(props) {
+ if (props.icon === 'leftArrow') {
+ return (
+
+ )
+ } else if (props.icon === 'menu') {
+ return (
+
+ )
+ } else if (props.icon === 'dots') {
+ return (
+
+ )
+ } else if (props.icon === 'target') {
+ return (
+
+ )
+ } else if (props.icon === 'fav') {
+ return
+ } else {
+ return (
+
+ )
+ }
+}
+
+function LeftButton(props) {
+ const navigation = useNavigation()
+ if (props.icon === 'back') {
+ return (
+
+ BackButton({ iconColor: props.iconColor, icon: 'leftArrow' })
+ }
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ } else if (props.icon === 'close') {
+ return (
+
+ BackButton({ iconColor: props.iconColor, icon: 'close' })
+ }
+ onPress={() => {
+ navigation.dispatch(state => {
+ const routes = state.routes.filter(r => r.name === 'Main')
+ return CommonActions.reset({
+ ...state,
+ routes,
+ index: 0
+ })
+ })
+ }}
+ />
+ )
+ } else if (props.toggle) {
+ return (
+
+ BackButton({
+ iconColor: props.iconColor,
+ icon: props.toggleValue ? 'leftArrow' : 'close'
+ })
+ }
+ onPress={() =>
+ props.toggleValue
+ ? navigation.goBack()
+ : props.toggleView(prev => !prev)
+ }
+ />
+ )
+ } else {
+ return (
+
+ BackButton({ iconColor: props.iconColor, icon: 'menu' })
+ }
+ onPress={() => navigation.toggleDrawer()}
+ />
+ )
+ }
+}
+
+function RightButton(props) {
+ const { t } = useTranslation()
+ const [password, setPassword] = useState(false)
+ const navigation = useNavigation()
+ const route = useRoute()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { cartCount, isLoggedIn, profile } = useContext(UserContext)
+ function showPasswordButton() {
+ props.titlePosition(prev => !prev)
+ setPassword(prev => !prev)
+ }
+ function clickPasswordButton() {
+ props.titlePosition(prev => !prev)
+ setPassword(prev => !prev)
+ props.modalVisible(prev => !prev)
+ }
+
+ function cartIcon() {
+ return (
+
+
+
+
+ {cartCount}
+
+
+
+ )
+ }
+
+ function navigateCart() {
+ if (cartCount > 0) {
+ navigation.navigate('Cart')
+ } else {
+ FlashMessage({
+ message: t('cartIsEmpty')
+ })
+ }
+ }
+ if (props.icon === 'dots') {
+ return (
+
+ {password ? (
+
+
+
+ {t('changePassword')}
+
+
+
+ ) : (
+ (
+
+ {BackButton({ iconColor: props.textColor, icon: 'dots' })}
+
+ )}
+ onPress={showPasswordButton}
+ />
+ )}
+
+ )
+ } else if (props.icon === 'cart') {
+ return (
+
+ (
+
+ {BackButton({ iconColor: currentTheme.darkBgFont, icon: 'fav' })}
+
+ )}
+ bolder
+ onPress={() =>
+ isLoggedIn && profile
+ ? navigation.navigate('Favourite')
+ : navigation.navigate('CreateAccount')
+ }
+ />
+ {cartCount >= 0 && (
+
+ )}
+
+ )
+ } else if (props.icon === 'target') {
+ return (
+ (
+
+ {BackButton({ iconColor: props.iconColor, icon: 'target' })}
+
+ )}
+ onPress={props.onPressRight}
+ />
+ )
+ } else {
+ return null
+ }
+}
+function DarkBackButton(props) {
+ return (
+
+
+
+ )
+}
+export { BackButton, LeftButton, RightButton, DarkBackButton }
diff --git a/enatega-multivendor-app/src/components/Header/HeaderIcons/styles.js b/enatega-multivendor-app/src/components/Header/HeaderIcons/styles.js
new file mode 100644
index 0000000..260ea45
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Header/HeaderIcons/styles.js
@@ -0,0 +1,65 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+import { verticalScale, scale } from '../../../utils/scaling'
+
+const styles = backColor =>
+ StyleSheet.create({
+ leftIconPadding: {
+ ...alignment.PLsmall,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ },
+ rightContainer: {
+ position: 'relative',
+ height: '100%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.PRsmall
+ },
+ favContainer: {
+ height: '100%',
+ justifyContent: 'center'
+ },
+ imgContainer: {
+ width: verticalScale(20),
+ height: verticalScale(20)
+ },
+ absoluteContainer: {
+ width: verticalScale(15),
+ height: verticalScale(15),
+ backgroundColor: backColor !== null ? backColor : 'white',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: verticalScale(15),
+ position: 'absolute',
+ right: scale(5),
+ bottom: scale(2)
+ },
+ touchAreaPassword: {
+ width: '40%',
+ height: '70%',
+ justifyContent: 'center',
+ alignItems: 'flex-end'
+ },
+ titlePasswordText: {
+ backgroundColor: backColor !== null ? backColor : 'white',
+ height: '75%',
+ width: '100%',
+ justifyContent: 'center',
+ alignItems: 'flex-start',
+ borderRadius: scale(10),
+ ...alignment.PLmedium
+ },
+ passwordContainer: {
+ width: scale(150),
+ ...alignment.PRxSmall
+ },
+ darkBackArrow: {
+ ...alignment.PLxSmall,
+ ...alignment.PRxSmall,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrders/ActiveOrders.js b/enatega-multivendor-app/src/components/Main/ActiveOrders/ActiveOrders.js
new file mode 100644
index 0000000..6b6a9be
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrders/ActiveOrders.js
@@ -0,0 +1,186 @@
+import React, { useContext, useState } from 'react'
+import { View, Text, FlatList, TouchableOpacity, Button } from 'react-native'
+import { FontAwesome } from '@expo/vector-icons'
+import ConfigurationContext from '../../../context/Configuration'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { MaterialIcons } from '@expo/vector-icons'
+import { theme } from '../../../utils/themeColors'
+import { scale } from '../../../utils/scaling'
+import styles from './styles'
+import { useNavigation } from '@react-navigation/native'
+import TextError from '../../Text/TextError/TextError'
+import { useSubscription } from '@apollo/client'
+import { subscriptionOrder } from '../../../apollo/subscriptions'
+import gql from 'graphql-tag'
+import RandomShape from '../../../assets/SVG/RandomShape'
+import analytics from '../../../utils/analytics'
+import OrdersContext from '../../../context/Orders'
+import Spinner from '../../Spinner/Spinner'
+import {useTranslation} from 'react-i18next'
+
+const orderStatuses = [
+ {
+ key: 'PENDING',
+ status: 1,
+ statusText: 'pendingOrder'
+ },
+ {
+ key: 'ACCEPTED',
+ status: 2,
+ statusText: 'acceptedOrder'
+ },
+ {
+ key: 'ASSIGNED',
+ status: 3,
+ statusText: 'assignedOrder'
+ },
+ {
+ key: 'PICKED',
+ status: 4,
+ statusText: 'pickedOrder'
+ },
+ {
+ key: 'DELIVERED',
+ status: 5,
+ statusText: 'deliveredOrder'
+ },
+ {
+ key: 'COMPLETED',
+ status: 6,
+ statusText: 'completedOrder'
+ }
+]
+
+const orderStatusActive = ['PENDING', 'PICKED', 'ACCEPTED', 'ASSIGNED']
+
+const ActiveOrders = () => {
+
+ const {t} = useTranslation()
+ const { loadingOrders, errorOrders, orders } = useContext(OrdersContext)
+ const configuration = useContext(ConfigurationContext)
+ const navigation = useNavigation()
+ const themeContext = useContext(ThemeContext)
+ const activeOrders = orders.filter(o =>
+ orderStatusActive.includes(o.orderStatus)
+ )
+
+ const currentTheme = theme[themeContext.ThemeValue]
+ const [showAll, setShowAll] = useState(false)
+
+ const displayOrders = showAll ? activeOrders : activeOrders.slice(0, 2)
+
+ if (loadingOrders) return
+ if (errorOrders && !orders) return
+ return (
+ <>
+ item._id}
+ renderItem={({ item, index }) => (
+
+ )}
+ />
+
+ {activeOrders.length > 2 && (
+ <>
+
+ setShowAll(!showAll)}
+ style={styles().button}>
+
+ {showAll ? t('viewLess') : t('viewAll')}
+
+
+
+ >
+ )}
+
+ >
+ )
+}
+const Item = ({ navigation, configuration, currentTheme, item }) => {
+ const Analytics = analytics()
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id: item._id } }
+ )
+ const {t} = useTranslation()
+ const checkStatus = status => {
+ const obj = orderStatuses.filter(x => {
+ return x.key === status
+ })
+ return obj[0]
+ }
+ return (
+ {
+ Analytics.track(Analytics.events.NAVIGATE_TO_ORDER_DETAIL, {
+ orderId: item._id
+ })
+ navigation.navigate('OrderDetail', {
+ _id: item._id,
+ currencySymbol: configuration.currencySymbol
+ })
+ }}>
+
+
+
+
+
+
+
+
+
+ {item.restaurant.name}
+
+
+
+ {Array(checkStatus(item.orderStatus).status)
+ .fill(0)
+ .map((item, index) => (
+
+ ))}
+ {Array(4 - checkStatus(item.orderStatus).status)
+ .fill(0)
+ .map((item, index) => (
+
+ ))}
+
+
+ {t(checkStatus(item.orderStatus).statusText)}
+
+
+
+
+
+ )
+}
+export default ActiveOrders
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrders/index.js b/enatega-multivendor-app/src/components/Main/ActiveOrders/index.js
new file mode 100644
index 0000000..44c07fd
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrders/index.js
@@ -0,0 +1,2 @@
+import ActiveOrders from './ActiveOrders'
+export default ActiveOrders
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrders/styles.js b/enatega-multivendor-app/src/components/Main/ActiveOrders/styles.js
new file mode 100644
index 0000000..a39e4cf
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrders/styles.js
@@ -0,0 +1,120 @@
+import { StyleSheet } from 'react-native'
+import { verticalScale, scale } from '../../../utils/scaling'
+import { fontStyles } from '../../../utils/fontStyles'
+import { theme } from '../../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ safeAreaViewStyles: {
+ flex: 1,
+ backgroundColor: props !== null ? props.headerBackground : 'transparent'
+ },
+ mainContentContainer: {
+ width: '100%',
+ height: '100%',
+ alignSelf: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ randomShapeContainer: {
+ right: 0,
+ position: 'absolute',
+ zIndex: -1,
+ transform: [{ rotate: '90deg' }]
+ },
+ statusContainer: {
+ overflow: 'hidden',
+ width: '95%',
+ alignSelf: 'center',
+ backgroundColor: theme.Pink.main,
+ borderRadius: scale(12),
+ marginTop: verticalScale(10),
+ elevation: 7,
+ shadowColor: props != null ? props.shadowColor : 'grey',
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(0)
+ },
+ shadowOpacity: 0.3,
+ shadowRadius: verticalScale(3),
+ borderWidth: 1,
+ borderColor: theme.Pink.white
+ },
+
+ imgCard: {
+ position: 'relative',
+ flex: 1,
+ width: undefined,
+ height: undefined
+ },
+ textContainer: {
+ width: scale(300),
+ paddingTop: scale(15),
+ paddingLeft: scale(15),
+ paddingRight: scale(15)
+ },
+ title: {
+ color: props !== null ? props.statusSecondColor : 'grey',
+ fontSize: verticalScale(15),
+ fontFamily: fontStyles.MuseoSans500
+ },
+ description: {
+ color: props !== null ? props.fontMainColor : '#000',
+ fontSize: verticalScale(15),
+ fontFamily: fontStyles.MuseoSans500,
+ paddingLeft: scale(5),
+ paddingTop: scale(3),
+ fontWeight: '700'
+ },
+ statusText: {
+ color: props !== null ? props.statusSecondColor : 'grey',
+ fontSize: verticalScale(13),
+ fontFamily: fontStyles.MuseoSans500,
+ marginBottom: scale(10),
+ paddingLeft: 40,
+ fontWeight: '500'
+ },
+ timeText: {
+ color: props !== null ? props.iconColorPink : 'red',
+ fontSize: verticalScale(24),
+ fontFamily: fontStyles.MuseoSans300,
+ marginLeft: -10
+ },
+ statusCircle: {
+ marginRight: scale(5),
+ marginBottom: scale(5),
+ marginTop: scale(5)
+ },
+ viewAllButton: {
+ paddingTop: scale(0),
+ paddingBottom: scale(10)
+ },
+ btncontainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ button: {
+ padding: scale(10),
+ borderRadius: scale(5)
+ },
+ buttonText: {
+ color: 'black',
+ fontSize: 16,
+ fontWeight: 'bold'
+ },
+ textInnerContainer: {
+ flexDirection: 'row'
+ },
+ activeOrdersContainer: {
+ flexDirection: 'row',
+ justifyContent: 'flex-start',
+ marginTop: scale(2),
+ marginBottom: scale(2),
+ paddingLeft: scale(40)
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/ActiveOrdersAndSections.js b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/ActiveOrdersAndSections.js
new file mode 100644
index 0000000..a0c9e6b
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/ActiveOrdersAndSections.js
@@ -0,0 +1,71 @@
+import React, { useContext } from 'react'
+import { View, FlatList } from 'react-native'
+import ActiveOrders from '../ActiveOrders'
+import UserContext from '../../../context/User'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import RestaurantCard from './RestaurantCard'
+import { scale } from '../../../utils/scaling'
+import {useTranslation} from 'react-i18next'
+
+
+function ActiveOrdersAndSections(props) {
+ const {t} = useTranslation()
+ const { sections } = props
+ const { isLoggedIn, profile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+ {isLoggedIn && profile && }
+ {sections.map(resSection => (
+
+
+ {resSection.name}
+
+
+ item._id}
+ renderItem={({ item }) => {
+ return
+ }}
+ />
+
+
+ ))}
+
+ {t('allRestaurant')}
+
+
+ )
+}
+
+export default ActiveOrdersAndSections
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/RestaurantCard.js b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/RestaurantCard.js
new file mode 100644
index 0000000..d349c2b
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/RestaurantCard.js
@@ -0,0 +1,105 @@
+import { useNavigation } from '@react-navigation/native'
+import React, { useContext } from 'react'
+import { TouchableOpacity, View, Image, Text } from 'react-native'
+import ConfigurationContext from '../../../context/Configuration'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { alignment } from '../../../utils/alignment'
+import { scale } from '../../../utils/scaling'
+import { theme } from '../../../utils/themeColors'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import styles from './styles'
+import { Ionicons } from '@expo/vector-icons'
+import {useTranslation} from 'react-i18next'
+
+function RestaurantCard(props) {
+
+ const {t} = useTranslation()
+ const configuration = useContext(ConfigurationContext)
+ const navigation = useNavigation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+ navigation.navigate('Restaurant', { ...props })}>
+
+
+
+
+
+ {props.deliveryTime + ' '}
+ {t('min')}
+
+
+
+
+
+
+
+ {props.name}
+
+
+
+
+ {props.reviewData.ratings}
+
+
+ ({props.reviewData.reviews.length})
+
+
+
+
+ {props.categories.map(category => category.title).toString()}
+
+
+ {configuration.currencySymbol} {props.minimumOrder}
+
+ {' '}
+ {t('min')}
+
+
+
+
+
+ )
+}
+
+export default React.memo(RestaurantCard)
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/index.js b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/index.js
new file mode 100644
index 0000000..8378e7a
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/index.js
@@ -0,0 +1,2 @@
+import ActiveOrdersAndSections from './ActiveOrdersAndSections'
+export { ActiveOrdersAndSections }
diff --git a/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/styles.js b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/styles.js
new file mode 100644
index 0000000..c22a875
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/ActiveOrdersAndSections/styles.js
@@ -0,0 +1,110 @@
+import { verticalScale, scale } from '../../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+import { theme } from '../../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ ML20: {
+ ...alignment.MLlarge
+ },
+ offerScroll: {
+ height: scale(230),
+ width: '100%'
+ },
+ offerContainer: {
+ backgroundColor: props != null ? props.cartContainer : 'white',
+ elevation: 3,
+ shadowColor: theme.Pink.white,
+
+ height: scale(200),
+ borderRadius: 25,
+ width: scale(228),
+ ...alignment.MBmedium,
+ ...alignment.MTxSmall
+ },
+ imageContainer: {
+ position: 'relative',
+ alignItems: 'center',
+ height: '60%'
+ },
+ overlayContainer: {
+ position: 'absolute',
+ justifyContent: 'space-between',
+ top: 0,
+ height: '100%',
+ backgroundColor: 'rgba(0, 0, 0, 0)',
+ width: scale(230)
+ },
+ deliveryOverlay: {
+ position: 'absolute',
+ top: 12,
+ right: 18,
+ width: scale(44),
+ height: scale(19),
+ justifyContent: 'center',
+ alignItems: 'center',
+ zIndex: 1,
+ borderRadius: scale(10),
+ backgroundColor: props != null ? props.menuBar : 'white'
+ },
+ featureOverlay: {
+ height: '90%',
+ position: 'absolute',
+ left: 0,
+ top: 10,
+ backgroundColor: 'rgba(0, 0, 0, 0)'
+ },
+ featureText: {
+ alignSelf: 'flex-start',
+ maxWidth: '100%',
+ fontSize: scale(9),
+ ...alignment.MTxSmall,
+ ...alignment.PLsmall,
+ ...alignment.PRsmall,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall,
+ backgroundColor: props != null ? props.iconColorPink : 'red'
+ },
+ descriptionContainer: {
+ paddingTop: verticalScale(10),
+ paddingBottom: verticalScale(5),
+ paddingLeft: scale(10),
+ paddingRight: scale(10),
+ height: '40%',
+ width: '100%'
+ },
+ aboutRestaurant: {
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'flex-end'
+ },
+ offerCategoty: {
+ width: '100%',
+ ...alignment.MTxSmall,
+ ...alignment.MBxSmall
+ },
+ mainContainer: {
+ paddingTop: scale(15),
+ marginBottom: scale(15),
+ borderTopLeftRadius: scale(20),
+ borderTopRightRadius: scale(20),
+ borderTopColor: '#ebebeb',
+ borderTopWidth: scale(3)
+ },
+ restaurantImage: {
+ width: scale(220),
+ height: '100%',
+ borderRadius: scale(25),
+ marginTop: scale(5)
+ },
+ restaurantRatingContainer: {
+ marginLeft: scale(2)
+ },
+ restaurantPriceContainer: {
+ marginTop: scale(3),
+ fontSize: 15
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/components/Main/Item/Item.js b/enatega-multivendor-app/src/components/Main/Item/Item.js
new file mode 100644
index 0000000..1e381db
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/Item/Item.js
@@ -0,0 +1,190 @@
+import React, { useContext } from 'react'
+import { View, Image, TouchableOpacity } from 'react-native'
+import styles from './styles'
+import ConfigurationContext from '../../../context/Configuration'
+import { useNavigation } from '@react-navigation/native'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import { AntDesign, Ionicons } from '@expo/vector-icons'
+import { scale } from '../../../utils/scaling'
+import { DAYS } from '../../../utils/enums'
+import { profile } from '../../../apollo/queries'
+import { addFavouriteRestaurant } from '../../../apollo/mutations'
+import UserContext from '../../../context/User'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import Spinner from '../../Spinner/Spinner'
+import { FlashMessage } from '../../../ui/FlashMessage/FlashMessage'
+import {useTranslation} from 'react-i18next'
+
+
+const ADD_FAVOURITE = gql`
+ ${addFavouriteRestaurant}
+`
+const PROFILE = gql`
+ ${profile}
+`
+
+function Item(props) {
+ const {t} = useTranslation()
+ const navigation = useNavigation()
+ const { profile } = useContext(UserContext)
+ const heart = profile ? profile.favourite.includes(props.item._id) : false
+ const item = props.item
+ const category = item.categories.map(category => category.title)
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const [mutate, { loading: loadingMutation }] = useMutation(ADD_FAVOURITE, {
+ onCompleted,
+ refetchQueries: [{ query: PROFILE }]
+ })
+ const { isAvailable, openingTimes } = item
+ const isOpen = () => {
+ const date = new Date()
+ const day = date.getDay()
+ const hours = date.getHours()
+ const minutes = date.getMinutes()
+ const todaysTimings = openingTimes.find(o => o.day === DAYS[day])
+ if (todaysTimings === undefined) return false
+ const times = todaysTimings.times.filter(
+ t =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ )
+ return times.length > 0
+ }
+
+ function onCompleted() {
+ FlashMessage({ message: t('favouritelistUpdated') })
+ }
+ return (
+ navigation.navigate('Restaurant', { ...item })}>
+
+
+
+
+
+
+ profile ? mutate({ variables: { id: item._id } }) : null
+ }>
+ {loadingMutation ? (
+
+ ) : (
+
+ )}
+
+ {(!isAvailable || !isOpen()) && (
+
+
+ {t('Closed')}
+
+
+ )}
+
+
+ {item.deliveryTime + ' '}
+ {t('min')}
+
+
+
+
+
+
+
+ {item.name}
+
+
+
+
+ {item.reviewData.ratings}
+
+
+ ({item.reviewData.reviews.length})
+
+
+
+
+ {category.toString()}
+
+
+
+ {configuration.currencySymbol + ' ' + item.minimumOrder}{' '}
+
+ {' '}
+ {t('min')}
+
+
+
+
+
+
+
+ )
+}
+
+export default Item
diff --git a/enatega-multivendor-app/src/components/Main/Item/styles.js b/enatega-multivendor-app/src/components/Main/Item/styles.js
new file mode 100644
index 0000000..7379ebf
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/Item/styles.js
@@ -0,0 +1,108 @@
+import { verticalScale, scale } from '../../../utils/scaling'
+import { alignment } from '../../../utils/alignment'
+import { StyleSheet } from 'react-native'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ mainContainer: {
+ width: '100%',
+ alignItems: 'center',
+ ...alignment.MBxSmall
+ },
+ restaurantContainer: {
+ backgroundColor: props != null ? props.cartContainer : 'white',
+ elevation: 3,
+ shadowColor: props != null ? props.shadowColor : 'grey',
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(0)
+ },
+ borderRadius: scale(25),
+ height: scale(220),
+ width: '99%',
+ padding: scale(15),
+
+ ...alignment.MBsmall
+ },
+ imageContainer: {
+ position: 'relative',
+ alignItems: 'center',
+ height: '70%'
+ },
+ img: {
+ width: '100%',
+ height: '100%',
+ borderRadius: scale(18)
+ },
+ overlayRestaurantContainer: {
+ position: 'absolute',
+ justifyContent: 'space-between',
+ top: 0,
+ height: '100%',
+ backgroundColor: 'rgba(0, 0, 0, 0)',
+ width: '100%'
+ },
+ favOverlay: {
+ position: 'absolute',
+ top: 10,
+ right: 12,
+ width: scale(30),
+ height: scale(30),
+ borderRadius: scale(15),
+ backgroundColor: props != null ? props.white : 'white',
+ zIndex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ deliveryRestaurantOverlay: {
+ position: 'absolute',
+ bottom: 15,
+ left: 10,
+ width: scale(45),
+ height: scale(20),
+ borderRadius: scale(10),
+ backgroundColor: props != null ? props.menuBar : 'white',
+ zIndex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ aboutRestaurant: {
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'flex-end'
+ },
+ descriptionContainer: {
+ height: '30%',
+ width: '100%',
+ padding: scale(10)
+ },
+ offerCategoty: {
+ ...alignment.MTxSmall,
+ ...alignment.MBxSmall
+ },
+ priceRestaurant: {
+ alignItems: 'center',
+ flexDirection: 'row'
+ },
+ verticalLine: {
+ height: '60%',
+ borderRightWidth: StyleSheet.hairlineWidth,
+ borderRightColor: props != null ? props.horizontalLine : 'black',
+ opacity: 0.6,
+ ...alignment.MLxSmall,
+ ...alignment.MRxSmall
+ },
+ featureOverlay: {
+ height: '90%',
+ position: 'absolute',
+ left: 0,
+ top: 10,
+ backgroundColor: 'rgba(0, 0, 0, 0)'
+ },
+ featureText: {
+ alignSelf: 'flex-start',
+ maxWidth: '100%',
+ backgroundColor: props != null ? props.tagColor : 'black'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/Main/Location/Location.js b/enatega-multivendor-app/src/components/Main/Location/Location.js
new file mode 100644
index 0000000..46166f4
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/Location/Location.js
@@ -0,0 +1,59 @@
+import React, { useRef, useContext, useState } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import { LocationContext } from '../../../context/Location'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import {useTranslation} from 'react-i18next'
+
+function Location(props) {
+ const {t} = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { location } = useContext(LocationContext)
+
+ let translatedLabel;
+ if (location.label === 'Current Location') {
+ translatedLabel = t('currentLocation');
+ } else {
+ translatedLabel = t(location.label);
+ }
+ const translatedAddress =
+ location.deliveryAddress === 'Current Location'
+ ? t('currentLocation')
+ : (location.deliveryAddress);
+
+ const truncatedTranslatedAddress =
+ translatedAddress.length > 20
+ ? translatedAddress.substring(0, 20) + '...'
+ : translatedAddress;
+
+ return (
+
+
+
+
+ {''}
+ {translatedLabel}
+
+
+
+ {''}
+ {truncatedTranslatedAddress}
+
+
+
+
+
+ )
+}
+
+export default Location
diff --git a/enatega-multivendor-app/src/components/Main/Location/styles.js b/enatega-multivendor-app/src/components/Main/Location/styles.js
new file mode 100644
index 0000000..f9ff7d7
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/Location/styles.js
@@ -0,0 +1,27 @@
+import { StyleSheet } from 'react-native'
+import { scale, verticalScale } from '../../../utils/scaling'
+
+const styles = (props = null) => {
+ return StyleSheet.create({
+ headerTitleContainer: {
+ flex: 1,
+ height: '100%',
+ width: '95%',
+ justifyContent: 'center',
+ paddingBottom: scale(8),
+ },
+ headerContainer: {
+ height: '100%',
+ width: '110%',
+ flexDirection: 'column-reverse',
+ paddingLeft: scale(5),
+ paddingTop: scale(10)
+ },
+ textContainer: {
+ maxWidth: '100%',
+ paddingTop: scale(2),
+ paddingBottom: scale(2)
+ }
+ })
+}
+export default styles
\ No newline at end of file
diff --git a/enatega-multivendor-app/src/components/Main/Search/Search.js b/enatega-multivendor-app/src/components/Main/Search/Search.js
new file mode 100644
index 0000000..b34fb52
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/Search/Search.js
@@ -0,0 +1,58 @@
+import React, { useContext } from 'react'
+import { View, TouchableOpacity, TextInput } from 'react-native'
+import { Ionicons, AntDesign } from '@expo/vector-icons'
+import styles from './styles'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { scale } from '../../../utils/scaling'
+import { useTranslation } from 'react-i18next'
+
+function Search(props) {
+ const { t } = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+
+ props.setSearch(text)}
+ value={props.search}
+ />
+
+
+
+ {props.search ? (
+ {
+ props.setSearch('')
+ }}>
+
+
+ ) : (
+ <>>
+ )}
+
+
+
+
+ )
+}
+
+export default Search
diff --git a/enatega-multivendor-app/src/components/Main/Search/styles.js b/enatega-multivendor-app/src/components/Main/Search/styles.js
new file mode 100644
index 0000000..311480d
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Main/Search/styles.js
@@ -0,0 +1,79 @@
+import { fontStyles } from '../../../utils/fontStyles'
+import { scale, verticalScale } from '../../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+import { theme } from '../../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ bodyStyleOne: {
+ fontFamily: fontStyles.MuseoSans500,
+ fontSize: scale(14),
+ color: props != null ? props.fontMainColor : 'black'
+ },
+ mainContainerHolder: {
+ zIndex: 333,
+ width: '100%',
+ alignItems: 'center',
+ borderBottomLeftRadius: scale(25),
+ borderBottomRightRadius: scale(25),
+ backgroundColor: props != null ? props.headerColor : '#fafafa',
+ shadowColor: props != null ? props.shadowColor : 'black',
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(1)
+ },
+ shadowOpacity: 0.1,
+ shadowRadius: verticalScale(1),
+ ...alignment.MBmedium
+ },
+ mainContainer: {
+ width: '90%',
+ height: scale(50),
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center',
+ borderRadius: scale(40),
+ backgroundColor: props != null ? props.cartContainer : 'white',
+ shadowColor: props != null ? props.shadowColor : 'black',
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(1)
+ },
+ shadowOpacity: 0.2,
+ shadowRadius: verticalScale(1),
+ ...alignment.MTlarge,
+ ...alignment.MBmedium
+ },
+ subContainer: {
+ width: '90%',
+ height: '80%',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ flexDirection: 'row'
+ },
+ leftContainer: {
+ flexDirection: 'row',
+ width: '90%'
+ },
+ searchContainer: {
+ width: '10%',
+ height: '80%',
+ alignItems: 'center',
+ justifyContent: 'center',
+ ...alignment.MBxSmall
+ },
+ inputContainer: {
+ width: '100%',
+ justifyContent: 'center',
+ ...alignment.MLxSmall,
+ ...alignment.MRxSmall
+ },
+ filterContainer: {
+ width: '10%',
+ height: '80%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/MyOrders/ActiveOrders.js b/enatega-multivendor-app/src/components/MyOrders/ActiveOrders.js
new file mode 100644
index 0000000..aac8ec2
--- /dev/null
+++ b/enatega-multivendor-app/src/components/MyOrders/ActiveOrders.js
@@ -0,0 +1,102 @@
+import React, { useContext } from 'react'
+import { View, TouchableOpacity, Image } from 'react-native'
+import { useSubscription } from '@apollo/client'
+import gql from 'graphql-tag'
+import { subscriptionOrder } from '../../apollo/subscriptions'
+import Heading from '../../components/MyOrders/Heading'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import TextError from '../Text/TextError/TextError'
+import { alignment } from '../../utils/alignment'
+import styles from './styles'
+import {useTranslation} from 'react-i18next'
+
+const ActiveOrders = ({
+ navigation,
+ loading,
+ error,
+ activeOrders,
+ showActiveHeader,
+ showPastHeader
+}) => {
+ const {t} = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ if (loading) {
+ return <>>
+ }
+ if (error) return
+
+ return (
+
+ {showActiveHeader && (
+
+ )}
+ {activeOrders.map((item, index) => (
+
+ ))}
+ {showPastHeader && (
+
+ )}
+
+ )
+}
+
+const Item = ({ item, navigation, currentTheme }) => {
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id: item._id } }
+ )
+ const {t} = useTranslation()
+ return (
+ navigation.navigate('OrderDetail', { _id: item._id })}>
+
+
+
+
+
+ {item.restaurant.name}
+
+
+ {item.orderStatus === 'PENDING'
+ ? t('PenddingText')
+ : t('PenddingText1')}
+
+
+
+
+
+
+ {' '}
+ {t(item.orderStatus)}
+
+
+
+
+ )
+}
+
+export default ActiveOrders
diff --git a/enatega-multivendor-app/src/components/MyOrders/Heading.js b/enatega-multivendor-app/src/components/MyOrders/Heading.js
new file mode 100644
index 0000000..9645c2c
--- /dev/null
+++ b/enatega-multivendor-app/src/components/MyOrders/Heading.js
@@ -0,0 +1,32 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import { theme } from '../../utils/themeColors'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import styles from './styles'
+
+const Heading = props => {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+ {props.headerName}
+
+
+
+ )
+}
+
+export default Heading
diff --git a/enatega-multivendor-app/src/components/MyOrders/styles.js b/enatega-multivendor-app/src/components/MyOrders/styles.js
new file mode 100644
index 0000000..ce9b98d
--- /dev/null
+++ b/enatega-multivendor-app/src/components/MyOrders/styles.js
@@ -0,0 +1,68 @@
+import { scale, verticalScale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: props !== null ? props.cartContainer : '#FFF',
+ borderRadius: scale(8),
+ elevation: 3,
+ shadowColor: 'black',
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(1)
+ },
+ shadowOpacity: 0.5,
+ shadowRadius: verticalScale(1),
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ ...alignment.MRsmall,
+ ...alignment.MLsmall,
+ ...alignment.MTsmall,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall,
+ ...alignment.PRsmall,
+ ...alignment.PLxSmall
+ },
+ image: {
+ height: '100%',
+ width: '25%',
+ borderRadius: scale(10)
+ },
+ textContainer: {
+ width: '55%',
+ ...alignment.PTlarge,
+ ...alignment.PBlarge,
+ ...alignment.PLsmall
+ },
+ leftContainer: {
+ width: '95%'
+ },
+ rightContainer: {
+ width: '20%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ headingContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'grey',
+ alignItems: 'center',
+ ...alignment.PTlarge,
+ ...alignment.PBlarge,
+ ...alignment.MTsmall
+ },
+ line: {
+ borderRightWidth: StyleSheet.hairlineWidth,
+ borderRightColor: props !== null ? props.horizontalLine : 'grey'
+ },
+ headingLine: {
+ borderBottomWidth: StyleSheet.hairlineWidth,
+ borderBottomColor: props !== null ? props.horizontalLine : 'grey'
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/components/OrderDetail/Detail/Detail.js b/enatega-multivendor-app/src/components/OrderDetail/Detail/Detail.js
new file mode 100644
index 0000000..a1a61fe
--- /dev/null
+++ b/enatega-multivendor-app/src/components/OrderDetail/Detail/Detail.js
@@ -0,0 +1,199 @@
+import { View } from 'react-native'
+import React from 'react'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import styles from './styles'
+import Button from '../../Button/Button'
+import {useTranslation} from 'react-i18next'
+
+export default function Detail({
+ theme,
+ from,
+ orderNo,
+ deliveryAddress,
+ items,
+ currencySymbol,
+ subTotal,
+ tip,
+ tax,
+ deliveryCharges,
+ total,
+ navigation,
+ id,
+ rider
+}) {
+
+ const {t} = useTranslation()
+ return (
+
+ {rider && (
+ <>
+
+ navigation.navigate('ChatWithRider', { id })
+ }}
+ buttonStyles={styles.chatButton(theme)}
+ textStyles={styles.chatButtonText(theme)}
+ text={t('chatWithRider')}
+ />
+
+
+ >
+ )}
+
+
+ {t('orderDetail')}
+
+
+
+
+
+
+ {t('OrderFrom')}
+
+
+ {from}
+
+
+
+
+ {t('OrderNo')}
+
+
+ {' '}
+ {orderNo}
+
+
+
+
+ {t('deliveryAddress')}
+ {':'}
+
+
+ {deliveryAddress}
+
+
+
+
+
+ {items.map(item => (
+
+ addon.options.map(({ title }) => title)
+ )}
+ />
+ ))}
+
+
+
+
+
+
+
+
+
+
+ )
+}
+const ItemRow = ({
+ theme,
+ quantity,
+ title,
+ options = ['raita', '7up'],
+ price,
+ currency
+}) => {
+ return (
+
+
+
+ {quantity}x
+
+
+
+ {title}
+
+ {options.map((option, index) => (
+
+ +{option}
+
+ ))}
+
+
+ {currency} {price}
+
+
+
+
+ )
+}
+
+const PriceRow = ({ theme, title, currency, price }) => {
+ return (
+
+
+ {title}
+
+
+ {currency} {price}
+
+
+ )
+}
diff --git a/enatega-multivendor-app/src/components/OrderDetail/Detail/styles.js b/enatega-multivendor-app/src/components/OrderDetail/Detail/styles.js
new file mode 100644
index 0000000..e8198b4
--- /dev/null
+++ b/enatega-multivendor-app/src/components/OrderDetail/Detail/styles.js
@@ -0,0 +1,61 @@
+import { StyleSheet, Dimensions } from 'react-native'
+import { fontStyles } from '../../../utils/fontStyles'
+import { scale, verticalScale } from '../../../utils/scaling'
+const { width: WIDTH } = Dimensions.get('window')
+export default StyleSheet.create({
+ container: theme => ({
+ alignItems: 'center',
+ backgroundColor: theme.themeBackground
+ }),
+ line: theme => ({
+ height: 1,
+ width: '90%',
+ backgroundColor: theme.secondaryText
+ }),
+ chatButton: theme => ({
+ paddingVertical: scale(25),
+ paddingHorizontal: scale(100),
+ backgroundColor: theme.black,
+ borderRadius: scale(20)
+ }),
+ chatButtonText: theme => ({
+ color: theme.white,
+ fontFamily: fontStyles.MuseoSans500
+ }),
+
+ orderDetailsContainer: theme => ({
+ paddingVertical: 20,
+ backgroundColor: theme.themeBackground
+ }),
+ addressContainer: {
+ width: WIDTH - 20,
+ paddingLeft: scale(15)
+ },
+ row: {
+ paddingTop: scale(25),
+ flexDirection: 'row',
+ },
+ addressText: { width: '50%', textAlign: 'left' },
+ itemsContainer: {
+ width: WIDTH - 20,
+ paddingHorizontal: scale(15),
+ paddingVertical: scale(20),
+ margin: scale(20)
+ },
+ line2: theme => ({
+ marginVertical: scale(10),
+ backgroundColor: theme.secondaryText,
+ height: scale(1),
+ width: '100%'
+ }),
+ itemRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center'
+ },
+ priceRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: scale(10)
+ }
+})
diff --git a/enatega-multivendor-app/src/components/OrderDetail/PickUpMap.js b/enatega-multivendor-app/src/components/OrderDetail/PickUpMap.js
new file mode 100644
index 0000000..11a3ff6
--- /dev/null
+++ b/enatega-multivendor-app/src/components/OrderDetail/PickUpMap.js
@@ -0,0 +1,87 @@
+import React, { useEffect, useContext } from 'react'
+import { View, Dimensions, Image } from 'react-native'
+import MapView, { Marker, PROVIDER_GOOGLE } from 'react-native-maps'
+import { scale } from '../../utils/scaling'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { linkToMapsApp } from '../../utils/links'
+import { mapStyle } from '../../utils/mapStyle'
+import {useTranslation} from 'react-i18next'
+
+
+const { width, height } = Dimensions.get('window')
+
+const ASPECT_RATIO = width / height
+const LATITUDE_DELTA = 0.0922
+const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO
+const DEFAULT_PADDING = { top: 40, right: 40, bottom: 40, left: 40 }
+
+const PickUpMap = ({ deliveryAddress, pickupAddress }) => {
+ const themeContext = useContext(ThemeContext)
+ let map = null
+ const {t} = useTranslation()
+
+ useEffect(() => {
+ const destination = {
+ latitude: parseFloat(pickupAddress.location.coordinates[1]),
+ longitude: parseFloat(pickupAddress.location.coordinates[0])
+ }
+ const origin = {
+ latitude: parseFloat(deliveryAddress.location.coordinates[1]),
+ longitude: parseFloat(deliveryAddress.location.coordinates[0])
+ }
+ fitMarkers([origin, destination])
+ }, [])
+ const fitMarkers = markers => {
+ map.fitToCoordinates(markers, {
+ edgePadding: DEFAULT_PADDING,
+ animated: true
+ })
+ }
+
+ return (
+
+ {
+ map = ref
+ }}
+ customMapStyle={themeContext.ThemeValue === 'Dark' ? mapStyle : null}
+ style={{ flex: 1 }}
+ initialRegion={{
+ latitude: parseFloat(pickupAddress.location.coordinates[1]),
+ latitudeDelta: LATITUDE_DELTA,
+ longitude: parseFloat(pickupAddress.location.coordinates[0]),
+ longitudeDelta: LONGITUDE_DELTA
+ }}
+ onPress={() => {
+ linkToMapsApp(
+ {
+ latitude: pickupAddress.location.coordinates[1],
+ longitude: pickupAddress.location.coordinates[0]
+ },
+ pickupAddress.label
+ )
+ }}
+ provider={PROVIDER_GOOGLE}>
+
+
+
+
+
+ )
+}
+
+export default PickUpMap
diff --git a/enatega-multivendor-app/src/components/OrderDetail/Status/Status.js b/enatega-multivendor-app/src/components/OrderDetail/Status/Status.js
new file mode 100644
index 0000000..80683e7
--- /dev/null
+++ b/enatega-multivendor-app/src/components/OrderDetail/Status/Status.js
@@ -0,0 +1,184 @@
+import { View } from 'react-native'
+import React from 'react'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import styles from './styles'
+import Rider from '../../../assets/SVG/rider'
+import ArrowsLoading from '../../../assets/SVG/arrows-loading'
+import RestaurantPreparing from '../../../assets/SVG/restaurant-preparing'
+import OrderDelivered from '../../../assets/SVG/order-delivered'
+import {useTranslation} from 'react-i18next'
+
+const STATUS_MESSAGES = {
+ PENDING: 'PENDINGStatusMessage',
+ ACCEPTED: 'ACCEPTEDStatusMessage',
+ ASSIGNED: 'ASSIGNEDStatusMessage',
+ PICKED: 'PICKEDStatusMessage',
+ DELIVERED: 'DELIVEREDStatusMessage',
+ CANCELLED: "CANCELLEDStatusMessage"
+}
+const STATUS_ORDER = [
+ 'PENDING',
+ 'ACCEPTED',
+ 'ASSIGNED',
+ 'PICKED',
+ 'DELIVERED',
+ 'CANCELLED'
+]
+
+const formatTime = date =>
+ new Date(date).toLocaleTimeString('en-US', { timeStyle: 'short' })
+
+export default function Status({
+ theme,
+ orderStatus = 'CANCELLED',
+ createdAt,
+ acceptedAt,
+ pickedAt,
+ deliveredAt,
+ cancelledAt,
+ assignedAt
+}) {
+ const {t} = useTranslation()
+ return (
+
+
+
+ {orderStatus === 'PENDING' && }
+ {orderStatus === 'ACCEPTED' && }
+ {orderStatus === 'ASSIGNED' && }
+ {orderStatus === 'PICKED' && }
+ {orderStatus === 'DELIVERED' && }
+ {orderStatus === 'CANCELLED' && }
+
+
+
+ {t('yourOrderIs')} {t(orderStatus).toLowerCase()}
+
+
+ {t(STATUS_MESSAGES[orderStatus])}
+
+
+
+
+ {orderStatus === 'CANCELLED' && (
+
+ )}
+ {orderStatus !== 'CANCELLED' && (
+ <>
+
+
+
+
+
+ >
+ )}
+
+
+
+ )
+}
+
+const Circle = ({ children, color, size, style }) => {
+ return (
+
+ {children}
+
+ )
+}
+
+const StatusRow = ({ theme, number, status, time, isEta, showLine }) => {
+
+ const {t} = useTranslation()
+
+ return (
+
+
+
+ {number}
+
+
+
+ {status}
+
+
+ {isEta ? t('ETA') : ''}
+ {time}
+
+
+
+ {showLine && (
+
+ )}
+
+ )
+}
diff --git a/enatega-multivendor-app/src/components/OrderDetail/Status/styles.js b/enatega-multivendor-app/src/components/OrderDetail/Status/styles.js
new file mode 100644
index 0000000..125a687
--- /dev/null
+++ b/enatega-multivendor-app/src/components/OrderDetail/Status/styles.js
@@ -0,0 +1,57 @@
+import { StyleSheet } from 'react-native'
+
+export default StyleSheet.create({
+ container: theme => ({
+ borderTopLeftRadius: 25,
+ borderTopRightRadius: 25,
+ marginHorizontal: 5,
+ zIndex: 1,
+ // elevation: 1,
+ backgroundColor: theme.themeBackground,
+ marginTop: -100
+ }),
+ statusBox: theme => ({
+ backgroundColor: theme.black,
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderRadius: 25,
+ padding: 10
+ }),
+ statusList: theme => ({
+ padding: 15,
+ width: '100%',
+ backgroundColor: theme.themeBackground,
+ // elevation: 1
+ borderBottomWidth: 1,
+ borderBottomColor: '#fff'
+ }),
+ icon: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ statusText: {
+ marginLeft: 15
+ },
+ text: {
+ marginVertical: 2
+ },
+ statusRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between'
+ },
+ statusRowText: {
+ marginLeft: 10
+ },
+ statusTimeContainer: {
+ flex: 1,
+ flexDirection: 'row',
+ justifyContent: 'space-between'
+ },
+ line2: theme => ({
+ marginVertical: 10,
+ backgroundColor: theme.secondaryText,
+ height: 1,
+ width: '100%'
+ })
+})
diff --git a/enatega-multivendor-app/src/components/OrderDetail/TrackingRider/TrackingRider.js b/enatega-multivendor-app/src/components/OrderDetail/TrackingRider/TrackingRider.js
new file mode 100644
index 0000000..6fd0ea7
--- /dev/null
+++ b/enatega-multivendor-app/src/components/OrderDetail/TrackingRider/TrackingRider.js
@@ -0,0 +1,51 @@
+import React, { useEffect } from 'react'
+import { Marker } from 'react-native-maps'
+import { useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+import { rider } from '../../../apollo/queries'
+import { subscriptionRiderLocation } from '../../../apollo/subscriptions'
+import RiderMarker from '../../../assets/SVG/rider-marker'
+
+const RIDER = gql`
+ ${rider}
+`
+const RIDER_LOCATION = gql`
+ ${subscriptionRiderLocation}
+`
+const TrackingRider = ({ id }) => {
+ const { loading, error, data, subscribeToMore } = useQuery(RIDER, {
+ variables: { id },
+ fetchPolicy: 'network-only'
+ })
+ useEffect(() => {
+ const unsubscribe = subscribeToMore({
+ document: RIDER_LOCATION,
+ variables: { riderId: id },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ return {
+ rider: {
+ ...prev.rider,
+ ...subscriptionData.data.subscriptionRiderLocation
+ }
+ }
+ }
+ })
+ return unsubscribe
+ }, [])
+
+ if (loading) return null
+ if (error) return null
+
+ return (
+
+
+
+ )
+}
+
+export default TrackingRider
diff --git a/enatega-multivendor-app/src/components/Pickup/index.js b/enatega-multivendor-app/src/components/Pickup/index.js
new file mode 100644
index 0000000..3329b67
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Pickup/index.js
@@ -0,0 +1,103 @@
+import React, { useContext, useState } from 'react'
+import { Text, TouchableOpacity, View, Platform } from 'react-native'
+import styles from './styles'
+import { theme } from '../../utils/themeColors'
+import DatePicker from '@react-native-community/datetimepicker'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { FontAwesome } from '@expo/vector-icons'
+import moment from 'moment'
+import { scale } from '../../utils/scaling'
+import {useTranslation} from 'react-i18next'
+
+function PickUp(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const [showPicker, setShowPicker] = useState(false)
+ const currentDate = props.minimumTime
+ const {t} = useTranslation()
+ return (
+
+ {props.isPickedUp ? (
+ {t('SelectPickupDT')}
+ ) : (
+ {t('SelectDeliveryDT')}
+ )}
+
+
+ {
+ props.setIsPickedUp(true)
+ }}
+ style={
+ props.isPickedUp
+ ? styles(currentTheme).activeLabel
+ : styles(currentTheme).labelButton
+ }>
+ {t('pickUp')}
+
+ {
+ props.setIsPickedUp(false)
+ }}
+ style={
+ !props.isPickedUp
+ ? styles(currentTheme).activeLabel
+ : styles(currentTheme).labelButton
+ }>
+ {t('delivery')}
+
+
+
+ {
+ setShowPicker(true)
+ }}>
+
+ {props.orderDate.format('MM-D-YYYY, h:mm a')}{' '}
+ {Platform.OS === 'android' && (
+
+ )}
+
+
+
+
+ {((Platform.OS === 'android' && showPicker) ||
+ Platform.OS === 'ios') && (
+ {
+ if (
+ date !== undefined &&
+ currentDate.getTime() <= date.getTime()
+ ) {
+ props.setOrderDate(moment(date))
+ }
+ Platform.OS === 'android' && setShowPicker(false)
+ }}
+ />
+ )}
+
+
+ )
+}
+
+export default PickUp
diff --git a/enatega-multivendor-app/src/components/Pickup/styles.js b/enatega-multivendor-app/src/components/Pickup/styles.js
new file mode 100644
index 0000000..8565265
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Pickup/styles.js
@@ -0,0 +1,66 @@
+import { StyleSheet } from 'react-native'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) => {
+ return StyleSheet.create({
+ tabStyles: {
+ flex: 1,
+
+ alignItems: 'center',
+ justifyContent: 'center',
+ height: 40
+ },
+ tabContainer: {
+ margin: 15,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ width: '90%'
+ },
+ tabHeading: {
+ textAlign: 'center',
+ fontSize: 20,
+ fontWeight: '700',
+
+ },
+ tabSubHeading: {
+ fontSize: 20,
+ fontWeight: '500'
+ },
+ activeLabel: {
+ flex: 1,
+ borderWidth: 2,
+ justifyContent: 'center',
+ backgroundColor: props !== null ? props.tagColor : 'transparent',
+ color: props !== null ? props.tagColor : 'transparent',
+ borderColor: props !== null ? props.tagColor : 'transparent',
+ height: scale(35),
+ alignItems: 'center',
+ borderRadius: scale(10),
+ marginRight: scale(-15),
+ zIndex: 999
+ },
+ labelButton: {
+ flex: 1,
+ borderWidth: StyleSheet.hairlineWidth,
+ borderColor: props !== null ? props.horizontalLine : 'transparent',
+ justifyContent: 'center',
+ height: scale(35),
+ alignItems: 'center',
+ borderRadius: scale(10),
+ marginRight: scale(-15)
+ },
+ iosDateFormat: {
+ fontSize: 16
+ },
+ androidDateFormat: {
+ marginTop: scale(20),
+ marginBottom: scale(30),
+ paddingTop: scale(5),
+ fontSize: scale(25),
+ fontWeight: '500'
+ }
+ })
+}
+
+export default styles
diff --git a/enatega-multivendor-app/src/components/Restaurant/ImageHeader/ImageHeader.js b/enatega-multivendor-app/src/components/Restaurant/ImageHeader/ImageHeader.js
new file mode 100644
index 0000000..1500d76
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Restaurant/ImageHeader/ImageHeader.js
@@ -0,0 +1,376 @@
+import React, { useContext } from 'react'
+import { View, Dimensions, Text } from 'react-native'
+import { MaterialIcons, Ionicons } from '@expo/vector-icons'
+import { scale, verticalScale } from '../../../utils/scaling'
+import styles from './styles'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { useNavigation } from '@react-navigation/native'
+import { DAYS } from '../../../utils/enums'
+import Animated, {
+ Extrapolation,
+ interpolate,
+ useAnimatedStyle
+} from 'react-native-reanimated'
+import {
+ BorderlessButton,
+ FlatList,
+ RectButton,
+ TouchableOpacity
+} from 'react-native-gesture-handler'
+import { alignment } from '../../../utils/alignment'
+import TextError from '../../Text/TextError/TextError'
+import { textStyles } from '../../../utils/textStyles'
+import { useTranslation } from 'react-i18next'
+
+const { height } = Dimensions.get('screen')
+const TOP_BAR_HEIGHT = height * 0.05
+const AnimatedIon = Animated.createAnimatedComponent(Ionicons)
+const AnimatedBorderless = Animated.createAnimatedComponent(BorderlessButton)
+const AnimatedText = Animated.createAnimatedComponent(Text)
+
+const HEADER_MAX_HEIGHT = height * 0.3
+const HEADER_MIN_HEIGHT = height * 0.07 + TOP_BAR_HEIGHT
+const SCROLL_RANGE = HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT
+
+function ImageTextCenterHeader(props, ref) {
+ const { translationY } = props
+ const flatListRef = ref
+ const navigation = useNavigation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { t } = useTranslation()
+ const aboutObject = {
+ latitude: props.restaurant ? props.restaurant.location.coordinates[1] : '',
+ longitude: props.restaurant ? props.restaurant.location.coordinates[0] : '',
+ address: props.restaurant ? props.restaurant.address : '',
+ restaurantName: props.restaurantName,
+ restaurantImage: props.restaurantImage,
+ deliveryTime: props.restaurant ? props.restaurant.deliveryTime : '...',
+ average: props.restaurant ? props.restaurant.reviewData.ratings : '...',
+ total: props.restaurant ? props.restaurant.reviewData.total : '...',
+ reviews: props.restaurant ? props.restaurant.reviewData.reviews : '...',
+ isAvailable: props.restaurant ? props.restaurant.isAvailable : true,
+ openingTimes: props.restaurant ? props.restaurant.openingTimes : [],
+ isOpen: () => {
+ if (!props.restaurant) return true
+ const date = new Date()
+ const day = date.getDay()
+ const hours = date.getHours()
+ const minutes = date.getMinutes()
+ const todaysTimings = props.restaurant.openingTimes.find(
+ (o) => o.day === DAYS[day]
+ )
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ )
+
+ return times.length > 0
+ }
+ }
+
+ const minutesOpacity = useAnimatedStyle(() => {
+ return {
+ opacity: interpolate(
+ translationY.value,
+ [0, TOP_BAR_HEIGHT, SCROLL_RANGE / 2],
+ [0, 0.8, 1],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ const headerHeight = useAnimatedStyle(() => {
+ return {
+ height: interpolate(
+ translationY.value,
+ [0, HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT],
+ [HEADER_MAX_HEIGHT, HEADER_MIN_HEIGHT],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ const headerHeightWithoutTopbar = useAnimatedStyle(() => {
+ return {
+ height: interpolate(
+ translationY.value,
+ [0, HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT],
+ [
+ HEADER_MAX_HEIGHT - TOP_BAR_HEIGHT,
+ HEADER_MIN_HEIGHT - TOP_BAR_HEIGHT
+ ],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ const opacity = useAnimatedStyle(() => {
+ return {
+ opacity: interpolate(
+ translationY.value,
+ [0, height * 0.05, SCROLL_RANGE / 2],
+ [1, 0.8, 0],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ const headerTextFlex = useAnimatedStyle(() => {
+ const concat = (...args) => args.join('')
+ return {
+ marginBottom: concat(
+ interpolate(
+ translationY.value,
+ [0, 80, SCROLL_RANGE],
+ [-10, -10, 0],
+ Extrapolation.CLAMP
+ ),
+ '%'
+ )
+ }
+ })
+
+ const iconBackColor = currentTheme.white
+
+ const iconRadius = scale(15)
+
+ const iconSize = scale(20)
+
+ const iconTouchHeight = scale(30)
+
+ const iconTouchWidth = scale(30)
+
+ const emptyView = () => {
+ return (
+
+
+
+ )
+ }
+
+ return (
+
+
+
+
+
+
+ navigation.goBack()}
+ >
+
+
+
+ {t('delivery')} {aboutObject.deliveryTime} {t('Min')}
+
+ {!props.loading && (
+ <>
+ {
+ navigation.navigate('About', {
+ restaurantObject: {
+ ...aboutObject,
+ isOpen: null
+ },
+ tab: true
+ })
+ }}
+ >
+ {
+
+ }
+
+ >
+ )}
+
+
+
+
+
+ {aboutObject.restaurantName.length > 12
+ ? `${aboutObject.restaurantName.slice(0, 15)}...`
+ : aboutObject.restaurantName}
+
+
+ {!props.loading && (
+
+
+ {t('delivery')} {aboutObject.deliveryTime} {t('Min')}
+
+
+ )}
+ {!props.loading && (
+ {
+ navigation.navigate('About', {
+ restaurantObject: { ...aboutObject, isOpen: null },
+ tab: false
+ })
+ }}
+ >
+
+
+ {aboutObject.average} ({aboutObject.total})
+
+
+ )}
+
+
+
+
+
+ {!props.loading && (
+ index.toString()}
+ renderItem={({ item, index }) => (
+
+ props.changeIndex(index)}
+ style={styles(currentTheme).headerContainer}
+ >
+
+
+ {item.title}
+
+
+
+
+ )}
+ />
+ )}
+
+ )
+}
+
+export default React.forwardRef(ImageTextCenterHeader)
diff --git a/enatega-multivendor-app/src/components/Restaurant/ImageHeader/index.js b/enatega-multivendor-app/src/components/Restaurant/ImageHeader/index.js
new file mode 100644
index 0000000..37315cf
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Restaurant/ImageHeader/index.js
@@ -0,0 +1,2 @@
+import ImageHeader from './ImageHeader'
+export default ImageHeader
diff --git a/enatega-multivendor-app/src/components/Restaurant/ImageHeader/styles.js b/enatega-multivendor-app/src/components/Restaurant/ImageHeader/styles.js
new file mode 100644
index 0000000..efb4c86
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Restaurant/ImageHeader/styles.js
@@ -0,0 +1,122 @@
+import { StyleSheet, Dimensions } from 'react-native'
+import { scale } from '../../../utils/scaling'
+import { textStyles } from '../../../utils/textStyles'
+import { alignment } from '../../../utils/alignment'
+const { height } = Dimensions.get('window')
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ width: '100%',
+ elevation: 5,
+ height: height * 0.3,
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0
+ // zIndex: 1
+ },
+ touchArea: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: 'rgba(255,255,255,1)',
+ borderRadius: scale(17),
+ height: scale(34),
+ width: scale(34)
+ },
+ fixedViewNavigation: {
+ width: '100%',
+ height: height * 0.07,
+ justifyContent: 'center',
+ zIndex: 1
+ },
+ fixedView: {
+ flex: 1,
+ backgroundColor: 'transparent',
+ ...alignment.PRsmall,
+ ...alignment.PLsmall
+ },
+ fixedIcons: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center'
+ },
+ fixedText: {
+ padding: 10,
+ borderRadius: 10,
+ borderColor: 'white',
+ borderWidth: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.74)',
+ width: '50%',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ deliveryBox: {
+ color: props != null ? props.fontWhite : 'white',
+ borderRadius: scale(5),
+ ...alignment.PxSmall
+ },
+ ratingBox: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+
+ overlayContainer: {
+ position: 'absolute',
+ top: 0,
+ width: '100%',
+ height: '100%',
+ backgroundColor: 'rgba(0,0,0,0.01)',
+ ...alignment.PRsmall,
+ ...alignment.PLsmall
+ },
+ headerTitle: {
+ ...textStyles.H5,
+ ...textStyles.Bolder,
+ color: props != null ? props.black : 'black',
+ flex: 1,
+ textAlign: 'center'
+ },
+ flatListStyle: {
+ height: '50%',
+ width: '100%',
+ backgroundColor: props != null ? props.themeBackground : 'white',
+ borderBottomLeftRadius: 25,
+ borderBottomRightRadius: 25,
+ zIndex: 2
+ },
+ headerContainer: {
+ height: '100%',
+ width: '100%',
+ display: 'flex',
+ backgroundColor: props != null ? props.menuBar : 'white',
+ alignItems: 'center',
+ justifyContent: 'center',
+ ...alignment.PLlarge,
+ ...alignment.PRlarge,
+ borderRadius: 100
+ },
+ activeHeader: {
+ borderBottomWidth: scale(4),
+ borderColor: props != null ? props.tagColor : 'red',
+ height: '100%'
+ },
+ heading: {
+ fontWeight: 'bold'
+ },
+ navbarTextContainer: {
+ display: 'flex',
+ flex: 1,
+ flexDirection: 'row',
+ height: '100%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/components/Sidebar/Sidebar.js b/enatega-multivendor-app/src/components/Sidebar/Sidebar.js
new file mode 100644
index 0000000..21e6022
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Sidebar/Sidebar.js
@@ -0,0 +1,121 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import SideDrawerItems from '../Drawer/Items/DrawerItems'
+import SideDrawerProfile from '../Drawer/Profile/DrawerProfile'
+import { theme } from '../../utils/themeColors'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import UserContext from '../../context/User'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import styles from './styles'
+
+import analytics from '../../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+const datas = [
+ {
+ title: 'titleProfile',
+ icon: 'user',
+ navigateTo: 'Profile',
+ isAuth: true
+ },
+ {
+ title: 'myAddresses',
+ icon: 'location-pin',
+ navigateTo: 'Addresses',
+ isAuth: true
+ },
+ {
+ title: 'titleFavourite',
+ icon: 'heart',
+ navigateTo: 'Favourite',
+ isAuth: true
+ },
+ {
+ title: 'titleOrders',
+ icon: 'layers',
+ navigateTo: 'MyOrders',
+ isAuth: true
+ },
+ {
+ title: 'titleChat',
+ icon: 'bubble',
+ navigateTo: 'Chat',
+ isAuth: false
+ },
+ {
+ title: 'titleSettings',
+ icon: 'settings',
+ navigateTo: 'Settings',
+ isAuth: true
+ },
+ {
+ title: 'titleHelp',
+ icon: 'question',
+ navigateTo: 'Help',
+ isAuth: true
+ }
+]
+
+function SidebBar(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+
+ const inset = useSafeAreaInsets()
+ const { isLoggedIn, logout } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+
+
+
+
+
+ {datas.map((dataItem, ind) => (
+
+ {
+ if (dataItem.isAuth && !isLoggedIn) {
+ props.navigation.navigate('CreateAccount')
+ } else {
+ props.navigation.navigate(dataItem.navigateTo)
+ }
+ }}
+ icon={dataItem.icon}
+ title={t(dataItem.title)}
+ />
+
+ ))}
+ {isLoggedIn && (
+
+ {
+ await Analytics.track(Analytics.events.USER_LOGGED_OUT)
+ await Analytics.identify(null, null)
+
+ logout()
+ props.navigation.closeDrawer()
+ }}
+ icon={'logout'}
+ title={t('titleLogout')}
+ />
+
+ )}
+
+
+
+ )
+}
+export default SidebBar
diff --git a/enatega-multivendor-app/src/components/Sidebar/styles.js b/enatega-multivendor-app/src/components/Sidebar/styles.js
new file mode 100644
index 0000000..d1dcfc0
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Sidebar/styles.js
@@ -0,0 +1,28 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) => {
+ return StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ topContainer: {
+ height: '30%',
+ borderBottomWidth: StyleSheet.hairlineWidth,
+ borderBottomColor: props !== null ? props.horizontalLine : 'transparent'
+ },
+ botContainer: {
+ ...alignment.MTsmall
+ },
+ item: {
+ height: '9.5%',
+ ...alignment.MBxsmall
+ },
+ iconContainer: {
+ backgroundColor: theme.Pink.deleteButton,
+
+ }
+ })
+}
+export default styles
diff --git a/enatega-multivendor-app/src/components/Spinner/Spinner.js b/enatega-multivendor-app/src/components/Spinner/Spinner.js
new file mode 100644
index 0000000..409ba65
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Spinner/Spinner.js
@@ -0,0 +1,26 @@
+import React, { useContext } from 'react'
+import { ActivityIndicator } from 'react-native'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+
+function Spinner(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+ )
+}
+export default Spinner
diff --git a/enatega-multivendor-app/src/components/Text/TextDefault/TextDefault.js b/enatega-multivendor-app/src/components/Text/TextDefault/TextDefault.js
new file mode 100644
index 0000000..560e8ee
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Text/TextDefault/TextDefault.js
@@ -0,0 +1,40 @@
+import React from 'react'
+import { Text, StyleSheet } from 'react-native'
+import color from './styles'
+import { textStyles } from '../../../utils/textStyles'
+
+function TextDefault(props) {
+ const textColor = props.textColor ? props.textColor : 'black'
+ const defaultStyle = StyleSheet.flatten([
+ color(textColor).color,
+ textStyles.Regular,
+ textStyles.Normal
+ ])
+ var customStyles = [defaultStyle]
+
+ if (props.bold) customStyles.push(textStyles.Bold)
+ if (props.bolder) customStyles.push(textStyles.Bolder)
+ if (props.center) customStyles.push(textStyles.Center)
+ if (props.right) customStyles.push(textStyles.Right)
+ if (props.small) customStyles.push(textStyles.Small)
+ if (props.smaller) customStyles.push(textStyles.Smaller)
+ if (props.H5) customStyles.push(textStyles.H5)
+ if (props.H4) customStyles.push(textStyles.H4)
+ if (props.H3) customStyles.push(textStyles.H3)
+ if (props.H2) customStyles.push(textStyles.H2)
+ if (props.H1) customStyles.push(textStyles.H1)
+ if (props.uppercase) customStyles.push(textStyles.UpperCase)
+ if (props.lineOver) customStyles.push(textStyles.LineOver)
+ if (props.B700) customStyles.push(textStyles.B700)
+
+ customStyles = StyleSheet.flatten([customStyles, props.style])
+ return (
+
+ {props.children}
+
+ )
+}
+
+export default TextDefault
diff --git a/enatega-multivendor-app/src/components/Text/TextDefault/styles.js b/enatega-multivendor-app/src/components/Text/TextDefault/styles.js
new file mode 100644
index 0000000..14a2c89
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Text/TextDefault/styles.js
@@ -0,0 +1,10 @@
+import { StyleSheet } from 'react-native'
+
+const color = textColor =>
+ StyleSheet.create({
+ color: {
+ color: textColor
+ }
+ })
+
+export default color
diff --git a/enatega-multivendor-app/src/components/Text/TextError/TextError.js b/enatega-multivendor-app/src/components/Text/TextError/TextError.js
new file mode 100644
index 0000000..784853b
--- /dev/null
+++ b/enatega-multivendor-app/src/components/Text/TextError/TextError.js
@@ -0,0 +1,31 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import TextDefault from '../TextDefault/TextDefault'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+function TextError(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ return (
+
+
+ {props.text}{' '}
+
+
+ )
+}
+export default TextError
diff --git a/enatega-multivendor-app/src/components/WrapperView/WrapperView.js b/enatega-multivendor-app/src/components/WrapperView/WrapperView.js
new file mode 100644
index 0000000..1d26f20
--- /dev/null
+++ b/enatega-multivendor-app/src/components/WrapperView/WrapperView.js
@@ -0,0 +1,21 @@
+import PropTypes from 'prop-types'
+import React from 'react'
+import { View } from 'react-native'
+import useStyle from './styles'
+function WrapperView({ children }) {
+ const styles = useStyle()
+
+ return (
+
+
+
+ {children}
+
+ )
+}
+
+WrapperView.propTypes = {
+ children: PropTypes.node
+}
+
+export default React.memo(WrapperView)
diff --git a/enatega-multivendor-app/src/components/WrapperView/styles.js b/enatega-multivendor-app/src/components/WrapperView/styles.js
new file mode 100644
index 0000000..83ad011
--- /dev/null
+++ b/enatega-multivendor-app/src/components/WrapperView/styles.js
@@ -0,0 +1,50 @@
+import { useTheme } from "@react-navigation/native";
+import { useHeaderHeight } from "@react-navigation/elements";
+import { StyleSheet } from "react-native";
+import { useSafeAreaInsets } from "react-native-safe-area-context";
+import { scale } from "../../utils/scaling";
+
+const useStyle = () => {
+ const { colors } = useTheme();
+ const inset = useSafeAreaInsets();
+ const headerHeight = useHeaderHeight();
+
+ return StyleSheet.create({
+ flex: {
+ flex: 1,
+ },
+ wrapperView: {
+ backgroundColor: colors.background,
+ paddingTop: headerHeight,
+ paddingBottom: inset.bottom,
+ },
+ topCurve: {
+ position: "absolute",
+ opacity: 0.2,
+ left: -75,
+ borderTopRightRadius: scale(90),
+ borderBottomEndRadius: scale(200),
+ top: -20,
+ width: scale(250),
+ height: scale(260),
+ borderRadius: 100,
+ backgroundColor: colors.curve,
+ },
+ bottomCurve: {
+ position: "absolute",
+ height: scale(185),
+ width: scale(170),
+ borderTopRightRadius: scale(110),
+ borderTopLeftRadius: scale(90),
+ borderBottomRightRadius: scale(100),
+ borderBottomLeftRadius: scale(110),
+ right: -90,
+ backgroundColor: colors.curve,
+ opacity: 0.2,
+ bottom: -80,
+ zIndex: -1,
+ },
+ });
+};
+
+export default useStyle;
diff --git a/enatega-multivendor-app/src/context/Auth.js b/enatega-multivendor-app/src/context/Auth.js
new file mode 100644
index 0000000..4c52a4a
--- /dev/null
+++ b/enatega-multivendor-app/src/context/Auth.js
@@ -0,0 +1,34 @@
+import React, { useEffect, useState } from 'react'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+
+
+const AuthContext = React.createContext()
+
+export const AuthProvider = ({ children }) => {
+ const [token, setToken] = useState(null)
+
+ const setTokenAsync = async token => {
+ await AsyncStorage.setItem('token', token)
+ setToken(token)
+ }
+
+ useEffect(() => {
+ let isSubscribed = true
+ ;(async() => {
+ const token = await AsyncStorage.getItem('token')
+ isSubscribed && setToken(token)
+ })()
+ return () => {
+ isSubscribed = false
+ }
+ }, [])
+
+ return (
+
+ {children}
+
+ )
+}
+
+export const AuthConsumer = AuthContext.Consumer
+export default AuthContext
diff --git a/enatega-multivendor-app/src/context/Configuration.js b/enatega-multivendor-app/src/context/Configuration.js
new file mode 100644
index 0000000..df0725c
--- /dev/null
+++ b/enatega-multivendor-app/src/context/Configuration.js
@@ -0,0 +1,37 @@
+import React from 'react'
+import { useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+
+import { getConfiguration } from '../apollo/queries'
+
+const GETCONFIGURATION = gql`
+ ${getConfiguration}
+`
+
+const ConfigurationContext = React.createContext({})
+
+export const ConfigurationProvider = props => {
+ const { loading, data, error } = useQuery(GETCONFIGURATION)
+
+ const configuration =
+ loading || error || !data.configuration
+ ? {
+ currency: '',
+ currencySymbol: '',
+ deliveryRate: 0,
+ expoClientID:
+ '967541328677-d46sl62t52g5r3o5m0mnl2hpptr242nl.apps.googleusercontent.com',
+ androidClientID:
+ '967541328677-o7lcengpu35dugcdbnp4otsfnmngoknr.apps.googleusercontent.com',
+ iOSClientID:
+ '967541328677-gvm85f1ouq92aucsannaduurf5r8mh2r.apps.googleusercontent.com'
+ }
+ : data.configuration
+ return (
+
+ {props.children}
+
+ )
+}
+export const ConfigurationConsumer = ConfigurationContext.Consumer
+export default ConfigurationContext
diff --git a/enatega-multivendor-app/src/context/Location.js b/enatega-multivendor-app/src/context/Location.js
new file mode 100644
index 0000000..217bb1f
--- /dev/null
+++ b/enatega-multivendor-app/src/context/Location.js
@@ -0,0 +1,3 @@
+import React from 'react'
+
+export const LocationContext = React.createContext()
diff --git a/enatega-multivendor-app/src/context/Orders.js b/enatega-multivendor-app/src/context/Orders.js
new file mode 100644
index 0000000..a0c08be
--- /dev/null
+++ b/enatega-multivendor-app/src/context/Orders.js
@@ -0,0 +1,94 @@
+import React, { useEffect, useContext } from 'react'
+import { useApolloClient, useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+import { myOrders } from '../apollo/queries'
+import { orderStatusChanged } from '../apollo/subscriptions'
+import UserContext from './User'
+
+const ORDERS = gql`
+ ${myOrders}
+`
+const SUBSCRIPTION_ORDERS = gql`
+ ${orderStatusChanged}
+`
+
+const OrdersContext = React.createContext()
+
+export const OrdersProvider = ({ children }) => {
+ const client = useApolloClient()
+ const { profile } = useContext(UserContext)
+ const {
+ called: calledOrders,
+ loading: loadingOrders,
+ error: errorOrders,
+ data: dataOrders,
+ networkStatus: networkStatusOrders,
+ fetchMore: fetchMoreOrders,
+ refetch: reFetchOrders,
+ subscribeToMore: subscribeToMoreOrders
+ } = useQuery(ORDERS, {
+ fetchPolicy: 'network-only',
+ onError,
+ skip: !profile
+ })
+
+ function onError(error) {
+ console.log('error context orders', error.message)
+ }
+
+ useEffect(() => {
+ if (!profile) return
+ subscribeOrders()
+ }, [profile])
+
+ const subscribeOrders = () => {
+ try {
+ const unsubscribeOrders = subscribeToMoreOrders({
+ document: SUBSCRIPTION_ORDERS,
+ variables: { userId: profile._id },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ const { _id } = subscriptionData.data.orderStatusChanged.order
+ if (subscriptionData.data.orderStatusChanged.origin === 'new') {
+ if (prev.orders.findIndex(o => o._id === _id) > -1) return prev
+ return {
+ orders: [
+ subscriptionData.data.orderStatusChanged.order,
+ ...prev.orders
+ ]
+ }
+ }
+ return prev
+ }
+ })
+ client.onResetStore(unsubscribeOrders)
+ } catch (error) {
+ console.log('error subscribing order', error.message)
+ }
+ }
+
+ const fetchMoreOrdersFunc = () => {
+ if (networkStatusOrders === 7) {
+ fetchMoreOrders({
+ variables: { offset: dataOrders.orders.length + 1 }
+ })
+ }
+ }
+
+ return (
+
+ {children}
+
+ )
+}
+
+export const OrdersConsumer = OrdersContext.Consumer
+export default OrdersContext
diff --git a/enatega-multivendor-app/src/context/User.js b/enatega-multivendor-app/src/context/User.js
new file mode 100644
index 0000000..d710646
--- /dev/null
+++ b/enatega-multivendor-app/src/context/User.js
@@ -0,0 +1,237 @@
+import React, { useState, useEffect, useContext } from 'react'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import { useApolloClient, useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+import { v5 as uuidv5 } from 'uuid'
+import { v1 as uuidv1 } from 'uuid'
+import { profile } from '../apollo/queries'
+import { LocationContext } from './Location'
+import AuthContext from './Auth'
+
+import analytics from '../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+const v1options = {
+ random: [
+ 0x10,
+ 0x91,
+ 0x56,
+ 0xbe,
+ 0xc4,
+ 0xfb,
+ 0xc1,
+ 0xea,
+ 0x71,
+ 0xb4,
+ 0xef,
+ 0xe1,
+ 0x67,
+ 0x1c,
+ 0x58,
+ 0x36
+ ]
+}
+
+const PROFILE = gql`
+ ${profile}
+`
+
+const UserContext = React.createContext({})
+
+export const UserProvider = props => {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+
+ const { token, setToken } = useContext(AuthContext)
+ const client = useApolloClient()
+ const { location, setLocation } = useContext(LocationContext)
+ const [cart, setCart] = useState([])
+ const [restaurant, setRestaurant] = useState(null)
+
+ const {
+ called: calledProfile,
+ loading: loadingProfile,
+ error: errorProfile,
+ data: dataProfile,
+ refetch: refetchProfile
+ } = useQuery(PROFILE, {
+ fetchPolicy: 'network-only',
+ onError,
+ onCompleted,
+ skip: !token
+ })
+ useEffect(() => {
+ let isSubscribed = true
+ ;(async () => {
+ const restaurant = await AsyncStorage.getItem('restaurant')
+ const cart = await AsyncStorage.getItem('cartItems')
+ isSubscribed && setRestaurant(restaurant || null)
+ isSubscribed && setCart(cart ? JSON.parse(cart) : [])
+ })()
+ return () => {
+ isSubscribed = false
+ }
+ }, [])
+
+ function onError(error) {
+ console.log('error context user', error.message)
+ }
+ async function onCompleted(data) {
+ const { _id: userId, name, email, phone } = data.profile
+ await Analytics.identify(
+ {
+ userId,
+ name,
+ email,
+ phone
+ },
+ userId
+ )
+ await Analytics.track(Analytics.events.USER_RECONNECTED, {
+ userId: data.profile._id
+ })
+ }
+
+ const logout = async () => {
+ try {
+ await AsyncStorage.removeItem('token')
+ setToken(null)
+ if (location._id) {
+ setLocation({
+ label: t('selectedLocation'),
+ latitude: location.latitude,
+ longitude: location.longitude,
+ deliveryAddress: location.deliveryAddress
+ })
+ }
+ client.cache.evict({
+ id: `${dataProfile.profile.__typename}:${dataProfile.profile._id}`
+ })
+ await client.resetStore()
+ } catch (error) {
+ console.log('error on logout', error)
+ }
+ }
+
+ const clearCart = async () => {
+ setCart([])
+ setRestaurant(null)
+ await AsyncStorage.removeItem('cartItems')
+ await AsyncStorage.removeItem('restaurant')
+ }
+
+ const addQuantity = async (key, quantity = 1) => {
+ const cartIndex = cart.findIndex(c => c.key === key)
+ cart[cartIndex].quantity += quantity
+ setCart([...cart])
+ await AsyncStorage.setItem('cartItems', JSON.stringify([...cart]))
+ }
+
+ const deleteItem = async key => {
+ const cartIndex = cart.findIndex(c => c.key === key)
+ if (cartIndex > -1) {
+ cart.splice(cartIndex, 1)
+ const items = [...cart.filter(c => c.quantity > 0)]
+ setCart(items)
+ if (items.length === 0) setRestaurant(null)
+ await AsyncStorage.setItem('cartItems', JSON.stringify(items))
+ }
+ }
+
+ const removeQuantity = async key => {
+ const cartIndex = cart.findIndex(c => c.key === key)
+ cart[cartIndex].quantity -= 1
+ const items = [...cart.filter(c => c.quantity > 0)]
+ setCart(items)
+ if (items.length === 0) setRestaurant(null)
+ await AsyncStorage.setItem('cartItems', JSON.stringify(items))
+ }
+
+ const checkItemCart = itemId => {
+ const cartIndex = cart.findIndex(c => c._id === itemId)
+ if (cartIndex < 0) {
+ return {
+ exist: false,
+ quantity: 0
+ }
+ } else {
+ return {
+ exist: true,
+ quantity: cart[cartIndex].quantity,
+ key: cart[cartIndex].key
+ }
+ }
+ }
+ const numberOfCartItems = () => {
+ return cart
+ .map(c => c.quantity)
+ .reduce(function (a, b) {
+ return a + b
+ }, 0)
+ }
+
+ const addCartItem = async (
+ _id,
+ variation,
+ quantity = 1,
+ addons = [],
+ clearFlag,
+ specialInstructions = ''
+ ) => {
+ const cartItems = clearFlag ? [] : cart
+ cartItems.push({
+ key: uuidv1(v1options),
+ _id,
+ quantity: quantity,
+ variation: {
+ _id: variation
+ },
+ addons,
+ specialInstructions
+ })
+
+ await AsyncStorage.setItem('cartItems', JSON.stringify([...cartItems]))
+ setCart([...cartItems])
+ }
+
+ const updateCart = async cart => {
+ setCart(cart)
+ await AsyncStorage.setItem('cartItems', JSON.stringify(cart))
+ }
+
+ const setCartRestaurant = async id => {
+ setRestaurant(id)
+ await AsyncStorage.setItem('restaurant', id)
+ }
+
+ return (
+
+ {props.children}
+
+ )
+}
+export const useUserContext = () => useContext(UserContext)
+export const UserConsumer = UserContext.Consumer
+export default UserContext
\ No newline at end of file
diff --git a/enatega-multivendor-app/src/routes/index.js b/enatega-multivendor-app/src/routes/index.js
new file mode 100644
index 0000000..4cd77c0
--- /dev/null
+++ b/enatega-multivendor-app/src/routes/index.js
@@ -0,0 +1,245 @@
+import React, { useCallback, useContext, useEffect } from 'react'
+import { SafeAreaProvider } from 'react-native-safe-area-context'
+import { NavigationContainer } from '@react-navigation/native'
+import { createStackNavigator } from '@react-navigation/stack'
+import { createDrawerNavigator } from '@react-navigation/drawer'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import navigationService from './navigationService'
+import * as Notifications from 'expo-notifications'
+import Login from '../screens/Login/Login'
+import Register from '../screens/Register/Register'
+import ForgotPassword from '../screens/ForgotPassword/ForgotPassword'
+import SetYourPassword from '../screens/ForgotPassword/SetYourPassword'
+import CreateAccount from '../screens/CreateAccount/CreateAccount'
+import SideBar from '../components/Sidebar/Sidebar'
+import ItemDetail from '../screens/ItemDetail/ItemDetail'
+import MyOrders from '../screens/MyOrders/MyOrders'
+import Cart from '../screens/Cart/Cart'
+import RateAndReview from '../screens/RateAndReview/RateAndReview'
+import Payment from '../screens/Payment/Payment'
+import Help from '../screens/Help/Help'
+import Paypal from '../screens/Paypal/Paypal'
+import StripeCheckout from '../screens/Stripe/StripeCheckout'
+import Profile from '../screens/Profile/Profile'
+import Addresses from '../screens/Addresses/Addresses'
+import NewAddress from '../screens/NewAddress/NewAddress'
+import EditAddress from '../screens/EditAddress/EditAddress'
+import CartAddress from '../screens/CartAddress/CartAddress'
+import FullMap from '../screens/FullMap/FullMap'
+import OrderDetail from '../screens/OrderDetail/OrderDetail'
+import Settings from '../screens/Settings/Settings'
+import HelpBrowser from '../screens/HelpBrowser/HelpBrowser'
+import Coupon from '../screens/Coupon/Coupon'
+import Main from '../screens/Main/Main'
+import Restaurant from '../screens/Restaurant/Restaurant'
+import About from '../screens/About'
+import SelectLocation from '../screens/SelectLocation'
+import CurrentLocation from '../screens/CurrentLocation'
+import ThemeContext from '../ui/ThemeContext/ThemeContext'
+import { theme } from '../utils/themeColors'
+import screenOptions from './screenOptions'
+import { LocationContext } from '../context/Location'
+import Reorder from '../screens/Reorder/Reorder'
+import Chat from '../screens/Chat/Chat'
+import Favourite from '../screens/Favourite/Favourite'
+import ChatScreen from '../screens/ChatWithRider/ChatScreen'
+import Tip from '../screens/Tip/Tip'
+import { DarkBackButton } from '../components/Header/HeaderIcons/HeaderIcons'
+import EmailOtp from '../screens/Otp/Email/EmailOtp'
+import PhoneOtp from '../screens/Otp/Phone/PhoneOtp'
+import ForgotPasswordOtp from '../screens/Otp/ForgotPassword/ForgetPasswordOtp'
+import PhoneNumber from '../screens/PhoneNumber/PhoneNumber'
+import { useApolloClient, gql } from '@apollo/client'
+import { myOrders } from '../apollo/queries'
+
+const NavigationStack = createStackNavigator()
+const MainStack = createStackNavigator()
+const SideDrawer = createDrawerNavigator()
+const Location = createStackNavigator()
+
+function Drawer() {
+ return (
+ }>
+
+
+ )
+}
+function NoDrawer() {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+ null }}
+ />
+ { }
+
+
+
+
+
+
+
+
+
+ DarkBackButton({
+ iconColor: currentTheme.backIcon,
+ iconBackground: currentTheme.backIconBackground
+ })
+ }}
+ />
+
+
+
+
+
+
+ null }}
+ />
+
+
+
+
+
+
+
+ {/* Authentication Login */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+function LocationStack() {
+ return (
+
+ null }}
+ />
+
+
+ )
+}
+
+function AppContainer() {
+ const client = useApolloClient()
+ const { location } = useContext(LocationContext)
+ const lastNotificationResponse = Notifications.useLastNotificationResponse()
+ const handleNotification = useCallback(
+ async response => {
+ const { _id } = response.notification.request.content.data
+ const lastNotificationHandledId = await AsyncStorage.getItem(
+ '@lastNotificationHandledId'
+ )
+ await client.query({
+ query: gql`
+ ${myOrders}
+ `,
+ fetchPolicy: 'network-only'
+ })
+ const identifier = response.notification.request.identifier
+ if (lastNotificationHandledId === identifier) return
+ await AsyncStorage.setItem('@lastNotificationHandledId', identifier)
+ navigationService.navigate('OrderDetail', {
+ _id
+ })
+ },
+ [lastNotificationResponse]
+ )
+ useEffect(() => {
+ if (
+ lastNotificationResponse &&
+ lastNotificationResponse.notification.request.content.data.type ===
+ 'order' &&
+ lastNotificationResponse.actionIdentifier ===
+ Notifications.DEFAULT_ACTION_IDENTIFIER
+ ) {
+ handleNotification(lastNotificationResponse)
+ }
+ }, [lastNotificationResponse])
+
+ useEffect(() => {
+ Notifications.setNotificationHandler({
+ handleNotification: async() => ({
+ shouldShowAlert: true,
+ shouldPlaySound: false,
+ shouldSetBadge: false
+ })
+ })
+ }, [])
+
+ return (
+
+ {
+ navigationService.setGlobalRef(ref)
+ }}>
+ {!location ? (
+
+ ) : (
+
+
+
+ )}
+
+
+ )
+}
+
+export default AppContainer
diff --git a/enatega-multivendor-app/src/routes/navigationService.js b/enatega-multivendor-app/src/routes/navigationService.js
new file mode 100644
index 0000000..9e2c853
--- /dev/null
+++ b/enatega-multivendor-app/src/routes/navigationService.js
@@ -0,0 +1,19 @@
+let navObj = null
+
+function setGlobalRef(ref) {
+ navObj = ref
+}
+
+function navigate(path, props = {}) {
+ navObj.navigate(path, props)
+}
+
+function goBack() {
+ navObj.goBack()
+}
+
+export default {
+ setGlobalRef,
+ navigate,
+ goBack
+}
diff --git a/enatega-multivendor-app/src/routes/screenOptions.js b/enatega-multivendor-app/src/routes/screenOptions.js
new file mode 100644
index 0000000..1e0783c
--- /dev/null
+++ b/enatega-multivendor-app/src/routes/screenOptions.js
@@ -0,0 +1,36 @@
+/* eslint-disable react/display-name */
+import React from 'react'
+import {
+ RightButton,
+ BackButton
+} from '../components/Header/HeaderIcons/HeaderIcons'
+import { StyleSheet } from 'react-native'
+import { textStyles } from '../utils/textStyles'
+import { scale } from '../utils/scaling'
+
+const screenOptions = props => {
+ return {
+ headerTitleAlign: 'center',
+ headerBackTitleVisible: false,
+ headerStyle: {
+ backgroundColor: props.backColor,
+ borderBottomColor: props.lineColor,
+ borderBottomWidth: StyleSheet.hairlineWidth
+ },
+ headerTitleStyle: {
+ color: props.textColor,
+ ...textStyles.Bolder,
+ ...textStyles.B700,
+ backgroundColor: 'transparent'
+ },
+ headerTitleContainerStyle: {
+ marginHorizontal: scale(35)
+ },
+ headerBackImage: () =>
+ BackButton({ iconColor: props.textColor, icon: 'leftArrow' }),
+ headerRight: () => (
+
+ )
+ }
+}
+export default screenOptions
diff --git a/enatega-multivendor-app/src/screens/About/About.js b/enatega-multivendor-app/src/screens/About/About.js
new file mode 100644
index 0000000..24bb1de
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/About/About.js
@@ -0,0 +1,292 @@
+import React, { useState, useContext, useEffect } from 'react'
+import { View, FlatList, TouchableOpacity } from 'react-native'
+import { MaterialIcons } from '@expo/vector-icons'
+import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
+import { scale } from '../../utils/scaling'
+import ImageHeader from '../../components/About/Header'
+import styles from './styles'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import TextError from '../../components/Text/TextError/TextError'
+import { alignment } from '../../utils/alignment'
+import { mapStyle } from '../../utils/mapStyle'
+import CustomMarker from '../../assets/SVG/imageComponents/CustomMarker'
+import analytics from '../../utils/analytics'
+import { ScrollView } from 'react-native-gesture-handler'
+import { useTranslation } from 'react-i18next'
+
+function About(props) {
+ const Analytics = analytics()
+ const { t } = useTranslation()
+ const { restaurantObject, tab } = props.route.params
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const Reviews = restaurantObject.reviews || []
+ const RestAbout = {
+ name: restaurantObject.name,
+ address: restaurantObject.address,
+ map: {
+ latitude: Number(restaurantObject.latitude),
+ longitude: Number(restaurantObject.longitude),
+ latitudeDelta: 0.0022,
+ longitudeDelta: 0.0021
+ }
+ }
+
+ const [pager, pagerSetter] = useState(tab)
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ABOUT)
+ }
+ Track()
+ }, [])
+ function emptyView() {
+ return (
+
+ )
+ }
+ function line() {
+ return
+ }
+ function header() {
+ return (
+ <>
+
+ {restaurantObject.total} {t('Reviews')}
+
+ {line()}
+ >
+ )
+ }
+ function formatDate(date) {
+ date = Number(date)
+ date = new Date(date)
+ return date.toDateString()
+ }
+
+ function AboutTab() {
+ return (
+
+
+
+
+
+ {RestAbout.address}
+
+
+
+
+
+
+ {t('Openingtimes')}
+
+
+
+
+ {restaurantObject.openingTimes.map((v, index) => (
+
+
+ {t(v.day)}{' '}
+
+ {v.times.length < 1 ? (
+
+ {t('ClosedAllDay')}
+
+ ) : (
+ v.times.map(t => (
+
+ {t.startTime[0]}:{t.startTime[1]}
+ {' - '}
+ {t.endTime[0]}:{t.endTime[1]}
+
+ ))
+ )}
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+ )
+ }
+
+ function ReviewTab() {
+ return (
+ index.toString()}
+ ListHeaderComponent={header}
+ ItemSeparatorComponent={line}
+ showsVerticalScrollIndicator={false}
+ renderItem={({ item, index }) => (
+
+
+
+ {item.order.user.name}
+
+
+ {Array(5)
+ .fill(1)
+ .map((value, index) => {
+ if (index < item.rating) {
+ return (
+
+ )
+ } else if (index >= item.rating && index < 5) {
+ return (
+
+ )
+ }
+ })}
+
+
+
+ {formatDate(item.createdAt)}
+
+
+ {item.description}
+
+
+ )}
+ />
+ )
+ }
+ return (
+
+ {
+
+ }
+
+
+ pagerSetter(true)}
+ style={[
+ styles(currentTheme).tab,
+ pager && styles(currentTheme).selectedTab
+ ]}>
+
+ {t('About')}
+
+
+
+ pagerSetter(false)}
+ style={[
+ styles(currentTheme).tab,
+ !pager && styles(currentTheme).selectedTab
+ ]}>
+
+ {t('Reviews')}
+
+
+
+
+ {pager ? AboutTab() : ReviewTab()}
+
+
+ )
+}
+
+export default About
diff --git a/enatega-multivendor-app/src/screens/About/index.js b/enatega-multivendor-app/src/screens/About/index.js
new file mode 100644
index 0000000..966a1eb
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/About/index.js
@@ -0,0 +1,2 @@
+import About from './About'
+export default About
diff --git a/enatega-multivendor-app/src/screens/About/styles.js b/enatega-multivendor-app/src/screens/About/styles.js
new file mode 100644
index 0000000..034a874
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/About/styles.js
@@ -0,0 +1,172 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ MB15: {
+ padding: 10,
+ ...alignment.MBmedium,
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ borderRadius: 10,
+ shadowOffset: { width: 2, height: 4 },
+ shadowColor: props != null ? props.black : 'black',
+ shadowOpacity: 0.1,
+ shadowRadius: 10
+ },
+ width10: {
+ width: '10%'
+ },
+ width90: {
+ width: '90%',
+ paddingLeft: 10
+ },
+ mapMainContainer: {
+ backgroundColor: props != null ? props.themeBackground : 'white',
+ flexGrow: 1,
+ ...alignment.PTlarge,
+ ...alignment.PLmedium,
+ ...alignment.PRmedium
+ },
+ inlineFloat: {
+ width: '100%',
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ mapContainer: {
+ marginTop: 10,
+ marginBottom: 20,
+ borderRadius: scale(10),
+ borderColor: props != null ? props.white : 'white',
+ borderWidth: 2,
+ height: 200,
+ backgroundColor: props != null ? props.white : 'white'
+ },
+ marker: {
+ width: 50,
+ height: 50,
+ position: 'absolute',
+ top: '50%',
+ left: '50%',
+ zIndex: 1,
+ translateX: -25,
+ translateY: -25,
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: -25 }, { translateY: -25 }]
+ },
+ mainContainer: {
+ backgroundColor: props != null ? props.themeBackground : 'white'
+ },
+ restaurantContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ backgroundColor: props != null ? props.themeBackground : 'white',
+ ...alignment.Psmall
+ },
+
+ restaurantTitle: {
+ width: '75%',
+ ...alignment.PLxSmall
+ },
+ line: {
+ width: '100%',
+ borderBottomColor: props != null ? props.horizontalLine : 'lightgrey',
+ borderBottomWidth: StyleSheet.hairlineWidth
+ },
+ reviewerContainer: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ width: '100%'
+ },
+ review: {
+ marginHorizontal: 5,
+ zIndex: 1,
+ elevation: 1,
+ backgroundColor: 'black',
+ padding: 10,
+ borderRadius: 10
+ },
+ ratingContainer: {
+ flexDirection: 'row',
+ width: '25%',
+ justifyContent: 'flex-end',
+ alignItems: 'center'
+ },
+ timingContainer: {
+ alignSelf: 'center',
+ width: '90%',
+ marginBottom: scale(20)
+ },
+ dateReview: {
+ marginTop: -8,
+ width: '100%',
+ textAlign: 'left',
+ fontSize: 10,
+ ...alignment.PTsmall,
+ ...alignment.PBxSmall
+ },
+ navigationContainer: {
+ flexDirection: 'row',
+ alignItems: 'flex-start',
+ justifyContent: 'center',
+ width: '100%',
+ zIndex: 999
+ },
+ tab: {
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ marginTop: scale(-15),
+ width: '48%',
+ height: verticalScale(35),
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(10),
+ margin: scale(-10)
+ },
+ selectedTab: {
+ backgroundColor: props != null ? props.main : '#90EA93',
+ borderRadius: scale(10),
+ margin: scale(-10)
+ },
+ timingRow: {
+ flexDirection: 'row',
+ alignItems: 'flex-end',
+ alignSelf: 'center',
+ backgroundColor: props != null ? props.main : '#90EA93',
+ borderRadius: 30,
+ padding: 10,
+ marginBottom: 10,
+ width: '90%'
+ },
+ marker: {
+ width: 50,
+ height: 50,
+ position: 'absolute',
+ top: '50%',
+ left: '50%',
+ zIndex: 1,
+ translateX: -25,
+ translateY: -25,
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: -25 }, { translateY: -25 }]
+ },
+ review: {
+ marginHorizontal: 5,
+ zIndex: 1,
+ elevation: 1,
+ backgroundColor: props != null ? props.black : 'black',
+ padding: 10,
+ borderRadius: 10
+ },
+ timingText: {
+ width: scale(140),
+ textAlign: 'left'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Addresses/Addresses.js b/enatega-multivendor-app/src/screens/Addresses/Addresses.js
new file mode 100644
index 0000000..792e91f
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Addresses/Addresses.js
@@ -0,0 +1,250 @@
+import React, { useContext, useEffect, useLayoutEffect } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ FlatList,
+ StatusBar,
+ Platform,
+ Text,
+ ScrollView
+} from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import { useMutation } from '@apollo/client'
+import {
+ AntDesign,
+ EvilIcons,
+ SimpleLineIcons,
+ MaterialIcons
+} from '@expo/vector-icons'
+
+import gql from 'graphql-tag'
+
+import { scale } from '../../utils/scaling'
+import { deleteAddress } from '../../apollo/mutations'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import UserContext from '../../context/User'
+import { theme } from '../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { useNavigation, useFocusEffect } from '@react-navigation/native'
+import EmptyAddress from '../../assets/SVG/imageComponents/EmptyAddress'
+import analytics from '../../utils/analytics'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import navigationService from '../../routes/navigationService'
+import { HeaderBackButton } from '@react-navigation/elements'
+import CustomHomeIcon from '../../assets/SVG/imageComponents/CustomHomeIcon'
+import CustomWorkIcon from '../../assets/SVG/imageComponents/CustomWorkIcon'
+import CustomOtherIcon from '../../assets/SVG/imageComponents/CustomOtherIcon'
+import { useTranslation } from 'react-i18next'
+
+const DELETE_ADDRESS = gql`
+ ${deleteAddress}
+`
+
+function Addresses() {
+ const Analytics = analytics()
+
+ const navigation = useNavigation()
+ const [mutate, { loading: loadingMutation }] = useMutation(DELETE_ADDRESS)
+ const { profile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const inset = useSafeAreaInsets()
+ const { t } = useTranslation()
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ADDRESS)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ title: t('myAddresses'),
+ headerRight: null,
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ backgroundColor: currentTheme.black,
+ borderRadius: scale(10),
+ borderColor: currentTheme.white,
+ borderWidth: 1
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerBackground,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [])
+
+ const addressIcons = {
+ Home: CustomHomeIcon,
+ Work: CustomWorkIcon,
+ Other: CustomOtherIcon
+ }
+
+ function emptyView() {
+ return (
+
+
+
+
+
+
+ It's empty here.
+
+
+
+
+ You haven't saved any address yet.
+ {'\n'}
+ Click Add New Address to get started
+
+
+
+
+
+ )
+ }
+ return (
+
+ {/* */}
+ item._id}
+ ItemSeparatorComponent={() => (
+
+ )}
+ ListHeaderComponent={() => }
+ renderItem={({ item: address }) => (
+
+
+
+
+ {t(address.label)}
+
+
+
+
+
+
+ {addressIcons[address.label] ? (
+ React.createElement(addressIcons[address.label], {
+ fill: currentTheme.iconColorPink
+ })
+ ) : (
+
+ )}
+
+
+
+
+ {address.deliveryAddress}
+
+
+ {address.details}
+
+
+
+ {
+ navigation.navigate('EditAddress', { ...address })
+ }}>
+
+
+
+ {
+ mutate({
+ variables: { id: address._id },
+ onCompleted: () => {
+ FlashMessage({
+ message: 'Address deleted Successfully'
+ })
+ },
+ onError: error => {
+ FlashMessage({
+ message: 'Error deleting address'
+ })
+ }
+ })
+ }}>
+
+
+
+
+
+
+ )}
+ />
+ {/* */}
+
+ navigation.navigate('NewAddress')}>
+
+
+
+
+
+ )
+}
+
+export default Addresses
diff --git a/enatega-multivendor-app/src/screens/Addresses/styles.js b/enatega-multivendor-app/src/screens/Addresses/styles.js
new file mode 100644
index 0000000..43e9848
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Addresses/styles.js
@@ -0,0 +1,119 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ containerInfo: {
+ width: '100%',
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: 'white',
+ marginTop: scale(20),
+ paddingBottom: scale(20),
+ borderRadius: scale(20)
+ },
+ subContainerImage: {
+ width: '100%',
+ alignContent: 'center',
+ justifyContent: 'center'
+ },
+ descriptionEmpty: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ viewTitle: {
+ ...alignment.Msmall
+ },
+ mainView: {
+ paddingBottom: scale(100),
+ marginBottom: scale(25)
+ },
+ containerButton: {
+ backgroundColor: props !== null ? props.iconColorPink : 'transparent',
+ width: scale(40),
+ height: scale(40),
+ borderRadius: 50,
+ position: 'absolute',
+ right: scale(20),
+ bottom: verticalScale(20),
+ zIndex: 1,
+ elevation: 7,
+ shadowColor: props !== null ? props.shadowColor : 'transparent',
+ shadowOffset: {
+ width: scale(2),
+ height: verticalScale(6)
+ },
+ shadowOpacity: 0.6,
+ shadowRadius: verticalScale(5)
+ },
+ addButton: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ containerSpace: {
+ backgroundColor: props !== null ? props.radioOuterColor : 'transparent',
+ margin: scale(10),
+ padding: scale(5),
+ borderRadius: scale(10),
+ borderBottomWidth: 1,
+ borderBottomColor: props !== null ? props.borderBottomColor : '#DAD6D6'
+ },
+ width100: {
+ width: '100%'
+ },
+ width10: {
+ width: '10%'
+ },
+ titleAddress: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ labelStyle: {
+ width: '70%',
+ textAlignVertical: 'bottom',
+ fontSize: scale(14),
+ fontWeight: '700',
+ textAlign: 'left'
+ },
+ midContainer: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ homeIcon: {
+ width: '15%',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ addressDetail: {
+ width: '65%',
+ alignSelf: 'flex-end',
+ fontSize: scale(4),
+ fontWeight: '300',
+ textAlign: 'justify'
+ },
+ line: {
+ width: '80%',
+ alignSelf: 'flex-end',
+ borderBottomColor: props !== null ? 'transparent' : 'transparent',
+ borderBottomWidth: StyleSheet.hairlineWidth
+ },
+ buttonsAddress: {
+ width: '20%',
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ paddingBottom: scale(3)
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Cart/Cart.js b/enatega-multivendor-app/src/screens/Cart/Cart.js
new file mode 100644
index 0000000..6ad4e54
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Cart/Cart.js
@@ -0,0 +1,1505 @@
+/* eslint-disable indent */
+import React, {
+ useState,
+ useEffect,
+ useContext,
+ useLayoutEffect,
+ useRef
+} from 'react'
+import { MaterialIcons, Entypo } from '@expo/vector-icons'
+import {
+ View,
+ ScrollView,
+ TouchableOpacity,
+ Image,
+ ActivityIndicator,
+ StatusBar,
+ Platform,
+ Alert,
+ Animated,
+ Text
+} from 'react-native'
+import { useMutation, useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import { AntDesign, EvilIcons } from '@expo/vector-icons'
+import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder'
+import { Modalize } from 'react-native-modalize'
+import moment from 'moment'
+import CartItem from '../../components/CartItem/CartItem'
+import { getTipping, orderFragment } from '../../apollo/queries'
+import { placeOrder } from '../../apollo/mutations'
+import { scale } from '../../utils/scaling'
+import { stripeCurrencies, paypalCurrencies } from '../../utils/currencies'
+import { theme } from '../../utils/themeColors'
+
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import ConfigurationContext from '../../context/Configuration'
+import UserContext from '../../context/User'
+import styles from './styles'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { useRestaurant } from '../../ui/hooks'
+import { LocationContext } from '../../context/Location'
+import EmptyCart from '../../assets/SVG/imageComponents/EmptyCart'
+import { useFocusEffect } from '@react-navigation/native'
+import { DAYS } from '../../utils/enums'
+import Swipeable from 'react-native-gesture-handler/Swipeable'
+import { RectButton } from 'react-native-gesture-handler'
+import { textStyles } from '../../utils/textStyles'
+import Pickup from '../../components/Pickup'
+import { calculateDistance } from '../../utils/customFunctions'
+import analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { useTranslation } from 'react-i18next'
+
+// Constants
+const PLACEORDER = gql`
+ ${placeOrder}
+`
+const TIPPING = gql`
+ ${getTipping}
+`
+
+function Cart(props) {
+ const Analytics = analytics()
+
+ const configuration = useContext(ConfigurationContext)
+ const {
+ isLoggedIn,
+ profile,
+ clearCart,
+ restaurant: cartRestaurant,
+ cart,
+ cartCount,
+ addQuantity,
+ removeQuantity,
+ deleteItem,
+ updateCart
+ } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const { location } = useContext(LocationContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { t } = useTranslation()
+ const modalRef = useRef(null)
+ const [loadingData, setLoadingData] = useState(true)
+ const [minimumOrder, setMinimumOrder] = useState('')
+ const [isPickedUp, setIsPickedUp] = useState(false)
+ const [orderDate, setOrderDate] = useState(moment())
+ const [isModalOpen, setIsModalOpen] = useState(false)
+ const [selectedRestaurant, setSelectedRestaurant] = useState({})
+ const [deliveryCharges, setDeliveryCharges] = useState(0)
+
+ const { loading, data } = useRestaurant(cartRestaurant)
+
+ const { loading: loadingTip, data: dataTip } = useQuery(TIPPING, {
+ fetchPolicy: 'network-only'
+ })
+
+ const onOpen = () => {
+ const modal = modalRef.current
+ if (modal) {
+ modal.open()
+ setIsModalOpen(true)
+ }
+ }
+
+ const [mutateOrder, { loading: loadingOrderMutation }] = useMutation(
+ PLACEORDER,
+ {
+ onCompleted,
+ onError,
+ update
+ }
+ )
+
+ const COD_PAYMENT = {
+ payment: 'COD',
+ label: t('cod'),
+ index: 2,
+ icon: require('../../assets/images/cashIcon.png')
+ }
+
+ const paymentMethod =
+ props.route.params && props.route.params.paymentMethod
+ ? props.route.params.paymentMethod
+ : COD_PAYMENT
+ const coupon =
+ props.route.params && props.route.params.coupon
+ ? props.route.params.coupon
+ : null
+
+ const tip =
+ props.route.params && props.route.params.tipAmount
+ ? props.route.params.tipAmount
+ : null
+
+ const [selectedTip, setSelectedTip] = useState()
+ const inset = useSafeAreaInsets()
+
+ useEffect(() => {
+ if (tip) {
+ setSelectedTip(null)
+ } else if (dataTip && !selectedTip) {
+ setSelectedTip(dataTip.tips.tipVariations[1])
+ }
+ }, [tip, data])
+
+ useEffect(() => {
+ let isSubscribed = true
+ ;(async () => {
+ if (data && !!data.restaurant) {
+ const latOrigin = Number(data.restaurant.location.coordinates[1])
+ const lonOrigin = Number(data.restaurant.location.coordinates[0])
+ const latDest = Number(location.latitude)
+ const longDest = Number(location.longitude)
+ const distance = await calculateDistance(
+ latOrigin,
+ lonOrigin,
+ latDest,
+ longDest
+ )
+ const amount = Math.ceil(distance) * configuration.deliveryRate
+ isSubscribed &&
+ setDeliveryCharges(amount > 0 ? amount : configuration.deliveryRate)
+ }
+ })()
+ return () => {
+ isSubscribed = false
+ }
+ }, [data, location])
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ title: t('titleCart'),
+ headerRight: null,
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderColor: currentTheme.white,
+ borderWidth: 1,
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+
+ useEffect(() => {
+ if (!data) return
+ didFocus()
+ }, [data])
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_CART)
+ }
+ Track()
+ }, [])
+ useEffect(() => {
+ if (cart && cartCount > 0) {
+ if (
+ data &&
+ data.restaurant &&
+ (!data.restaurant.isAvailable || !isOpen())
+ ) {
+ showAvailablityMessage()
+ }
+ }
+ }, [data])
+
+ const showAvailablityMessage = () => {
+ Alert.alert(
+ '',
+ `${data.restaurant.name} closed at the moment`,
+ [
+ {
+ text: 'Go back to restaurants',
+ onPress: () => {
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ },
+ style: 'cancel'
+ },
+ {
+ text: 'Continue',
+ onPress: () => {},
+ style: 'cancel'
+ }
+ ],
+ { cancelable: true }
+ )
+ }
+
+ function update(cache, { data: { placeOrder } }) {
+ try {
+ if (placeOrder && placeOrder.paymentMethod === 'COD') {
+ cache.modify({
+ fields: {
+ orders(existingOrders = []) {
+ const newOrder = cache.writeFragment({
+ data: placeOrder,
+ fragment: gql`
+ ${orderFragment}
+ `
+ })
+ return [newOrder, ...existingOrders]
+ }
+ }
+ })
+ }
+ } catch (error) {
+ console.log('update error', error)
+ }
+ }
+
+ async function onCompleted(data) {
+ await Analytics.track(Analytics.events.ORDER_PLACED, {
+ userId: data.placeOrder.user._id,
+ orderId: data.placeOrder.orderId,
+ name: data.placeOrder.user.name,
+ email: data.placeOrder.user.email,
+ restaurantName: data.placeOrder.restaurant.name,
+ restaurantAddress: data.placeOrder.restaurant.address,
+ orderPaymentMethod: data.placeOrder.paymentMethod,
+ orderItems: data.placeOrder.items,
+ orderAmount: data.placeOrder.orderAmount,
+ orderPaidAmount: data.placeOrder.paidAmount,
+ tipping: data.placeOrder.tipping,
+ orderStatus: data.placeOrder.orderStatus,
+ orderDate: data.placeOrder.orderDate
+ })
+ if (paymentMethod.payment === 'COD') {
+ await clearCart()
+ props.navigation.reset({
+ routes: [
+ { name: 'Main' },
+ {
+ name: 'OrderDetail',
+ params: { _id: data.placeOrder._id }
+ }
+ ]
+ })
+ } else if (paymentMethod.payment === 'PAYPAL') {
+ console.log('here')
+ props.navigation.replace('Paypal', {
+ _id: data.placeOrder.orderId,
+ currency: configuration.currency
+ })
+ } else if (paymentMethod.payment === 'STRIPE') {
+ props.navigation.replace('StripeCheckout', {
+ _id: data.placeOrder.orderId,
+ amount: data.placeOrder.orderAmount,
+ email: data.placeOrder.user.email,
+ currency: configuration.currency
+ })
+ }
+ }
+ function onError(error) {
+ console.log('onError', error)
+ if (error.graphQLErrors.length) {
+ console.log('error', JSON.stringify(error))
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ } else {
+ FlashMessage({
+ message: error.message
+ })
+ }
+ }
+
+ function calculateTip() {
+ if (tip) {
+ return tip
+ } else if (selectedTip) {
+ let total = 0
+ const delivery = isPickedUp ? 0 : deliveryCharges
+ total += +calculatePrice(delivery, true)
+ total += +taxCalculation()
+ const tipPercentage = (
+ (total / 100) *
+ parseFloat(selectedTip).toFixed(2)
+ ).toFixed(2)
+ return tipPercentage
+ } else {
+ return 0
+ }
+ }
+
+ function taxCalculation() {
+ const tax = data.restaurant ? +data.restaurant.tax : 0
+ if (tax === 0) {
+ return tax.toFixed(2)
+ }
+ const delivery = isPickedUp ? 0 : deliveryCharges
+ const amount = +calculatePrice(delivery, true)
+ const taxAmount = ((amount / 100) * tax).toFixed(2)
+ return taxAmount
+ }
+
+ function calculatePrice(delivery = 0, withDiscount) {
+ let itemTotal = 0
+ cart.forEach(cartItem => {
+ itemTotal += cartItem.price * cartItem.quantity
+ })
+ if (withDiscount && coupon && coupon.discount) {
+ itemTotal = itemTotal - (coupon.discount / 100) * itemTotal
+ }
+ const deliveryAmount = delivery > 0 ? deliveryCharges : 0
+ return (itemTotal + deliveryAmount).toFixed(2)
+ }
+
+ function calculateTotal() {
+ let total = 0
+ const delivery = isPickedUp ? 0 : deliveryCharges
+ total += +calculatePrice(delivery, true)
+ total += +taxCalculation()
+ total += +calculateTip()
+ return parseFloat(total).toFixed(2)
+ }
+
+ function validateOrder() {
+ if (!data.restaurant.isAvailable || !isOpen()) {
+ showAvailablityMessage()
+ return
+ }
+ if (!cart.length) {
+ FlashMessage({
+ message: t('validateItems')
+ })
+ return false
+ }
+ if (calculatePrice(deliveryCharges, true) < minimumOrder) {
+ FlashMessage({
+ // message: `The minimum amount of (${configuration.currencySymbol} ${minimumOrder}) for your order has not been reached.`
+ message: `(${t(minAmount)}) (${
+ configuration.currencySymbol
+ } ${minimumOrder}) (${t(forYourOrder)})`
+ })
+ return false
+ }
+ if (!location._id) {
+ props.navigation.navigate('CartAddress')
+ return false
+ }
+ if (!paymentMethod) {
+ FlashMessage({
+ message: t('setPaymentMethod')
+ })
+ return false
+ }
+ if (profile.phone.length < 1) {
+ props.navigation.navigate('Profile', { backScreen: 'Cart' })
+ return false
+ }
+ if (profile.phone.length > 0 && !profile.phoneIsVerified) {
+ FlashMessage({
+ message: t('numberVerificationAlert')
+ })
+ props.navigation.navigate('Profile')
+ return false
+ }
+ return true
+ }
+
+ function checkPaymentMethod(currency) {
+ if (paymentMethod.payment === 'STRIPE') {
+ return stripeCurrencies.find(val => val.currency === currency)
+ }
+ if (paymentMethod.payment === 'PAYPAL') {
+ return paypalCurrencies.find(val => val.currency === currency)
+ }
+ return true
+ }
+
+ function transformOrder(cartData) {
+ return cartData.map(food => {
+ return {
+ food: food._id,
+ quantity: food.quantity,
+ variation: food.variation._id,
+ addons: food.addons
+ ? food.addons.map(({ _id, options }) => ({
+ _id,
+ options: options.map(({ _id }) => _id)
+ }))
+ : [],
+ specialInstructions: food.specialInstructions
+ }
+ })
+ }
+ async function onPayment() {
+ if (checkPaymentMethod(configuration.currency)) {
+ const items = transformOrder(cart)
+ mutateOrder({
+ variables: {
+ restaurant: cartRestaurant,
+ orderInput: items,
+ paymentMethod: paymentMethod.payment,
+ couponCode: coupon ? coupon.title : null,
+ tipping: +calculateTip(),
+ taxationAmount: +taxCalculation(),
+ orderDate: orderDate,
+ isPickedUp: isPickedUp,
+ deliveryCharges: isPickedUp ? 0 : deliveryCharges,
+ address: {
+ label: location.label,
+ deliveryAddress: location.deliveryAddress,
+ details: location.details,
+ longitude: '' + location.longitude,
+ latitude: '' + location.latitude
+ }
+ }
+ })
+ } else {
+ FlashMessage({
+ message: t('paymentNotSupported')
+ })
+ }
+ }
+
+ const isOpen = () => {
+ const date = new Date()
+ const day = date.getDay()
+ const hours = date.getHours()
+ const minutes = date.getMinutes()
+ const todaysTimings = data.restaurant.openingTimes.find(
+ o => o.day === DAYS[day]
+ )
+ const times = todaysTimings.times.filter(
+ t =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ )
+
+ return times.length > 0
+ }
+
+ async function didFocus() {
+ const { restaurant } = data
+ setSelectedRestaurant(restaurant)
+ setMinimumOrder(restaurant.minimumOrder)
+ const foods = restaurant.categories.map(c => c.foods.flat()).flat()
+ const { addons, options } = restaurant
+ try {
+ if (cartCount && cart) {
+ const transformCart = cart.map(cartItem => {
+ const food = foods.find(food => food._id === cartItem._id)
+ if (!food) return null
+ const variation = food.variations.find(
+ variation => variation._id === cartItem.variation._id
+ )
+ if (!variation) return null
+
+ const title = `${food.title}${
+ variation.title ? `(${variation.title})` : ''
+ }`
+ let price = variation.price
+ const optionsTitle = []
+ if (cartItem.addons) {
+ cartItem.addons.forEach(addon => {
+ const cartAddon = addons.find(add => add._id === addon._id)
+ if (!cartAddon) return null
+ addon.options.forEach(option => {
+ const cartOption = options.find(opt => opt._id === option._id)
+ if (!cartOption) return null
+ price += cartOption.price
+ optionsTitle.push(cartOption.title)
+ })
+ })
+ }
+ return {
+ ...cartItem,
+ optionsTitle,
+ title: title,
+ price: price.toFixed(2)
+ }
+ })
+
+ if (props.navigation.isFocused()) {
+ const updatedItems = transformCart.filter(item => item)
+ if (updatedItems.length === 0) await clearCart()
+ await updateCart(updatedItems)
+ setLoadingData(false)
+ if (transformCart.length !== updatedItems.length) {
+ FlashMessage({
+ message: t('itemNotAvailable')
+ })
+ }
+ }
+ } else {
+ if (props.navigation.isFocused()) {
+ setLoadingData(false)
+ }
+ }
+ } catch (e) {
+ FlashMessage({
+ message: e.message
+ })
+ }
+ }
+
+ function emptyCart() {
+ return (
+
+
+
+
+
+
+ {t('hungry')}?
+
+
+ {t('emptyCart')}
+
+
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }>
+
+ {t('emptyCartBtn')}
+
+
+
+ )
+ }
+ function loadginScreen() {
+ return (
+
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+
+
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+
+
+
+
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+
+
+
+
+
+ )
+ }
+
+ function renderRightSwipe(progress, key) {
+ const scaleX = progress.interpolate({
+ inputRange: [0, 1, 3],
+ outputRange: [100, 0, 0]
+ })
+ return (
+
+ deleteItem(key)}>
+
+
+
+ )
+ }
+ if (loading || loadingData || loadingTip) return loadginScreen()
+ return (
+ <>
+
+ {!cart.length && emptyCart()}
+ {!!cart.length && (
+ <>
+
+
+
+
+
+
+
+
+
+ {isPickedUp ? t('pickUp') : t('delivery')}{' '}
+
+
+ {`${orderDate.format('MM-D-YYYY, h:mm a')}`}
+
+
+
+ {t('change')}
+
+
+
+
+
+
+
+
+ {cart.map((food, index) => (
+
+ renderRightSwipe(progress, food.key)
+ }>
+
+ {
+ addQuantity(food.key)
+ }}
+ removeQuantity={() => {
+ removeQuantity(food.key)
+ }}
+ />
+ {index !== cart.length - 1 && (
+
+ )}
+
+
+ ))}
+
+
+
+
+ {t('subTotal')}
+
+
+ {configuration.currencySymbol} {calculatePrice(0, false)}
+
+
+
+
+ {!isPickedUp && (
+
+
+ {t('deliveryFee')}
+
+
+ {configuration.currencySymbol}{' '}
+ {deliveryCharges.toFixed(2)}
+
+
+ )}
+
+
+
+
+ {t('taxFee')}
+
+
+ {configuration.currencySymbol} {taxCalculation()}
+
+
+ {!coupon ? (
+ {
+ props.navigation.navigate('Coupon', {
+ paymentMethod,
+ coupon
+ })
+ }}>
+
+ {t('haveVoucher')}
+
+
+ ) : (
+
+
+ {coupon ? coupon.title : null}
+
+
+ {
+ props.navigation.setParams({ coupon: null })
+ }}>
+
+ {coupon ? t('remove') : null}
+
+
+
+ {configuration.currencySymbol}
+ {parseFloat(
+ calculatePrice(0, false) - calculatePrice(0, true)
+ ).toFixed(2)}
+
+
+
+ )}
+
+
+
+
+ {t('tip')}
+
+
+ {
+ setSelectedTip(null)
+ props.navigation.setParams({ tipAmount: null })
+ }}>
+
+ {tip || selectedTip ? t('remove') : null}
+
+
+
+ {configuration.currencySymbol}{' '}
+ {parseFloat(calculateTip()).toFixed(2)}
+
+
+
+ {dataTip && (
+
+ {dataTip.tips.tipVariations.map((label, index) => (
+ {
+ props.navigation.setParams({ tipAmount: null })
+ setSelectedTip(label)
+ }}>
+
+ {label}%
+
+
+ ))}
+ {
+ props.navigation.navigate('Tip')
+ }}>
+
+ {t('Custom')}
+
+
+
+ )}
+
+
+
+ {t('total')}
+
+
+ {configuration.currencySymbol}
+ {calculateTotal()}
+
+
+
+
+ {isLoggedIn && profile && (
+ <>
+
+
+
+
+ {t('contactInfo')}
+
+
+
+
+ {t('email')}
+ {' :'}
+
+
+ {profile.email}
+
+
+
+
+ {t('phone')}
+ {' :'}
+
+
+ {profile.phone ? profile.phone : 'None'}
+
+
+
+ {isPickedUp ? (
+ <>
+
+
+ {t('titlePickUpDetails')}
+ {' :'}
+
+
+ {`${selectedRestaurant.address}`}
+
+
+
+ >
+ ) : (
+ <>
+ {
+ if (!profile.addresses.length) {
+ props.navigation.navigate('NewAddress', {
+ backScreen: 'Cart'
+ })
+ } else {
+ props.navigation.navigate('CartAddress', {
+ address: location
+ })
+ }
+ }}>
+
+
+ {t('titleDeliveryDetails')} {' :'}
+
+ {location ? (
+
+ {`${location.deliveryAddress}`}
+
+
+ {' '}
+ {location.details}
+
+
+
+ ) : (
+
+ {t('deliveryAddressmessage')}
+
+ )}
+
+
+
+ {
+ if (!profile.addresses.length) {
+ props.navigation.navigate('NewAddress', {
+ backScreen: 'Cart'
+ })
+ } else {
+ props.navigation.navigate('CartAddress', {
+ address: location
+ })
+ }
+ }}>
+
+ {' '}
+ {t('changeAddress')}
+
+
+
+ >
+ )}
+
+
+
+
+
+
+ {t('paymentMethod')}
+
+ {
+ props.navigation.navigate('Payment', {
+ paymentMethod,
+ coupon
+ })
+ }}>
+
+ {t('change')}
+
+
+
+
+ {
+ props.navigation.navigate('Payment', {
+ paymentMethod,
+ coupon
+ })
+ }}>
+
+
+
+
+ {paymentMethod.label}
+
+
+ {configuration.currencySymbol} {calculateTotal()}
+
+
+
+ >
+ )}
+
+
+ {t('condition1')}
+
+
+ {t('condition2')}
+
+
+
+
+
+ {!isModalOpen && (
+
+ {isLoggedIn && profile ? (
+ {
+ if (validateOrder()) onPayment()
+ }}
+ style={styles(currentTheme).button}>
+ {loadingOrderMutation ? (
+
+ ) : (
+ <>
+
+
+
+ {cartCount}
+
+
+
+
+ {t('orderBtn')}
+
+
+ {configuration.currencySymbol}
+ {calculateTotal()}
+
+ >
+ )}
+
+ ) : (
+ {
+ props.navigation.navigate({ name: 'CreateAccount' })
+ }}
+ style={styles(currentTheme).button}>
+
+ {t('loginOrCreateAccount')}
+
+
+ )}
+
+ )}
+ >
+ )}
+ {
+ setIsModalOpen(false)
+ }}
+ onOpened={() => {
+ setIsModalOpen(true)
+ }}
+ openAnimationConfig={{
+ timing: { duration: 400 },
+ spring: { speed: 20, bounciness: 10 }
+ }}
+ closeAnimationConfig={{
+ timing: { duration: 400 },
+ spring: { speed: 20, bounciness: 10 }
+ }}>
+
+ {
+ modalRef.current.close()
+ }}
+ style={[
+ {
+ backgroundColor: currentTheme.buttonBackground,
+ alignItems: 'center',
+ height: scale(35),
+ justifyContent: 'center',
+ borderRadius: scale(10),
+ width: '90%',
+ alignSelf: 'center'
+ }
+ ]}>
+
+ {t('apply')}
+
+
+
+
+
+ >
+ )
+}
+
+export default Cart
diff --git a/enatega-multivendor-app/src/screens/Cart/styles.js b/enatega-multivendor-app/src/screens/Cart/styles.js
new file mode 100644
index 0000000..fe69fa5
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Cart/styles.js
@@ -0,0 +1,284 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ pT10: {
+ ...alignment.PTsmall
+ },
+ pB10: {
+ ...alignment.PBsmall
+ },
+ pB5: {
+ ...alignment.PBxSmall
+ },
+ mB10: {
+ ...alignment.MBsmall
+ },
+ width100: {
+ width: '100%'
+ },
+ width30: {
+ width: '30%'
+ },
+ screenBackground: {
+ backgroundColor: props != null ? props.themeBackground : '#FFF'
+ },
+ mainContainer: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ //...alignment.PTsmall
+ },
+ dealContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.cartContainer : 'transparent',
+ borderRadius: scale(10),
+ ...alignment.PLsmall,
+ ...alignment.PRsmall
+ },
+ termsContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.backgroundColor : 'transparent',
+ borderRadius: scale(5),
+ ...alignment.PLsmall,
+ ...alignment.PRsmall
+ },
+ itemContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.backgroundColor : 'transparent',
+
+ },
+ priceContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.cartContainer : 'transparent',
+ borderRadius: scale(20),
+ borderBottomColor:
+ props !== null ? props.lightHorizontalLine : 'transparent',
+ ...alignment.PLsmall,
+ ...alignment.PRsmall
+ },
+ modal: {
+ backgroundColor: props != null ? props.cartContainer : '#FFF',
+ borderTopEndRadius: scale(20),
+ borderTopStartRadius: scale(20),
+ shadowOpacity: 0
+ },
+ overlay: {
+ backgroundColor: props !== null ? props.backgroundColor2 : 'transparent'
+ },
+ handle: {
+ width: 150,
+ backgroundColor: props !== null ? props.hex : '#b0afbc'
+ },
+ floatView: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ floatLeft: {
+ width: '30%',
+ textAlign: 'left'
+ },
+ floatRight: {
+ width: '70%',
+ textAlign: 'right'
+ },
+ horizontalLine: {
+ borderBottomColor: props !== null ? props.black : 'black',
+ borderBottomWidth: StyleSheet.hairlineWidth
+ },
+ arrowRight: {
+ width: '50%',
+ textAlign: 'right'
+ },
+ buttonContainer: {
+ width: '100%',
+ height: '10%',
+ backgroundColor: props !== null ? props.themeBackground : 'black',
+ justifyContent: 'center',
+ alignItems: 'center',
+ elevation: 12,
+ shadowColor: props !== null ? props.shadowColor : 'black',
+ shadowOffset: {
+ width: 0,
+ height: -verticalScale(3)
+ },
+ shadowOpacity: 0.5,
+ shadowRadius: verticalScale(2)
+ },
+ button: {
+ justifyContent: 'space-between',
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderRadius: scale(16),
+ backgroundColor: props !== null ? props.buttonBackground : 'black',
+ height: '75%',
+ width: '95%',
+ ...alignment.PLsmall,
+ ...alignment.PRsmall
+ },
+ buttontLeft: {
+ width: '35%',
+ height: '50%',
+ justifyContent: 'center'
+ },
+ buttonLeftCircle: {
+ backgroundColor: props != null ? props.black : 'black',
+ justifyContent: 'center',
+ alignItems: 'center',
+ width: scale(18),
+ height: scale(18),
+ borderRadius: scale(9)
+ },
+ iconStyle: {
+ height: verticalScale(18),
+ width: verticalScale(18)
+ },
+ subContainerImage: {
+ flex: 1,
+ justifyContent: 'center',
+ alignContent: 'center'
+ },
+ imageContainer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.MBlarge
+ },
+ image: {
+ width: scale(100),
+ height: scale(100)
+ },
+ descriptionEmpty: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.Plarge
+ },
+ emptyButton: {
+ borderRadius: scale(10),
+ width: '60%',
+ height: '8%',
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent',
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ placeHolderContainer: {
+ backgroundColor: props != null ? props.cartContainer : '#B8B8B8',
+ borderRadius: 3,
+ elevation: 3,
+ marginBottom: 12,
+ padding: 12
+ },
+ placeHolderFadeColor: {
+ backgroundColor: props != null ? props.fontSecondColor : '#B8B8B8'
+ },
+ height100: {
+ height: 100
+ },
+ height60: {
+ height: 60
+ },
+ trashIcon: {
+ backgroundColor: 'red',
+ width: '100%',
+ height: '100%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ trashContainer: {
+ ...alignment.PLmedium,
+ ...alignment.MBxSmall,
+ justifyContent: 'center',
+ alignItems: 'center',
+ width: '20%'
+ },
+ tipRow: {
+ // justifyContent: 'space-between',
+ alignItems: 'center',
+ ...alignment.MBxSmall
+ },
+ buttonInline: {
+ width: '100%',
+ flexDirection: 'row'
+ },
+ labelButton: {
+ marginRight: 10,
+ borderRadius: scale(10),
+ width: '22%',
+ borderWidth: StyleSheet.hairlineWidth,
+ borderColor: props !== null ? props.horizontalLine : 'transparent',
+ justifyContent: 'center',
+ height: scale(30)
+ },
+ activeLabel: {
+ marginRight: 10,
+ borderRadius: scale(10),
+ backgroundColor: props !== null ? props.main : 'transparent',
+ width: '22%',
+ //borderWidth: 2,
+ justifyContent: 'center',
+ color: props !== null ? props.tagColor : 'transparent',
+ borderColor: props !== null ? props.tagColor : 'transparent',
+ height: scale(30)
+ },
+ headerContainer: {
+ backgroundColor: props !== null ? props.headerBackground : '#6FCF97',
+ borderBottomRightRadius: 20,
+ borderBottomLeftRadius: 20,
+ padding: 10,
+ paddingBottom: 0
+ },
+ imageContainer: {
+ display: 'flex',
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ cartInnerContainer: {
+ marginTop: 4,
+ padding: 6,
+ backgroundColor: props != null ? props.black : '#B8B8B8',
+ width: '50%',
+ borderRadius: 6
+ },
+ couponContainer: {
+ flexDirection: 'row',
+ justifyContent: 'flex-end'
+ },
+ tipContainer: {
+ flexDirection: 'row',
+ justifyContent: 'flex-end',
+ alignItems: 'center'
+ },
+ changeAddressContainer: {
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ changeAddressBtn: {
+ borderRadius: scale(10),
+ backgroundColor: props != null ? props.main : '#B8B8B8',
+ width: '40%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ height: scale(30)
+ },
+ addressAllignment: {
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'flex-end',
+ width: '100%',
+ marginLeft: scale(15)
+ },
+ addressDetailAllign: {
+ width: '65%',
+ display: 'flex',
+ alignItems: 'flex-end'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swm b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swm
new file mode 100644
index 0000000..2a678e5
Binary files /dev/null and b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swm differ
diff --git a/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swn b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swn
new file mode 100644
index 0000000..201371f
Binary files /dev/null and b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swn differ
diff --git a/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swo b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swo
new file mode 100644
index 0000000..92fd2fb
Binary files /dev/null and b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swo differ
diff --git a/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swp b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swp
new file mode 100644
index 0000000..e0beb33
Binary files /dev/null and b/enatega-multivendor-app/src/screens/CartAddress/.CartAddress.js.swp differ
diff --git a/enatega-multivendor-app/src/screens/CartAddress/CartAddr.swp b/enatega-multivendor-app/src/screens/CartAddress/CartAddr.swp
new file mode 100644
index 0000000..de03b3d
Binary files /dev/null and b/enatega-multivendor-app/src/screens/CartAddress/CartAddr.swp differ
diff --git a/enatega-multivendor-app/src/screens/CartAddress/CartAddress.js b/enatega-multivendor-app/src/screens/CartAddress/CartAddress.js
new file mode 100644
index 0000000..eb4dd36
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CartAddress/CartAddress.js
@@ -0,0 +1,251 @@
+import React, { useContext, useEffect, useLayoutEffect } from 'react'
+import { View, TouchableOpacity, FlatList } from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import { EvilIcons } from '@expo/vector-icons'
+import { useMutation } from '@apollo/client'
+import gql from 'graphql-tag'
+import { scale } from '../../utils/scaling'
+import RadioButton from '../../ui/FdRadioBtn/RadioBtn'
+import UserContext from '../../context/User'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { selectAddress } from '../../apollo/mutations'
+import styles from './styles'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { LocationContext } from '../../context/Location'
+import { HeaderBackButton } from '@react-navigation/elements'
+import analytics from '../../utils/analytics'
+import navigationService from '../../routes/navigationService'
+import { Entypo } from '@expo/vector-icons'
+import { useTranslation } from 'react-i18next'
+
+const SELECT_ADDRESS = gql`
+ ${selectAddress}
+`
+
+function CartAddresses(props) {
+ const Analytics = analytics()
+
+ const inset = useSafeAreaInsets()
+ const { location, setLocation } = useContext(LocationContext)
+ const { profile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { t } = useTranslation()
+ const [mutate] = useMutation(SELECT_ADDRESS, { onError })
+ console.log('profile', profile)
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('myAddresses'),
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderColor: currentTheme.white,
+ borderWidth: 1
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_CARTADDRESS)
+ }
+ Track()
+ }, [])
+ function onError(error) {
+ console.log(error)
+ }
+
+ const onSelectAddress = address => {
+ setLocation({
+ _id: address._id,
+ label: address.label,
+ latitude: Number(address.location.coordinates[1]),
+ longitude: Number(address.location.coordinates[0]),
+ deliveryAddress: address.deliveryAddress,
+ details: address.details
+ })
+ mutate({ variables: { id: address._id } })
+ props.navigation.goBack()
+ }
+
+ return (
+ <>
+ {!location._id && (
+
+
+ {
+ props.navigation.navigate('NewAddress', { location })
+ }}>
+
+
+
+
+
+
+ {location.label}
+
+
+ props.navigation.navigate('NewAddress', { location })
+ }>
+
+ {t('save')}
+
+
+
+
+
+
+ {location.deliveryAddress}
+
+
+
+
+
+
+ )}
+ item._id}
+ contentContainerStyle={{ flexGrow: 1 }}
+ ItemSeparatorComponent={() => (
+
+ )}
+ ListHeaderComponent={() => }
+ renderItem={({ item: address }) => (
+
+ {
+ onSelectAddress(address)
+ }}>
+
+
+
+ {
+ onSelectAddress(address)
+ }}
+ />
+
+
+ {t(address.label)}
+
+
+ props.navigation.navigate('EditAddress', {
+ ...address
+ })
+ }>
+
+
+
+
+
+
+ {address.deliveryAddress}
+
+
+ {address.details}
+
+
+
+
+
+ )}
+ />
+
+ >
+ )
+}
+
+export default CartAddresses
diff --git a/enatega-multivendor-app/src/screens/CartAddress/styles.js b/enatega-multivendor-app/src/screens/CartAddress/styles.js
new file mode 100644
index 0000000..013a28e
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CartAddress/styles.js
@@ -0,0 +1,49 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ width100: {
+ width: '100%'
+ },
+ width10: {
+ width: '10%'
+ },
+ titleAddress: {
+ flexDirection: 'row'
+ },
+ homeIcon: {
+ width: '20%',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ homeIconImg: {
+ width: scale(15),
+ height: scale(15)
+ },
+ addressContainer: {
+ width: '90%',
+ alignSelf: 'center',
+ borderRadius: scale(10),
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+ addressDetail: {
+ width: '80%',
+ alignSelf: 'flex-end'
+ },
+ line: {
+ width: '80%',
+ alignSelf: 'flex-end',
+ borderBottomColor: 'lightgrey',
+ borderBottomWidth: 1,
+ ...alignment.MTmedium,
+ ...alignment.MBmedium
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Chat/Chat.js b/enatega-multivendor-app/src/screens/Chat/Chat.js
new file mode 100644
index 0000000..e9e2daa
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Chat/Chat.js
@@ -0,0 +1,94 @@
+import React, { useLayoutEffect, useContext, useEffect } from 'react'
+import { WebView } from 'react-native-webview'
+import { useNavigation, useFocusEffect } from '@react-navigation/native'
+import { StatusBar, Platform, View } from 'react-native'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+import { scale } from '../../utils/scaling'
+import { useTranslation } from 'react-i18next'
+
+function Chat() {
+ const Analytics = analytics()
+
+ const navigation = useNavigation()
+ const { t } = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerRight: null,
+ headerTitle: t('titleChat'),
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderWidth: 1,
+ borderColor: currentTheme.white,
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.themeBackground
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [navigation])
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.firstHeaderBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_CHAT)
+ }
+ Track()
+ }, [])
+ return (
+ {
+ if (data.url.indexOf('enatega') > 0) {
+ navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+ }}
+ />
+ )
+}
+
+export default Chat
diff --git a/enatega-multivendor-app/src/screens/ChatWithRider/ChatScreen.js b/enatega-multivendor-app/src/screens/ChatWithRider/ChatScreen.js
new file mode 100644
index 0000000..b7df25e
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ChatWithRider/ChatScreen.js
@@ -0,0 +1,131 @@
+import React from 'react'
+import { Image, Platform, View } from 'react-native'
+import { GiftedChat, Bubble, Send } from 'react-native-gifted-chat'
+import { useChatScreen } from './useChatScreen'
+import FontAwesome from 'react-native-vector-icons/FontAwesome'
+import { Ionicons, Entypo } from '@expo/vector-icons'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import styles from './styles'
+import {useTranslation} from 'react-i18next'
+
+const ChatScreen = ({ navigation, route }) => {
+ const {
+ messages,
+ onSend,
+ currentTheme,
+ image,
+ setImage,
+ inputMessage,
+ setInputMessage,
+ profile
+ } = useChatScreen({ navigation, route })
+
+ const filterImages = src => {
+ setImage(image.filter(item => item !== src))
+ }
+ const {t} = useTranslation()
+ const renderAccessory = props => {
+ return (
+
+ {image.map(item => (
+
+
+ filterImages(item)}
+ name="circle-with-cross"
+ size={18}
+ style={styles().accessoryIcon}
+ color="black"
+ />
+
+ ))}
+
+ )
+ }
+
+ const renderSend = props => {
+ return (
+
+
+
+
+
+ )
+ }
+
+ const renderChatEmpty = props => {
+ return (
+
+
+ Lets chat with your rider
+
+
+ )
+ }
+
+ const renderBubble = props => {
+ return (
+
+ )
+ }
+
+ const scrollToBottomComponent = () => {
+ return (
+
+ )
+ }
+
+ return (
+ 0 ? renderAccessory : null}
+ text={inputMessage}
+ onInputTextChanged={m => setInputMessage(m)}
+ />
+ )
+}
+
+export default ChatScreen
diff --git a/enatega-multivendor-app/src/screens/ChatWithRider/styles.js b/enatega-multivendor-app/src/screens/ChatWithRider/styles.js
new file mode 100644
index 0000000..5489bb9
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ChatWithRider/styles.js
@@ -0,0 +1,46 @@
+import { StyleSheet } from 'react-native'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ rowDisplay: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ accessoryContainer: {
+ height: 100,
+ paddingLeft: 20,
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ accessoryImg: { height: 40, width: 40, borderRadius: 5 },
+ accessoryIcon: {
+ marginLeft: -10,
+ marginTop: -10,
+ position: 'relative',
+ elevation: 999
+ },
+ sendIcon: { marginBottom: 7, marginRight: 10 },
+ emptyChat: {
+ marginTop: '160%',
+ transform: [{ scaleY: -1 }],
+ marginLeft: '17%'
+ },
+ bubbleRight: {
+ backgroundColor: props !== null ? props.black : 'transparent',
+ padding: 5,
+ marginBottom: 5,
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15,
+ borderBottomLeftRadius: 15,
+ borderBottomRightRadius: 0
+ },
+ bubbleLeft: {
+ backgroundColor: props !== null ? props.iconColorPink : 'transparent',
+ padding: 5,
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15,
+ borderBottomLeftRadius: 0,
+ borderBottomRightRadius: 15
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/ChatWithRider/useChatScreen.js b/enatega-multivendor-app/src/screens/ChatWithRider/useChatScreen.js
new file mode 100644
index 0000000..7d89546
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ChatWithRider/useChatScreen.js
@@ -0,0 +1,154 @@
+import React, { useState, useEffect, useContext, useLayoutEffect } from 'react'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { Ionicons, FontAwesome5 } from '@expo/vector-icons'
+import { callNumber } from '../../utils/callNumber'
+import gql from 'graphql-tag'
+import { chat } from '../../apollo/queries'
+import { subscriptionNewMessage } from '../../apollo/subscriptions'
+import { sendChatMessage } from '../../apollo/mutations'
+import { useMutation, useQuery } from '@apollo/client'
+import { Alert } from 'react-native'
+import { useUserContext } from '../../context/User'
+import {useTranslation} from 'react-i18next'
+
+export const useChatScreen = ({ navigation, route }) => {
+ const { id: orderId } = route.params
+ console.log(orderId)
+ const {t} = useTranslation()
+ const { profile } = useUserContext()
+ const { subscribeToMore: subscribeToMessages, data: chatData } = useQuery(
+ gql`
+ ${chat}
+ `,
+ {
+ variables: { order: orderId },
+ fetchPolicy: 'network-only',
+ onError
+ }
+ )
+ const [send] = useMutation(
+ gql`
+ ${sendChatMessage}
+ `,
+ {
+ onCompleted,
+ onError
+ }
+ )
+ useEffect(() => {
+ if (chatData) {
+ setMessages(
+ chatData.chat.map(message => ({
+ _id: message.id,
+ text: message.message,
+ createdAt: message.createdAt,
+ user: {
+ _id: message.user.id,
+ name: message.user.name
+ }
+ }))
+ )
+ }
+ }, [chatData])
+
+ function onCompleted({ sendChatMessage: messageResult }) {
+ if (!messageResult?.success) {
+ Alert.alert('Error', messageResult.message)
+ }
+ }
+ function onError(error) {
+ Alert.alert('Error', error.message)
+ }
+ const [messages, setMessages] = useState([])
+ const [inputMessage, setInputMessage] = useState(null)
+ const [image, setImage] = useState([])
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerStyle: {
+ backgroundColor: currentTheme.headerMenuBackground
+ },
+ headerTitleStyle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: currentTheme.iconColorPink
+ },
+ headerLeft: () => (
+ navigation.goBack()}
+ />
+ ),
+ headerRight: () => (
+ callNumber('+923159499378')}
+ />
+ ),
+ headerTitle: t('contactYourRider')
+ })
+ }, [navigation])
+ useEffect(() => {
+ const unsubscribe = subscribeToMessages({
+ document: gql`
+ ${subscriptionNewMessage}
+ `,
+ variables: { order: orderId },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ return {
+ chat: [...prev.chat, subscriptionData.data.subscriptionNewMessage]
+ }
+ }
+ })
+ return unsubscribe
+ })
+ const onSend = () => {
+ send({
+ variables: {
+ orderId: orderId,
+ messageInput: {
+ message: inputMessage,
+ user: {
+ id: profile._id,
+ name: profile.name
+ }
+ }
+ }
+ })
+ setInputMessage(null)
+ setImage([])
+ }
+
+ return {
+ messages,
+ onSend,
+ currentTheme,
+ image,
+ setImage,
+ inputMessage,
+ setInputMessage,
+ profile
+ }
+}
diff --git a/enatega-multivendor-app/src/screens/Coupon/Coupon.js b/enatega-multivendor-app/src/screens/Coupon/Coupon.js
new file mode 100644
index 0000000..b956aee
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Coupon/Coupon.js
@@ -0,0 +1,162 @@
+import React, { useState, useContext, useLayoutEffect, useEffect } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import { OutlinedTextField } from 'react-native-material-textfield'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import { useMutation } from '@apollo/client'
+import gql from 'graphql-tag'
+import { getCoupon } from '../../apollo/mutations'
+import { scale } from '../../utils/scaling'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import styles from './styles'
+import Analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { MaterialIcons, Entypo } from '@expo/vector-icons'
+import { useTranslation } from 'react-i18next'
+
+const GET_COUPON = gql`
+ ${getCoupon}
+`
+
+function SelectVoucher(props) {
+ const analytics = Analytics()
+
+ const { t } = useTranslation()
+ const { paymentMethod } = props.route.params
+ const [voucherCode, voucherCodeSetter] = useState('')
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const inset = useSafeAreaInsets()
+ const [mutate] = useMutation(GET_COUPON, {
+ onCompleted,
+ onError
+ })
+
+ function onCompleted({ coupon }) {
+ if (coupon) {
+ if (coupon.enabled) {
+ props.navigation.navigate('Cart', { paymentMethod, coupon })
+ FlashMessage({
+ message: t('coupanApply')
+ })
+ } else {
+ FlashMessage({
+ message: t('coupanFailed')
+ })
+ }
+ }
+ }
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_COUPON)
+ }
+ Track()
+ }, [])
+ // eslint-disable-next-line handle-callback-err
+ function onError(error) {
+ FlashMessage({
+ message: t('invalidCoupan')
+ })
+ }
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ title: t('titleMyVouchers'),
+ headerRight: null,
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ borderWidth: 1,
+ borderColor: currentTheme.white,
+ backgroundColor: currentTheme.black
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+
+ function onSelectCoupon(text) {
+ mutate({ variables: { coupon: text } })
+ }
+
+ const HeaderLine = props => {}
+ return (
+ <>
+
+
+
+
+ {
+ voucherCodeSetter(text)
+ }}
+ />
+
+ onSelectCoupon(voucherCode)}
+ style={styles(currentTheme).buttonContainer}>
+
+ {t('apply')}
+
+
+
+
+
+ >
+ )
+}
+
+export default SelectVoucher
diff --git a/enatega-multivendor-app/src/screens/Coupon/styles.js b/enatega-multivendor-app/src/screens/Coupon/styles.js
new file mode 100644
index 0000000..2a05c55
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Coupon/styles.js
@@ -0,0 +1,57 @@
+import { scale, verticalScale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mB10: {
+ ...alignment.MBsmall
+ },
+ mainContainer: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.PRsmall,
+ ...alignment.PLsmall
+ },
+ headerlineContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+ headerLine: {
+ borderBottomWidth: 1,
+ borderColor: props !== null ? props.horizontalLine : 'grey'
+ },
+ upperContainer: {
+ width: '95%',
+ height: verticalScale(80),
+ alignSelf: 'center',
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.radioOuterColor : 'white',
+ justifyContent: 'space-between',
+ paddingLeft: scale(10),
+ paddingRight: scale(10),
+ borderRadius: scale(6),
+ marginTop: scale(30)
+ },
+ innerContainer: {
+ width: '70%',
+ paddingTop: scale(10)
+ },
+ buttonContainer: {
+ width: '25%',
+ height: '55%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(6),
+ backgroundColor: props !== null ? props.buttonBackground : 'pink'
+ // ...alignment.MTsmall
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/CreateAccount/CreateAccount.js b/enatega-multivendor-app/src/screens/CreateAccount/CreateAccount.js
new file mode 100644
index 0000000..0fe8380
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CreateAccount/CreateAccount.js
@@ -0,0 +1,209 @@
+import React, { useLayoutEffect } from 'react'
+import { View, TouchableOpacity, Dimensions } from 'react-native'
+import styles from './styles'
+import FdGoogleBtn from '../../ui/FdSocialBtn/FdGoogleBtn/FdGoogleBtn'
+import FdEmailBtn from '../../ui/FdSocialBtn/FdEmailBtn/FdEmailBtn'
+import Spinner from '../../components/Spinner/Spinner'
+import * as AppleAuthentication from 'expo-apple-authentication'
+import { alignment } from '../../utils/alignment'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { useCreateAccount } from './useCreateAccount'
+import navigationOptions from './screenOptions'
+import { useTranslation } from 'react-i18next'
+import { GoogleSigninButton } from '@react-native-google-signin/google-signin'
+
+const CreateAccount = (props) => {
+ const {
+ enableApple,
+ loginButton,
+ loginButtonSetter,
+ loading,
+ themeContext,
+ currentTheme,
+ mutateLogin,
+ navigateToLogin,
+ openTerms,
+ openPrivacyPolicy,
+ navigation,
+ signIn
+ } = useCreateAccount()
+ const { t } = useTranslation()
+ useLayoutEffect(() => {
+ navigation.setOptions(
+ navigationOptions({
+ fontColor: currentTheme.fontMainColor,
+ backColor: currentTheme.themeBackground,
+ iconColor: currentTheme.iconColor,
+ navigation: props.navigation
+ })
+ )
+ }, [navigation, currentTheme])
+
+ function renderAppleAction() {
+ if (loading && loginButton === 'Apple') {
+ return (
+
+
+
+ )
+ }
+ return (
+ {
+ try {
+ const credential = await AppleAuthentication.signInAsync({
+ requestedScopes: [
+ AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
+ AppleAuthentication.AppleAuthenticationScope.EMAIL
+ ]
+ })
+ {
+ const user = {
+ appleId: credential.user,
+ phone: '',
+ email: credential.email,
+ password: '',
+ name:
+ credential.fullName.givenName +
+ ' ' +
+ credential.fullName.familyName,
+ picture: '',
+ type: 'apple'
+ }
+ mutateLogin(user)
+ }
+ loginButtonSetter('Apple')
+ // signed in
+ } catch (e) {
+ if (e.code === 'ERR_CANCELLED') {
+ // handle that the user canceled the sign-in flow
+ loginButtonSetter(null)
+ } else {
+ // handle other errors
+ loginButtonSetter(null)
+ }
+ }
+ }}
+ />
+ )
+ }
+
+ function renderGoogleAction() {
+ if (loading && loginButton === 'Google') {
+ return (
+
+
+
+ )
+ }
+
+ return (
+
+ )
+ }
+
+ function renderEmailAction() {
+ return (
+ {
+ loginButtonSetter('Email')
+ // eslint-disable-next-line no-unused-expressions
+ navigateToLogin()
+ }}
+ />
+ )
+ }
+
+ return (
+
+ {/* {user && JSON.stringify(user, null, 2)} */}
+
+ {t('signUporSignIn')}
+
+
+ {renderGoogleAction()}
+ {enableApple && (
+ {renderAppleAction()}
+ )}
+
+
+
+
+ {t('or')}
+
+
+
+
+ {renderEmailAction()}
+
+
+
+ {t('termCondition1')}{' '}
+
+
+
+ {t('temrConditions')}{' '}
+
+
+
+ {t('and')}
+
+
+
+ {' '}
+ {t('privacyPolicy')}
+
+
+
+
+ )
+}
+export default CreateAccount
diff --git a/enatega-multivendor-app/src/screens/CreateAccount/screenOptions.js b/enatega-multivendor-app/src/screens/CreateAccount/screenOptions.js
new file mode 100644
index 0000000..26bcbaa
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CreateAccount/screenOptions.js
@@ -0,0 +1,19 @@
+import React from 'react'
+import { LeftButton } from '../../components/Header/HeaderIcons/HeaderIcons'
+
+const navigationOptions = props => ({
+ headerTitle: '',
+ headerRight: null,
+ // eslint-disable-next-line react/display-name
+ headerLeft: () => (
+ // eslint-disable-next-line react/react-in-jsx-scope
+
+ ),
+ headerStyle: {
+ shadowOffset: {
+ height: 0
+ },
+ backgroundColor: props.backColor
+ }
+})
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/CreateAccount/styles.js b/enatega-multivendor-app/src/screens/CreateAccount/styles.js
new file mode 100644
index 0000000..caaa055
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CreateAccount/styles.js
@@ -0,0 +1,69 @@
+import { scale } from '../../utils/scaling'
+import { Dimensions, StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+const { height } = Dimensions.get('window')
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.buttonText : 'transparent'
+ },
+ subContainer: {
+ display: 'flex',
+ alignSelf: 'center',
+ width: '100%',
+ paddingBottom: 10,
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ whiteColor: {
+ backgroundColor: props !== null ? props.buttonText : 'transparent'
+ },
+ crossIcon: {
+ width: scale(14),
+ height: scale(14),
+ ...alignment.MTlarge,
+ ...alignment.MLlarge
+ },
+ marginTop3: {
+ ...alignment.MTxSmall
+ },
+ marginTop5: {
+ ...alignment.MTsmall
+ },
+ marginTop10: {
+ ...alignment.MTmedium
+ },
+ alignItemsCenter: {
+ alignItems: 'center'
+ },
+ buttonBackground: {
+ width: '100%',
+ backgroundColor: props !== null ? props.black : '#000',
+ alignItems: 'center'
+ },
+ appleBtn: {
+ width: '100%',
+ height: height * 0.07,
+ fontSize: 20
+ },
+ orText: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ line: {
+ flex: 1,
+ height: 1,
+ backgroundColor: props !== null ? props.horizontalLine : '#9B9A9A'
+ },
+ marginBottom5: {
+ ...alignment.MBsmall
+ },
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/CreateAccount/useCreateAccount.js b/enatega-multivendor-app/src/screens/CreateAccount/useCreateAccount.js
new file mode 100644
index 0000000..b25fdec
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CreateAccount/useCreateAccount.js
@@ -0,0 +1,249 @@
+import { useEffect, useState, useContext } from 'react'
+import { StatusBar, Platform } from 'react-native'
+import * as Notifications from 'expo-notifications'
+import * as Device from 'expo-device'
+import useEnvVars from '../../../environment'
+import gql from 'graphql-tag'
+import { login } from '../../apollo/mutations'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { useMutation } from '@apollo/client'
+import * as AppleAuthentication from 'expo-apple-authentication'
+import { useFocusEffect, useNavigation } from '@react-navigation/native'
+import * as Linking from 'expo-linking'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import analytics from '../../utils/analytics'
+import AuthContext from '../../context/Auth'
+import { useTranslation } from 'react-i18next'
+import {
+ GoogleSignin,
+} from '@react-native-google-signin/google-signin'
+
+const LOGIN = gql`
+ ${login}
+`
+
+export const useCreateAccount = () => {
+ const Analytics = analytics()
+
+ const navigation = useNavigation()
+ const [mutate] = useMutation(LOGIN, { onCompleted, onError })
+ const [enableApple, setEnableApple] = useState(false)
+ const [loginButton, loginButtonSetter] = useState(null)
+ const [loading, setLoading] = useState(false)
+ const { setTokenAsync } = useContext(AuthContext)
+ const themeContext = useContext(ThemeContext)
+ const [user, setUser] = useState('')
+ const currentTheme = theme[themeContext.ThemeValue]
+ const {
+ IOS_CLIENT_ID_GOOGLE,
+ ANDROID_CLIENT_ID_GOOGLE,
+ TERMS_AND_CONDITIONS,
+ PRIVACY_POLICY
+ } = useEnvVars()
+
+ const configureGoogleSignin = () => {
+ GoogleSignin.configure({
+ iosClientId: '967541328677-nf8h4ou7rhmq9fahs87p057rggo95eah.apps.googleusercontent.com',
+ androidClientId: '967541328677-7264tf7tkdtoufk844rck9mimrve135c.apps.googleusercontent.com'
+ })
+ }
+
+ useEffect(() => {
+ configureGoogleSignin()
+ }, [])
+
+ const signIn = async () => {
+ try {
+ loginButtonSetter('Google')
+ await GoogleSignin.hasPlayServices()
+ const user = await GoogleSignin.signIn()
+ const userData = {
+ phone: '',
+ email: user.user.email,
+ password: '',
+ name: user.user.name,
+ picture: user.user.photo,
+ type: 'google'
+ }
+ await mutateLogin(userData)
+
+ setUser(user)
+ } catch (error) {
+ console.log('🚀 ~ signIn ~ error:', error)
+ }
+ }
+
+ const { t } = useTranslation()
+ // const [googleRequest, googleResponse, googlePromptAsync] =
+ // Google.useAuthRequest({
+ // expoClientId: EXPO_CLIENT_ID,
+ // iosClientId: IOS_CLIENT_ID_GOOGLE,
+ // iosStandaloneAppClientId: IOS_CLIENT_ID_GOOGLE,
+ // androidClientId: ANDROID_CLIENT_ID_GOOGLE,
+ // androidStandaloneAppClientId: ANDROID_CLIENT_ID_GOOGLE,
+ // redirectUrl: `${AuthSession.OAuthRedirect}:/oauth2redirect/google`,
+ // scopes: ['profile', 'email']
+ // })
+
+ const navigateToLogin = () => {
+ navigation.navigate('Login')
+ }
+ const navigateToRegister = () => {
+ navigation.navigate('Register')
+ }
+ const navigateToPhone = () => {
+ navigation.navigate('PhoneNumber')
+ }
+ const navigateToMain = () => {
+ navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+
+ async function mutateLogin(user) {
+ setLoading(true)
+ let notificationToken = null
+ if (Device.isDevice) {
+ const { status: existingStatus } =
+ await Notifications.getPermissionsAsync()
+ if (existingStatus === 'granted') {
+ notificationToken = (await Notifications.getExpoPushTokenAsync()).data
+ }
+ }
+ mutate({
+ variables: {
+ ...user,
+ notificationToken: notificationToken
+ }
+ })
+ }
+
+ // const googleSignUp = () => {
+ // if (googleResponse?.type === 'success') {
+ // const { authentication } = googleResponse
+ // ;(async () => {
+ // const userInfoResponse = await fetch(
+ // 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json',
+ // {
+ // headers: { Authorization: `Bearer ${authentication.accessToken}` }
+ // }
+ // )
+ // const googleUser = await userInfoResponse.json()
+ // const user = {
+ // phone: '',
+ // email: googleUser.email,
+ // password: '',
+ // name: googleUser.name,
+ // picture: googleUser.picture,
+ // type: 'google'
+ // }
+ // mutateLogin(user)
+ // })()
+ // }
+ // }
+
+ // useEffect(() => {
+ // googleSignUp()
+ // }, [googleResponse])
+
+ useEffect(() => {
+ checkIfSupportsAppleAuthentication()
+ }, [])
+
+ async function checkIfSupportsAppleAuthentication() {
+ setEnableApple(await AppleAuthentication.isAvailableAsync())
+ }
+
+ async function onCompleted(data) {
+ if (data.login.isActive == false) {
+ FlashMessage({ message: t('accountDeactivated') })
+ setLoading(false)
+ } else {
+ try {
+ if (data.login.inNewUser) {
+ await Analytics.identify(
+ {
+ userId: data.login.userId
+ },
+ data.login.userId
+ )
+ await Analytics.track(Analytics.events.USER_CREATED_ACCOUNT, {
+ userId: data.login.userId,
+ name: data.login.name,
+ email: data.login.email
+ })
+ } else {
+ await Analytics.identify(
+ {
+ userId: data.login.userId
+ },
+ data.login.userId
+ )
+ await Analytics.track(Analytics.events.USER_LOGGED_IN, {
+ userId: data.login.userId,
+ name: data.login.name,
+ email: data.login.email
+ })
+ }
+ setTokenAsync(data.login.token)
+ FlashMessage({ message: 'Successfully logged in' })
+ // eslint-disable-next-line no-unused-expressions
+ data.login?.phone === '' ? navigateToPhone() : navigateToMain()
+ } catch (e) {
+ console.log(e)
+ } finally {
+ setLoading(false)
+ }
+ }
+ }
+
+ function onError(error) {
+ try {
+ FlashMessage({
+ message: error.message
+ })
+ loginButtonSetter(null)
+ } catch (e) {
+ console.log(e)
+ } finally {
+ setLoading(false)
+ }
+ }
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.menuBar)
+ }
+ StatusBar.setBarStyle(
+ themeContext.ThemeValue === 'Dark' ? 'light-content' : 'dark-content'
+ )
+ })
+ const openTerms = () => {
+ Linking.openURL(TERMS_AND_CONDITIONS)
+ }
+ const openPrivacyPolicy = () => {
+ Linking.openURL(PRIVACY_POLICY)
+ }
+ return {
+ enableApple,
+ loginButton,
+ loginButtonSetter,
+ // googleRequest,
+ // googlePromptAsync,
+ loading,
+ setLoading,
+ themeContext,
+ mutateLogin,
+ currentTheme,
+ navigateToLogin,
+ navigateToRegister,
+ openTerms,
+ openPrivacyPolicy,
+ navigateToMain,
+ navigation,
+ signIn,
+ user
+ }
+}
diff --git a/enatega-multivendor-app/src/screens/CurrentLocation/CurrentLocation.js b/enatega-multivendor-app/src/screens/CurrentLocation/CurrentLocation.js
new file mode 100644
index 0000000..f93f24b
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CurrentLocation/CurrentLocation.js
@@ -0,0 +1,118 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { View, StatusBar, TouchableOpacity, Linking } from 'react-native'
+import { useLocation } from '../../ui/hooks'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import { useNavigation } from '@react-navigation/native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import styles from './styles'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import LocationPermission from '../../assets/SVG/imageComponents/LocationPermission'
+import { scale } from '../../utils/scaling'
+import analytics from '../../utils/analytics'
+import Spinner from '../../components/Spinner/Spinner'
+import { useTranslation } from 'react-i18next'
+export default function CurrentLocation() {
+ const Analytics = analytics()
+ const { t } = useTranslation()
+ const [loading, setLoading] = useState(false)
+ const inset = useSafeAreaInsets()
+ const navigation = useNavigation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { getCurrentLocation, getLocationPermission } = useLocation()
+
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_CURRENTLOCATION)
+ }
+ Track()
+ }, [])
+
+ const setCurrentLocation = async () => {
+ setLoading(true)
+ const { status, canAskAgain } = await getLocationPermission()
+ if (status !== 'granted' && !canAskAgain) {
+ FlashMessage({
+ message: t('locationPermissionMessage'),
+ onPress: async () => {
+ await Linking.openSettings()
+ }
+ })
+ setLoading(false)
+ return
+ }
+ const { error, coords, message } = await getCurrentLocation()
+ if (error) {
+ FlashMessage({
+ message
+ })
+ setLoading(false)
+ return
+ }
+ setLoading(false)
+ navigation.navigate('SelectLocation', { ...coords })
+ }
+ StatusBar.setBarStyle('light-content')
+ return (
+ <>
+
+
+
+
+
+
+
+
+ {t('enategaUseYourLocationMessage')}
+
+
+
+
+ {t('useCurrentLocation')}
+
+ {loading && (
+
+ )}
+
+
+ {
+ navigation.navigate('SelectLocation')
+ }}>
+
+ {t('selectAnotherLocation')}
+
+
+
+
+
+ >
+ )
+}
diff --git a/enatega-multivendor-app/src/screens/CurrentLocation/index.js b/enatega-multivendor-app/src/screens/CurrentLocation/index.js
new file mode 100644
index 0000000..64f8503
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CurrentLocation/index.js
@@ -0,0 +1 @@
+export { default } from './CurrentLocation'
diff --git a/enatega-multivendor-app/src/screens/CurrentLocation/styles.js b/enatega-multivendor-app/src/screens/CurrentLocation/styles.js
new file mode 100644
index 0000000..931d7c8
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/CurrentLocation/styles.js
@@ -0,0 +1,50 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ screenBackground: {
+ backgroundColor: props != null ? props.themeBackground : '#FFF'
+ },
+ subContainerImage: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ imageContainer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.MBlarge
+ },
+ image: {
+ width: scale(100),
+ height: scale(100)
+ },
+ descriptionEmpty: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.Plarge
+ },
+ emptyButton: {
+ display: 'flex',
+ flexDirection: 'row',
+ width: '80%',
+ height: '5%',
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent',
+ justifyContent: 'space-evenly',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ linkButton: {
+ ...alignment.Pmedium,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: 'transparent'
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/EditAddress/EditAddress.js b/enatega-multivendor-app/src/screens/EditAddress/EditAddress.js
new file mode 100644
index 0000000..6da6b8c
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/EditAddress/EditAddress.js
@@ -0,0 +1,466 @@
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useContext,
+ useLayoutEffect
+} from 'react'
+import {
+ View,
+ TouchableOpacity,
+ Platform,
+ KeyboardAvoidingView,
+ ScrollView,
+ Image
+} from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import styles from './styles'
+import { OutlinedTextField, TextField } from 'react-native-material-textfield'
+import { scale } from '../../utils/scaling'
+import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
+import gql from 'graphql-tag'
+import { editAddress } from '../../apollo/mutations'
+import * as Location from 'expo-location'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { LocationContext } from '../../context/Location'
+import { mapStyle } from '../../utils/mapStyle'
+import CustomMarker from '../../assets/SVG/imageComponents/CustomMarker'
+import AddressText from '../../components/Address/AddressText'
+import SearchModal from '../../components/Address/SearchModal'
+import Analytics from '../../utils/analytics'
+import { MaterialIcons, Entypo, Foundation } from '@expo/vector-icons'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { useTranslation } from 'react-i18next'
+
+const EDIT_ADDRESS = gql`
+ ${editAddress}
+`
+
+const labelValues = [
+ {
+ title: 'Home',
+ value: 'Home',
+ icon:
+ },
+ {
+ title: 'Work',
+ value: 'Work',
+ icon:
+ },
+ {
+ title: 'Other',
+ value: 'Other',
+ icon:
+ }
+]
+
+const LATITUDE_DELTA = 0.0022
+const LONGITUDE_DELTA = 0.0021
+
+function EditAddress(props) {
+ const analytics = Analytics()
+
+ const { t } = useTranslation()
+ const addressRef = useRef(null)
+ const { location, setLocation } = useContext(LocationContext)
+ const [_id] = useState(props.route.params._id ?? null)
+ const [selectedLabel, setSelectedLabel] = useState(
+ props.route.params.label ?? labelValues[0].value
+ )
+ const [region, setRegion] = useState({
+ latitude: props.route.params.location
+ ? parseFloat(props.route.params.location.coordinates[1] ?? null)
+ : props.route.params.regionChange.latitude,
+ latitudeDelta: LATITUDE_DELTA,
+ longitude: props.route.params.location
+ ? parseFloat(props.route.params.location.coordinates[0] ?? '')
+ : props.route.params.regionChange.longitude,
+ longitudeDelta: LONGITUDE_DELTA
+ })
+ const [deliveryAddress, setDeliveryAddress] = useState(
+ props.route.params.deliveryAddress ?? ''
+ )
+ const [deliveryDetails, setDeliveryDetails] = useState(
+ props.route.params.details ?? ''
+ )
+ const [deliveryAddressError, setDeliveryAddressError] = useState('')
+ const [deliveryDetailsError, setDeliveryDetailsError] = useState('')
+ const [modalVisible, setModalVisible] = useState(false)
+ const regionObj = props.route.params.regionChange ?? null
+
+ const [mutate, { loading }] = useMutation(EDIT_ADDRESS, {
+ onCompleted,
+ onError
+ })
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const inset = useSafeAreaInsets()
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('editAddress'),
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ borderBottomLeftRadius: 20,
+ borderBottomRightRadius: 20
+ },
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderWidth: 1,
+ borderColor: currentTheme.white,
+
+ marginLeft: 0
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+ useEffect(() => {
+ if (regionObj !== null) regionChange(regionObj)
+ }, [regionObj])
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_EDITADDRESS)
+ }
+ Track()
+ }, [])
+ function regionChange(region) {
+ Location.reverseGeocodeAsync({ ...region })
+ .then(data => {
+ if (data.length) {
+ const location = data[0]
+ const deliveryAddress = Object.keys(location)
+ .map(key => location[key])
+ .join(' ')
+ setDeliveryAddress(deliveryAddress)
+ addressRef.current.setValue(deliveryAddress)
+ }
+ })
+ .catch(error => {
+ console.log(error)
+ })
+ setRegion(region)
+ }
+
+ function onCompleted({ editAddress }) {
+ if (location._id === editAddress._id) {
+ setLocation({
+ ...editAddress,
+ latitude: parseFloat(editAddress.latitude),
+ longitude: parseFloat(editAddress.longitude)
+ })
+ }
+ FlashMessage({
+ message: t('addressUpdated')
+ })
+ // show message here
+ props.navigation.goBack()
+ }
+
+ function onError(error) {
+ FlashMessage({
+ message: `${t('errorOccured')} ${error}`
+ })
+ }
+
+ const onOpen = () => {
+ setModalVisible(true)
+ }
+ const onClose = () => {
+ setModalVisible(false)
+ }
+
+ const onSubmit = (deliveryAddressGeo, coordinates) => {
+ setDeliveryAddress(deliveryAddressGeo)
+ addressRef.current.setValue(deliveryAddressGeo)
+ setRegion({
+ ...region,
+ longitude: coordinates.lng,
+ latitude: coordinates.lat
+ })
+ setModalVisible(false)
+ }
+
+ return (
+ <>
+
+
+
+ {
+ props.navigation.navigate('FullMap', {
+ latitude: region.latitude,
+ longitude: region.longitude,
+ currentScreen: 'EditAddress'
+ })
+ }}>
+
+
+
+
+
+
+
+
+
+
+
+ (
+
+
+
+ )}
+ maxLength={100}
+ backgroundColor={currentTheme.black}
+ textColor={currentTheme.fontMainColor}
+ baseColor={currentTheme.darkBgFont}
+ errorColor={currentTheme.textErrorColor}
+ tintColor={
+ !deliveryAddressError ? currentTheme.tagColor : 'red'
+ }
+ labelOffset={{ y1: -5 }}
+ labelTextStyle={{
+ fontSize: scale(12),
+ paddingTop: scale(1)
+ }}
+ onChangeText={text => {
+ setDeliveryAddress(text)
+ }}
+ onBlur={() => {
+ setDeliveryAddressError(
+ !deliveryAddress.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ )
+ }}
+ />
+
+
+
+ {
+ setDeliveryDetails(text)
+ }}
+ onBlur={() => {
+ setDeliveryDetailsError(
+ !deliveryDetails.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ )
+ }}
+ />
+
+
+
+
+
+
+ {t('addLabel')}
+
+
+
+ {labelValues.map((label, index) => (
+ <>
+ {
+ setSelectedLabel(label.value)
+ }}>
+
+ {label.icon}
+
+
+ >
+ ))}
+
+
+
+ {labelValues.map((label, index) => (
+ <>
+
+ {t(label.title)}
+
+ >
+ ))}
+
+
+
+
+
+ {
+ const deliveryAddressError = !deliveryAddress.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ const deliveryDetailsError = !deliveryDetails.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+
+ setDeliveryAddressError(deliveryAddressError)
+ setDeliveryDetailsError(deliveryDetailsError)
+
+ if (
+ deliveryAddressError === null &&
+ deliveryDetailsError === null
+ ) {
+ mutate({
+ variables: {
+ addressInput: {
+ _id: _id,
+ latitude: `${region.latitude}`,
+ longitude: `${region.longitude}`,
+ deliveryAddress: deliveryAddress.trim(),
+ details: deliveryDetails.trim(),
+ label: selectedLabel
+ }
+ }
+ })
+ }
+ }}
+ activeOpacity={0.5}
+ style={styles(currentTheme).saveBtnContainer}>
+
+ {t('saveContBtn')}
+
+
+
+
+
+ {/* */}
+ {modalVisible ? (
+
+ ) : null}
+
+ >
+ )
+}
+
+export default EditAddress
diff --git a/enatega-multivendor-app/src/screens/EditAddress/EditAddressOld.js b/enatega-multivendor-app/src/screens/EditAddress/EditAddressOld.js
new file mode 100644
index 0000000..a67667c
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/EditAddress/EditAddressOld.js
@@ -0,0 +1,389 @@
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useContext,
+ useLayoutEffect
+} from 'react'
+import {
+ View,
+ TouchableOpacity,
+ Platform,
+ KeyboardAvoidingView,
+ ScrollView
+} from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import styles from './styles'
+import { OutlinedTextField } from 'react-native-material-textfield'
+import { scale } from '../../utils/scaling'
+import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
+import gql from 'graphql-tag'
+import { editAddress } from '../../apollo/mutations'
+import * as Location from 'expo-location'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { LocationContext } from '../../context/Location'
+import { mapStyle } from '../../utils/mapStyle'
+import CustomMarker from '../../assets/SVG/imageComponents/CustomMarker'
+import AddressText from '../../components/Address/AddressText'
+import SearchModal from '../../components/Address/SearchModal'
+import Analytics from '../../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+const EDIT_ADDRESS = gql`
+ ${editAddress}
+`
+
+const labelValues = [
+ {
+ title: 'Home',
+ value: 'Home',
+ icon:
+ },
+ {
+ title: 'Work',
+ value: 'Work',
+ icon:
+ },
+ {
+ title: 'Other',
+ value: 'Other',
+ icon:
+ }
+]
+
+const LATITUDE_DELTA = 0.0022
+const LONGITUDE_DELTA = 0.0021
+
+function EditAddress(props) {
+ const analytics = Analytics()
+
+ const { t } = useTranslation()
+ const addressRef = useRef(null)
+ const { location, setLocation } = useContext(LocationContext)
+ const [_id] = useState(props.route.params._id ?? null)
+ const [selectedLabel, setSelectedLabel] = useState(
+ props.route.params.label ?? labelValues[0].value
+ )
+ const [region, setRegion] = useState({
+ latitude: props.route.params.location
+ ? parseFloat(props.route.params.location.coordinates[1] ?? null)
+ : props.route.params.regionChange.latitude,
+ latitudeDelta: LATITUDE_DELTA,
+ longitude: props.route.params.location
+ ? parseFloat(props.route.params.location.coordinates[0] ?? '')
+ : props.route.params.regionChange.longitude,
+ longitudeDelta: LONGITUDE_DELTA
+ })
+ const [deliveryAddress, setDeliveryAddress] = useState(
+ props.route.params.deliveryAddress ?? ''
+ )
+ const [deliveryDetails, setDeliveryDetails] = useState(
+ props.route.params.details ?? ''
+ )
+ const [deliveryAddressError, setDeliveryAddressError] = useState('')
+ const [deliveryDetailsError, setDeliveryDetailsError] = useState('')
+ const [modalVisible, setModalVisible] = useState(false)
+ const regionObj = props.route.params.regionChange ?? null
+
+ const [mutate, { loading }] = useMutation(EDIT_ADDRESS, {
+ onCompleted,
+ onError
+ })
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const inset = useSafeAreaInsets()
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('editAddress')
+ })
+ }, [props.navigation])
+ useEffect(() => {
+ if (regionObj !== null) regionChange(regionObj)
+ }, [regionObj])
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_EDITADDRESS)
+ }
+ Track()
+ }, [])
+ function regionChange(region) {
+ Location.reverseGeocodeAsync({ ...region })
+ .then(data => {
+ if (data.length) {
+ const location = data[0]
+ const deliveryAddress = Object.keys(location)
+ .map(key => location[key])
+ .join(' ')
+ setDeliveryAddress(deliveryAddress)
+ addressRef.current.setValue(deliveryAddress)
+ }
+ })
+ .catch(error => {
+ console.log(error)
+ })
+ setRegion(region)
+ }
+
+ function onCompleted({ editAddress }) {
+ if (location._id === editAddress._id) {
+ setLocation({
+ ...editAddress,
+ latitude: parseFloat(editAddress.latitude),
+ longitude: parseFloat(editAddress.longitude)
+ })
+ }
+ FlashMessage({
+ message: t('addressUpdated')
+ })
+ // show message here
+ props.navigation.goBack()
+ }
+
+ function onError(error) {
+ FlashMessage({
+ message: `${t('errorOccured')} ${error}`
+ })
+ }
+
+ const onOpen = () => {
+ setModalVisible(true)
+ }
+ const onClose = () => {
+ setModalVisible(false)
+ }
+
+ const onSubmit = (deliveryAddressGeo, coordinates) => {
+ setDeliveryAddress(deliveryAddressGeo)
+ addressRef.current.setValue(deliveryAddressGeo)
+ setRegion({
+ ...region,
+ longitude: coordinates.lng,
+ latitude: coordinates.lat
+ })
+ setModalVisible(false)
+ }
+
+ return (
+ <>
+
+
+
+ {
+ props.navigation.navigate('FullMap', {
+ latitude: region.latitude,
+ longitude: region.longitude,
+ currentScreen: 'EditAddress'
+ })
+ }}>
+
+
+
+
+
+
+
+
+
+ {
+ setDeliveryAddress(text)
+ }}
+ onBlur={() => {
+ setDeliveryAddressError(
+ !deliveryAddress.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ )
+ }}
+ />
+
+
+
+
+ {
+ setDeliveryDetails(text)
+ }}
+ onBlur={() => {
+ setDeliveryDetailsError(
+ !deliveryDetails.trim().length
+ ? 'Delivery details is required'
+ : null
+ )
+ }}
+ />
+
+
+
+
+ Label as
+
+
+
+ {labelValues.map((label, index) => (
+ {
+ setSelectedLabel(label.value)
+ }}>
+
+ {label.title}
+
+
+ ))}
+
+
+
+
+ {
+ const deliveryAddressError = !deliveryAddress.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ const deliveryDetailsError = !deliveryDetails.trim().length
+ ? 'Delivery details is required'
+ : null
+
+ setDeliveryAddressError(deliveryAddressError)
+ setDeliveryDetailsError(deliveryDetailsError)
+
+ if (
+ deliveryAddressError === null &&
+ deliveryDetailsError === null
+ ) {
+ mutate({
+ variables: {
+ addressInput: {
+ _id: _id,
+ latitude: `${region.latitude}`,
+ longitude: `${region.longitude}`,
+ deliveryAddress: deliveryAddress.trim(),
+ details: deliveryDetails.trim(),
+ label: selectedLabel
+ }
+ }
+ })
+ }
+ }}
+ activeOpacity={0.5}
+ style={styles(currentTheme).saveBtnContainer}>
+
+ {t('saveContBtn')}
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default EditAddress
diff --git a/enatega-multivendor-app/src/screens/EditAddress/styles.js b/enatega-multivendor-app/src/screens/EditAddress/styles.js
new file mode 100644
index 0000000..ed80cb5
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/EditAddress/styles.js
@@ -0,0 +1,156 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : '#FFF'
+ },
+ subContainer: {
+ flex: 1,
+ flexGrow: 1,
+ alignItems: 'center',
+ borderTopLeftRadius: 30,
+ borderTopRightRadius: 30,
+ borderColor: 'grey',
+ justifyContent: 'space-between',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ shadowColor: '#00000026',
+ shadowRadius: 11,
+ ...alignment.PTlarge
+ },
+ upperContainer: {
+ width: '90%',
+ alignItems: 'center'
+ },
+ horizontalLine: {
+ borderBottomColor: theme.Pink.tagColor,
+ borderBottomWidth: 1,
+ marginVertical: 10, // Adjust this value to control the spacing above and below the line
+ width: '90%',
+ alignSelf: 'center',
+ marginBottom: 30
+ },
+ addressContainer: {
+ paddingTop: 0,
+ width: '100%',
+ ...alignment.Psmall
+ },
+ labelButtonContainer: {
+ ...alignment.PxSmall,
+ width: '80%'
+ },
+ labelTitleContainer: {
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+ buttonInline: {
+ width: '100%',
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ color: 'black'
+ },
+ textbuttonInline: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ color: 'black'
+ },
+ titlebuttonInline: {
+ paddingLeft: 10,
+ paddingRight: 12,
+ justifyContent: 'space-between',
+ ...alignment.PxSmall
+ },
+ labelButton: {
+ width: 60,
+ height: 60,
+ borderWidth: 1,
+ borderColor: props !== null ? props.tagColor : 'transparent',
+ borderRadius: 8,
+ justifyContent: 'center',
+ ...alignment.PxSmall,
+ backgroundColor: theme.Pink.tagColor
+ },
+ textlabelButton: {
+ justifyContent: 'center',
+ ...alignment.PxSmall,
+ backgroundColor: theme.Pink.tagColor
+ },
+ activeLabel: {
+ width: 60,
+ height: 60,
+ borderWidth: 1,
+ borderRadius: 8,
+ justifyContent: 'center',
+ color: props !== null ? props.tagColor : 'transparent',
+ borderColor: props !== null ? props.black : 'transparent',
+ backgroundColor: props !== null ? props.darkBgFont : 'transparent',
+ ...alignment.PxSmall
+ },
+ saveBtnContainer: {
+ width: '80%',
+ height: verticalScale(40),
+ borderRadius: 20,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent',
+ alignSelf: 'center',
+ marginTop: 20,
+ marginBottom: 20
+ },
+ fakeMarkerContainer: {
+ position: 'absolute',
+ top: 0,
+ bottom: 0,
+ left: 0,
+ right: 0,
+ marginLeft: -24,
+ marginTop: -58,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: 'transparent'
+ },
+ marker: {
+ height: 48,
+ width: 48
+ },
+ mapContainer: {
+ height: '40%',
+ backgroundColor: 'transparent'
+ },
+ geoLocation: {
+ flexDirection: 'row'
+ },
+ editAddressImageContainer: {
+ width: scale(50),
+ height: scale(50),
+ position: 'absolute',
+ top: '50%',
+ left: '50%',
+ zIndex: 1,
+ translateX: scale(-25),
+ translateY: scale(-25),
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: -25 }, { translateY: -25 }]
+ },
+ editOldAddressImageContainer: {
+ width: scale(50),
+ height: scale(50),
+ position: 'absolute',
+ top: '46%',
+ left: '50%',
+ zIndex: 1,
+ translateX: scale(-25),
+ translateY: scale(-25),
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: -25 }, { translateY: -25 }]
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Favourite/Favourite.js b/enatega-multivendor-app/src/screens/Favourite/Favourite.js
new file mode 100644
index 0000000..0581cbd
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Favourite/Favourite.js
@@ -0,0 +1,174 @@
+import { useQuery } from '@apollo/client'
+import { useFocusEffect, useNavigation } from '@react-navigation/native'
+import gql from 'graphql-tag'
+import React, { useContext, useEffect, useLayoutEffect } from 'react'
+import {
+ FlatList,
+ Platform,
+ StatusBar,
+ TouchableOpacity,
+ View
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import { FavouriteRestaurant } from '../../apollo/queries'
+import EmptyCart from '../../assets/SVG/imageComponents/EmptyCart'
+import Item from '../../components/Main/Item/Item'
+import Spinner from '../../components/Spinner/Spinner'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import TextError from '../../components/Text/TextError/TextError'
+import { LocationContext } from '../../context/Location'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { scale } from '../../utils/scaling'
+import { theme } from '../../utils/themeColors'
+import screenOptions from './screenOptions'
+import styles from './styles'
+import Analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { MaterialIcons } from '@expo/vector-icons'
+import { useTranslation } from 'react-i18next'
+import navigationService from '../../routes/navigationService'
+
+const RESTAURANTS = gql`
+ ${FavouriteRestaurant}
+`
+
+function Favourite() {
+ const analytics = Analytics()
+
+ const { t } = useTranslation()
+ const navigation = useNavigation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { location } = useContext(LocationContext)
+ const { data, refetch, networkStatus, loading, error } = useQuery(
+ RESTAURANTS,
+ {
+ variables: {
+ longitude: location.longitude || null,
+ latitude: location.latitude || null
+ },
+ fetchPolicy: 'network-only'
+ }
+ )
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_FAVOURITES)
+ }
+ Track()
+ }, [])
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ title: t('titleFavourite'),
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderColor: currentTheme.white,
+ borderWidth: 1
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0,
+ // marginBottom: 10
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [navigation])
+
+ function emptyView() {
+ return (
+
+
+
+
+
+
+
+ {t('titleEmptyFav')}
+
+
+ {t('emptyFavDesc')}
+
+
+
+ navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }>
+
+ {t('emptyFavBtn')}
+
+
+
+
+ )
+ }
+
+ if (loading) return
+ if (error) return
+ return (
+
+ item._id}
+ showsVerticalScrollIndicator={false}
+ refreshing={networkStatus === 4}
+ onRefresh={() => networkStatus === 7 && refetch()}
+ style={[styles().flex, styles(currentTheme).container]}
+ contentContainerStyle={styles(currentTheme).contentContainer}
+ ListEmptyComponent={emptyView()}
+ ListHeaderComponent={null}
+ renderItem={({ item }) => }
+ />
+
+ )
+}
+
+export default Favourite
diff --git a/enatega-multivendor-app/src/screens/Favourite/screenOptions.js b/enatega-multivendor-app/src/screens/Favourite/screenOptions.js
new file mode 100644
index 0000000..c2bd487
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Favourite/screenOptions.js
@@ -0,0 +1,49 @@
+import { useTranslation } from 'react-i18next'
+import { BackButton } from '../../components/Header/HeaderIcons/HeaderIcons'
+import { scale } from '../../utils/scaling'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { View } from 'react-native'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+import styles from './styles'
+
+const navigationOptions = headerText => {
+ const { t } = useTranslation() // Initializing the useTranslation hook
+
+ return {
+ title: t('titleFavourite'), // Using translation function to get the title
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerTitleContainerStyle: {
+ // marginBottom: 10,
+ paddingLeft: 20,
+ paddingRight: 20,
+ backgroundColor: 'black',
+ borderWidth: 1,
+ borderColor: 'white',
+ borderRadius: scale(10),
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: '#F5F5F5',
+ border: 1,
+ borderColor: 'white',
+ borderRadius: scale(10)
+ },
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ }
+}
+
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/Favourite/styles.js b/enatega-multivendor-app/src/screens/Favourite/styles.js
new file mode 100644
index 0000000..a0b1693
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Favourite/styles.js
@@ -0,0 +1,57 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainerEmpty: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ container: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ contentContainer: {
+ flexGrow: 1,
+ ...alignment.PBsmall
+ },
+ subContainerImage: {
+ flex: 1,
+ justifyContent: 'center',
+ alignContent: 'center'
+ },
+ imageContainer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.MBlarge
+ },
+ image: {
+ width: scale(100),
+ height: scale(100)
+ },
+ descriptionEmpty: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.Plarge
+ },
+ emptyButton: {
+ width: '60%',
+ height: scale(40),
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent',
+ borderRadius: scale(10),
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ backImageContainer: {
+ backgroundColor: 'white',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/ForgotPassword/ForgotPassword.js b/enatega-multivendor-app/src/screens/ForgotPassword/ForgotPassword.js
new file mode 100644
index 0000000..5fd27c5
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ForgotPassword/ForgotPassword.js
@@ -0,0 +1,141 @@
+import React, { useLayoutEffect, useEffect } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ StatusBar,
+ Image,
+ TextInput
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './styles'
+import Spinner from '../../components/Spinner/Spinner'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import screenOptions from './screenOptions'
+import analytics from '../../utils/analytics'
+import { useForgotPassword } from './useForgotPassword'
+import {useTranslation} from 'react-i18next'
+
+function ForgotPassword(props) {
+ const Analytics = analytics()
+
+ const {
+ email,
+ setEmail,
+ emailError,
+ forgotPassword,
+ currentTheme,
+ themeContext,
+ loading
+ } = useForgotPassword()
+ const {t} = useTranslation()
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_FORGOTPASSWORD)
+ }
+ Track()
+ }, [])
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ backColor: currentTheme.themeBackground,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('forgotPassword')}
+
+
+ {t('enterYourEmail')}
+
+
+
+ setEmail(e)}
+ />
+ {emailError && (
+
+ {emailError}
+
+ )}
+
+
+ {loading ? (
+
+ ) : (
+ forgotPassword()}>
+
+ {t('continueBtn')}
+
+
+ )}
+
+ props.navigation.goBack()}>
+
+ {t('backToLogin')}
+
+
+
+
+
+ )
+}
+export default ForgotPassword
diff --git a/enatega-multivendor-app/src/screens/ForgotPassword/SetYourPassword.js b/enatega-multivendor-app/src/screens/ForgotPassword/SetYourPassword.js
new file mode 100644
index 0000000..2ace3a6
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ForgotPassword/SetYourPassword.js
@@ -0,0 +1,151 @@
+import React, { useLayoutEffect } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ StatusBar,
+ Image,
+ TextInput
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './styles'
+import Spinner from '../../components/Spinner/Spinner'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import screenOptions from './screenOptions'
+import { useResetYourPassword } from './useResetYourPassword'
+import {useTranslation} from 'react-i18next'
+
+function ForgotPassword(props) {
+ const {
+ password,
+ setPassword,
+ confirmPassword,
+ confirmPasswordError,
+ setConfirmPassword,
+ passwordError,
+ currentTheme,
+ themeContext,
+ resetYourPassword,
+ loading
+ } = useResetYourPassword()
+ const {t} = useTranslation()
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ iconColor: currentTheme.iconColorPink,
+ backColor: currentTheme.themeBackground,
+ fontColor: currentTheme.fontMainColor,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('setYourPassword')}
+
+
+ {t('enterPass')}
+
+
+
+ setPassword(e)}
+ />
+
+ {passwordError && (
+
+
+ {passwordError}
+
+
+ )}
+
+ setConfirmPassword(e)}
+ />
+
+ {confirmPasswordError && (
+
+
+ {confirmPasswordError}
+
+
+ )}
+
+ resetYourPassword()}
+ activeOpacity={0.7}
+ style={styles().btn}>
+
+ {loading ? (
+
+ ) : (
+ t('saveBtn')
+ )}
+
+
+
+
+
+
+ )
+}
+export default ForgotPassword
diff --git a/enatega-multivendor-app/src/screens/ForgotPassword/screenOptions.js b/enatega-multivendor-app/src/screens/ForgotPassword/screenOptions.js
new file mode 100644
index 0000000..4341545
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ForgotPassword/screenOptions.js
@@ -0,0 +1,38 @@
+import React from 'react'
+import styles from './styles'
+import { Ionicons } from '@expo/vector-icons'
+
+const navigationOptions = props => {
+ return {
+ title: null,
+ // eslint-disable-next-line react/display-name
+ headerRight: () => (
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+ name="close"
+ size={24}
+ color="black"
+ style={styles().headerRightIcon}
+ />
+ ),
+ // eslint-disable-next-line react/display-name
+ headerLeft: () => (
+ props.navigation.goBack()}
+ name="chevron-back"
+ size={24}
+ color="black"
+ style={styles().headerLeftIcon}
+ />
+ ),
+ headerStyle: {
+ backgroundColor: props.backColor
+ }
+ }
+}
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/ForgotPassword/styles.js b/enatega-multivendor-app/src/screens/ForgotPassword/styles.js
new file mode 100644
index 0000000..8bf0b6e
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ForgotPassword/styles.js
@@ -0,0 +1,96 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ safeAreaViewStyles: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ mainContainer: {
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ subContainer: {
+ width: '85%',
+ height: '100%'
+ },
+ logoContainer: {
+ width: scale(120),
+ height: scale(130),
+ alignSelf: 'center'
+ },
+ marginTop3: {
+ ...alignment.MTxSmall
+ },
+ marginTop5: {
+ ...alignment.MTsmall
+ },
+ marginTop10: {
+ ...alignment.MTlarge
+ },
+ alignItemsCenter: {
+ alignItems: 'center'
+ },
+ actionBtn: {
+ width: '50%',
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ textField: {
+ borderColor: props !== null ? props.borderColor :'#efefef',
+ borderWidth: scale(1),
+ borderRadius: scale(10),
+ backgroundColor: props !== null ? props.white : 'white',
+ padding: scale(14),
+ shadowColor: props !== null ? props.fontSecondColor : '#545454',
+ shadowOffset: {
+ width: scale(0),
+ height: scale(2)
+ },
+ shadowOpacity: scale(0.25),
+ shadowRadius: scale(3.84),
+ elevation: scale(5),
+ ...alignment.MTlarge
+ },
+ errorInput: {
+ backgroundColor: props !== null ? props.errorInputBack : '#F7E7E5',
+ borderColor: props !== null ? props.errorInputBorder : '#DB4A39'
+ },
+ error: {
+ ...alignment.MTxSmall
+ },
+ btn: {
+ width: '70%',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.black : '#000',
+ alignSelf: 'center',
+ padding: scale(15),
+ borderRadius: scale(10),
+ ...alignment.MTlarge
+ },
+ passwordField: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ passwordInput: {
+ width: '100%'
+ },
+ eyeBtn: {
+ marginTop: scale(32),
+ marginLeft: scale(-40)
+ },
+ headerLeftIcon: {
+ ...alignment.PLsmall
+ },
+ headerRightIcon: {
+ ...alignment.PRsmall
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/ForgotPassword/useForgotPassword.js b/enatega-multivendor-app/src/screens/ForgotPassword/useForgotPassword.js
new file mode 100644
index 0000000..5fa55b9
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ForgotPassword/useForgotPassword.js
@@ -0,0 +1,82 @@
+import { useState, useContext } from 'react'
+import { forgotPassword } from '../../apollo/mutations'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import { useNavigation, useRoute } from '@react-navigation/native'
+import {useTranslation} from 'react-i18next'
+
+const FORGOT_PASSWORD = gql`
+ ${forgotPassword}
+`
+export const useForgotPassword = () => {
+ const {t} = useTranslation()
+ const navigation = useNavigation()
+ const route = useRoute()
+ const [email, setEmail] = useState(route.params?.email || '')
+ const [emailError, setEmailError] = useState(null)
+ const [otp] = useState(Math.floor(100000 + Math.random() * 900000).toString())
+
+ const [mutate, { loading }] = useMutation(FORGOT_PASSWORD, {
+ onCompleted,
+ onError
+ })
+
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ function validateCredentials() {
+ let result = true
+ setEmailError(null)
+ if (!email) {
+ setEmailError(t('emailErr1'))
+ result = false
+ } else {
+ const emailRegex = /^\w+([\\.-]?\w+)*@\w+([\\.-]?\w+)*(\.\w{2,3})+$/
+ if (emailRegex.test(email) !== true) {
+ setEmailError(t('emailErr2'))
+ result = false
+ }
+ }
+ return result
+ }
+
+ function forgotPassword() {
+ if (validateCredentials()) {
+ mutate({ variables: { email: email.toLowerCase().trim(), otp } })
+ }
+ }
+
+ function onCompleted(data) {
+ FlashMessage({
+ message: t('otpForResetPassword')
+ })
+ navigation.navigate('ForgotPasswordOtp', { otp, email })
+ }
+
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+ return {
+ email,
+ setEmail,
+ emailError,
+ otp,
+ onError,
+ onCompleted,
+ forgotPassword,
+ themeContext,
+ currentTheme,
+ loading
+ }
+}
diff --git a/enatega-multivendor-app/src/screens/ForgotPassword/useResetYourPassword.js b/enatega-multivendor-app/src/screens/ForgotPassword/useResetYourPassword.js
new file mode 100644
index 0000000..0db2a41
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ForgotPassword/useResetYourPassword.js
@@ -0,0 +1,96 @@
+import { useState, useContext } from 'react'
+import { resetPassword } from '../../apollo/mutations'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import { useRoute, useNavigation } from '@react-navigation/native'
+import {useTranslation} from 'react-i18next'
+
+const RESET_PASSWORD = gql`
+ ${resetPassword}
+`
+
+export const useResetYourPassword = () => {
+ const {t} = useTranslation()
+ const route = useRoute()
+ const navigation = useNavigation()
+ const [password, setPassword] = useState('')
+ const [confirmPassword, setConfirmPassword] = useState('')
+ const [passwordError, setPasswordError] = useState(null)
+ const [confirmPasswordError, setConfirmPasswordError] = useState(null)
+ const [email] = useState(route?.params.email)
+
+ const [mutate, { loading }] = useMutation(RESET_PASSWORD, {
+ onCompleted,
+ onError
+ })
+
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ function validateCredentials() {
+ let result = true
+ setPasswordError(null)
+ if (!password) {
+ setPasswordError(t('passErr1'))
+ result = false
+ } else {
+ const passRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{7,}$/
+ if (passRegex.test(password) !== true) {
+ setPasswordError(t('passErr2'))
+ result = false
+ }
+ }
+ if (!confirmPassword) {
+ setConfirmPasswordError(t('confirmPassRequired'))
+ result = false
+ }
+ return result
+ }
+
+ function onCompleted(data) {
+ FlashMessage({
+ message: t('passwordResetSuccessfully')
+ })
+ navigation.navigate('Login')
+ }
+
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ function resetYourPassword() {
+ if (validateCredentials()) {
+ if (password === confirmPassword) {
+ mutate({ variables: { password, email: email.toLowerCase().trim() } })
+ } else {
+ setConfirmPasswordError(t('passwordMustMatch'))
+ }
+ }
+ }
+
+ return {
+ email,
+ password,
+ setPassword,
+ confirmPassword,
+ confirmPasswordError,
+ setConfirmPassword,
+ passwordError,
+ resetPassword,
+ currentTheme,
+ themeContext,
+ resetYourPassword,
+ loading
+ }
+}
diff --git a/enatega-multivendor-app/src/screens/FullMap/FullMap.js b/enatega-multivendor-app/src/screens/FullMap/FullMap.js
new file mode 100644
index 0000000..674ea86
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/FullMap/FullMap.js
@@ -0,0 +1,109 @@
+import React, { useState, useContext, useLayoutEffect, useEffect } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
+import styles from './styles'
+import { theme } from '../../utils/themeColors'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { mapStyle } from '../../utils/mapStyle'
+import CustomMarker from '../../assets/SVG/imageComponents/CustomMarker'
+import analytics from '../../utils/analytics'
+import { useTranslation } from 'react-i18next'
+
+const LATITUDE = 33.7001019
+const LONGITUDE = 72.9735978
+const LATITUDE_DELTA = 0.0022
+const LONGITUDE_DELTA = 0.0021
+
+export default function FullMap(props) {
+ const Analytics = analytics()
+
+ const latitude = props.route.params.latitude ?? LATITUDE
+ const longitude = props.route.params.longitude ?? LONGITUDE
+ const { t } = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const inset = useSafeAreaInsets()
+
+ const [mapMargin, setMapMargin] = useState(1)
+ const [region, setRegion] = useState({
+ latitude: latitude,
+ latitudeDelta: LATITUDE_DELTA,
+ longitude: longitude,
+ longitudeDelta: LONGITUDE_DELTA
+ })
+ const backScreen = props.route.params.currentScreen ?? null
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_FORGOTPASSWORD)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('addAddress')
+ })
+ }, [props.navigation])
+
+ function setMargin() {
+ setMapMargin(0)
+ }
+
+ function onSave() {
+ if (backScreen === 'NewAddress') {
+ props.navigation.navigate('NewAddress', { regionChange: region })
+ } else if (backScreen === 'EditAddress') {
+ props.navigation.navigate('EditAddress', { regionChange: region })
+ }
+ }
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Save
+
+
+
+
+ >
+ )
+}
diff --git a/enatega-multivendor-app/src/screens/FullMap/styles.js b/enatega-multivendor-app/src/screens/FullMap/styles.js
new file mode 100644
index 0000000..892e2bd
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/FullMap/styles.js
@@ -0,0 +1,52 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ container: {
+ height: '92%'
+ },
+ fakeMarkerContainer: {
+ position: 'absolute',
+ top: scale(0),
+ bottom: scale(0),
+ left:scale(0),
+ right: scale(0),
+ marginTop: -scale(40),
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: 'transparent'
+ },
+ marker: {
+ height: scale(40),
+ width: scale(40),
+ marginTop: -scale(40)
+ },
+ button: {
+ position: 'absolute',
+ alignSelf: 'center',
+ justifyContent: 'center',
+ alignItems: 'center',
+ bottom: scale(0),
+ height: '8%',
+ width: '100%',
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent'
+ },
+ customMarkerContainer: {
+ width: scale(50),
+ height:scale(50),
+ position: 'absolute',
+ top: '46%',
+ left: '50%',
+ zIndex: 1,
+ translateX: scale(-25),
+ translateY: scale(-25),
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: scale(-25) }, { translateY: scale(-25) }]
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Help/Help.js b/enatega-multivendor-app/src/screens/Help/Help.js
new file mode 100644
index 0000000..164f303
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Help/Help.js
@@ -0,0 +1,140 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { View, TouchableOpacity, StatusBar } from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './styles'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import Analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+import { scale } from '../../utils/scaling'
+import { useTranslation } from 'react-i18next'
+
+const Help = props => {
+ const { t } = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const [links, setLinks] = useState([
+ {
+ title: t('titleProductPage'),
+ url: 'https://enatega.com/enatega-multi-vendor/'
+ },
+ {
+ title: t('titleDocs'),
+ url: 'https://enatega.com/multi-vendor-doc/'
+ },
+ {
+ title: t('titleBlog'),
+ url: 'https://enatega.com/blog/'
+ },
+ {
+ title: t('titleAboutUs'),
+ url: 'https://ninjascode.com/about-us/'
+ }
+ ])
+
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_HELP)
+ }
+ Track()
+ }, [])
+
+ useEffect(() => {
+ // Update translations when the language changes
+ setLinks([
+ {
+ title: t('titleProductPage'),
+ url:
+ 'https://enatega.com/enatega-multivendor-open-source-food-delivery-solution/'
+ },
+ {
+ title: t('titleDocs'),
+ url: 'https://enatega.com/multivendor-documentation/'
+ },
+ {
+ title: t('titleBlog'),
+ url:
+ 'https://enatega.com/blogs-enatega-open-source-food-delivery-solutions/'
+ },
+ {
+ title: t('titleAboutUs'),
+
+ url: 'https://ninjascode.com/'
+ }
+ ])
+ }, [])
+ 567
+ useEffect(() => {
+ props.navigation.setOptions({
+ headerTitle: t('titleHelp'),
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderWidth: 1,
+ borderColor: 'white'
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.themeBackground
+ },
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+
+ return (
+
+
+
+
+ {links.map(({ title, url }, index) => (
+
+ props.navigation.navigate('HelpBrowser', { title, url })
+ }
+ key={index}>
+
+
+ {title}{' '}
+
+
+
+
+ ))}
+
+
+
+ )
+}
+
+export default Help
diff --git a/enatega-multivendor-app/src/screens/Help/styles.js b/enatega-multivendor-app/src/screens/Help/styles.js
new file mode 100644
index 0000000..007d8d4
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Help/styles.js
@@ -0,0 +1,45 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ backButton: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ mainContainer: {
+
+ margin: scale(15),
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ },
+ itemContainer: {
+
+ margin: scale(4),
+ borderWidth: 1,
+ borderColor: props !== null ? props.mustard : '#d8d8d874',
+ borderRadius: scale(16),
+ backgroundColor: props !== null ? props.radioOuterColor : 'white',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ ...alignment.PTlarge,
+ ...alignment.PBlarge,
+ ...alignment.PLlarge,
+ ...alignment.PRlarge
+ },
+ backImageContainer: {
+ backgroundColor: props !== null ? props.white :'white',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/HelpBrowser/HelpBrowser.js b/enatega-multivendor-app/src/screens/HelpBrowser/HelpBrowser.js
new file mode 100644
index 0000000..c9b0582
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/HelpBrowser/HelpBrowser.js
@@ -0,0 +1,84 @@
+import React, { useState, useLayoutEffect, useEffect, useContext } from 'react'
+import { View, ActivityIndicator } from 'react-native'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { WebView } from 'react-native-webview'
+import { theme } from '../../utils/themeColors'
+import { HeaderBackButton } from '@react-navigation/elements'
+import Analytics from '../../utils/analytics'
+import { scale } from '../../utils/scaling'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+
+function HelpBrowser(props) {
+ const analytics = Analytics()
+
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { title, url } = props.route.params
+ const [loading, loadingSetter] = useState(true)
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_HELPBROWSER)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ headerTitle: title,
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderWidth: 1,
+ borderColor: 'white'
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.themeBackground
+ },
+
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+
+ return (
+
+ {
+ loadingSetter(false)
+ }}
+ />
+ {loading ? (
+
+ ) : null}
+
+ )
+}
+
+export default HelpBrowser
diff --git a/enatega-multivendor-app/src/screens/ItemDetail/ItemDetail.js b/enatega-multivendor-app/src/screens/ItemDetail/ItemDetail.js
new file mode 100644
index 0000000..91bd98b
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ItemDetail/ItemDetail.js
@@ -0,0 +1,393 @@
+import React, { useState, useContext, useLayoutEffect, useEffect } from 'react'
+import {
+ View,
+ ScrollView,
+ Alert,
+ StatusBar,
+ Platform,
+ KeyboardAvoidingView
+} from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import styles from './styles'
+import RadioComponent from '../../components/CustomizeComponents/RadioComponent/RadioComponent'
+import CheckComponent from '../../components/CustomizeComponents/CheckComponent/CheckComponent'
+import TitleComponent from '../../components/CustomizeComponents/TitleComponent/TitleComponent'
+import CartComponent from '../../components/CustomizeComponents/CartComponent/CartComponent'
+import HeadingComponent from '../../components/CustomizeComponents/HeadingComponent/HeadingComponent'
+import ImageHeader from '../../components/CustomizeComponents/ImageHeader/ImageHeader'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import UserContext from '../../context/User'
+import { useNavigation, useFocusEffect } from '@react-navigation/native'
+import { TextField } from 'react-native-material-textfield'
+import { scale } from '../../utils/scaling'
+import analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+import { useTranslation } from 'react-i18next'
+
+function ItemDetail(props) {
+ const Analytics = analytics()
+
+ const { food, addons, options, restaurant } = props.route.params
+ const navigation = useNavigation()
+ const { t } = useTranslation()
+
+ const [selectedVariation, setSelectedVariation] = useState({
+ ...food.variations[0],
+ addons: food.variations[0].addons.map(fa => {
+ const addon = addons.find(a => a._id === fa)
+ const addonOptions = addon.options.map(ao => {
+ return options.find(o => o._id === ao)
+ })
+ return {
+ ...addon,
+ options: addonOptions
+ }
+ })
+ })
+
+ const [selectedAddons, setSelectedAddons] = useState([])
+ const [specialInstructions, setSpecialInstructions] = useState('')
+ const {
+ restaurant: restaurantCart,
+ setCartRestaurant,
+ cart,
+ addQuantity,
+ addCartItem
+ } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const inset = useSafeAreaInsets()
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.white)
+ }
+ StatusBar.setBarStyle(currentTheme.white)
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.OPENED_RESTAURANT_ITEM, {
+ restaurantID: restaurant,
+ foodID: food._id,
+ foodName: food.title,
+ foodRestaurantName: food.restaurantName
+ })
+ }
+ Track()
+ })
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerRight: null,
+ title: t('titleCustomize'),
+ headerTitleContainerStyle: {
+ marginTop: scale(10),
+ paddingLeft: scale(15),
+ paddingRight: scale(15),
+ borderRadius: scale(10),
+ height: scale(35),
+ backgroundColor: currentTheme.customizeOpacityBtn,
+ borderWidth: 1,
+ borderColor: currentTheme.white
+ },
+ headerTransparent: true,
+ headerTitleAlign: 'center',
+
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [navigation])
+
+ function validateButton() {
+ if (!selectedVariation) return false
+ const validatedAddons = []
+ selectedVariation.addons.forEach(addon => {
+ const selected = selectedAddons.find(ad => ad._id === addon._id)
+ if (!selected && addon.quantityMinimum === 0) {
+ validatedAddons.push(false)
+ } else if (
+ selected &&
+ selected.options.length >= addon.quantityMinimum &&
+ selected.options.length <= addon.quantityMaximum
+ ) {
+ validatedAddons.push(false)
+ } else validatedAddons.push(true)
+ })
+ return validatedAddons.every(val => val === false)
+ }
+
+ async function onPressAddToCart(quantity) {
+ if (validateOrderItem()) {
+ Analytics.track(Analytics.events.ADD_TO_CART, {
+ title: food.title,
+ restaurantName: food.restaurantName,
+ variations: food.variations
+ })
+ if (!restaurantCart || restaurant === restaurantCart) {
+ await addToCart(quantity, restaurant !== restaurantCart)
+ } else if (food.restaurant !== restaurantCart) {
+ Alert.alert(
+ '',
+ 'By leaving this restaurant page, the items you`ve added to cart will be cleared',
+ [
+ {
+ text: 'Cancel',
+ onPress: () => console.log('Cancel Pressed'),
+ style: 'cancel'
+ },
+ {
+ text: 'OK',
+ onPress: async () => {
+ await addToCart(quantity, true)
+ }
+ }
+ ],
+ { cancelable: false }
+ )
+ }
+ }
+ }
+
+ const addToCart = async (quantity, clearFlag) => {
+ const addons = selectedAddons.map(addon => ({
+ ...addon,
+ options: addon.options.map(({ _id }) => ({
+ _id
+ }))
+ }))
+
+ const cartItem = clearFlag
+ ? null
+ : cart.find(cartItem => {
+ if (
+ cartItem._id === food._id &&
+ cartItem.variation._id === selectedVariation._id
+ ) {
+ if (cartItem.addons.length === addons.length) {
+ if (addons.length === 0) return true
+ const addonsResult = addons.every(newAddon => {
+ const cartAddon = cartItem.addons.find(
+ ad => ad._id === newAddon._id
+ )
+
+ if (!cartAddon) return false
+ const optionsResult = newAddon.options.every(newOption => {
+ const cartOption = cartAddon.options.find(
+ op => op._id === newOption._id
+ )
+
+ if (!cartOption) return false
+ return true
+ })
+
+ return optionsResult
+ })
+
+ return addonsResult
+ }
+ }
+ return false
+ })
+
+ if (!cartItem) {
+ await setCartRestaurant(restaurant)
+ await addCartItem(
+ food._id,
+ selectedVariation._id,
+ quantity,
+ addons,
+ clearFlag,
+ specialInstructions
+ )
+ } else {
+ await addQuantity(cartItem.key, quantity)
+ }
+ navigation.goBack()
+ }
+
+ function onSelectVariation(variation) {
+ setSelectedVariation({
+ ...variation,
+ addons: variation.addons.map(fa => {
+ const addon = addons.find(a => a._id === fa)
+ const addonOptions = addon.options.map(ao => {
+ return options.find(o => o._id === ao)
+ })
+ return {
+ ...addon,
+ options: addonOptions
+ }
+ })
+ })
+ }
+
+ async function onSelectOption(addon, option) {
+ const index = selectedAddons.findIndex(ad => ad._id === addon._id)
+ if (index > -1) {
+ if (addon.quantityMinimum === 1 && addon.quantityMaximum === 1) {
+ selectedAddons[index].options = [option]
+ } else {
+ const optionIndex = selectedAddons[index].options.findIndex(
+ opt => opt._id === option._id
+ )
+ if (optionIndex > -1) {
+ selectedAddons[index].options = selectedAddons[index].options.filter(
+ opt => opt._id !== option._id
+ )
+ } else {
+ selectedAddons[index].options.push(option)
+ }
+ if (!selectedAddons[index].options.length) {
+ selectedAddons.splice(index, 1)
+ }
+ }
+ } else {
+ selectedAddons.push({ _id: addon._id, options: [option] })
+ }
+ setSelectedAddons([...selectedAddons])
+ }
+
+ function calculatePrice() {
+ const variation = selectedVariation.price
+ let addons = 0
+ selectedAddons.forEach(addon => {
+ addons += addon.options.reduce((acc, option) => {
+ return acc + option.price
+ }, 0)
+ })
+ return (variation + addons).toFixed(2)
+ }
+
+ function validateOrderItem() {
+ const validatedAddons = selectedVariation.addons.map(addon => {
+ const selected = selectedAddons.find(ad => ad._id === addon._id)
+
+ if (!selected && addon.quantityMinimum === 0) {
+ addon.error = false
+ } else if (
+ selected &&
+ selected.options.length >= addon.quantityMinimum &&
+ selected.options.length <= addon.quantityMaximum
+ ) {
+ addon.error = false
+ } else addon.error = true
+ return addon
+ })
+ setSelectedVariation({ ...selectedVariation, addons: validatedAddons })
+ return validatedAddons.every(addon => addon.error === false)
+ }
+
+ function renderOption(addon) {
+ if (addon.quantityMinimum === 1 && addon.quantityMaximum === 1) {
+ return (
+
+ )
+ } else {
+ return (
+
+ )
+ }
+ }
+
+ return (
+ <>
+
+
+ {!!food.image && }
+
+
+
+
+ {food.variations.length > 1 && (
+ <>
+
+
+
+
+ >
+ )}
+ {selectedVariation.addons.map(addon => (
+
+
+ {renderOption(addon)}
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default ItemDetail
diff --git a/enatega-multivendor-app/src/screens/ItemDetail/styles.js b/enatega-multivendor-app/src/screens/ItemDetail/styles.js
new file mode 100644
index 0000000..9769def
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/ItemDetail/styles.js
@@ -0,0 +1,50 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ backgroundColor: props !== null ? props.themeBackground : '#ffff'
+ },
+ scrollViewContainer: {
+ width: '100%',
+ height: '100%'
+ },
+ subContainer: {
+ width: '90%',
+ alignSelf: 'center'
+ },
+ line: {
+ marginLeft: scale(10),
+ width: '95%',
+ height: StyleSheet.hairlineWidth,
+ ...alignment.MBsmall,
+ backgroundColor: props !== null ? props.black : 'black'
+ },
+ input: {
+ backgroundColor: props !== null ? props.radioOuterColor : 'black',
+ borderRadius: scale(10),
+ height: scale(50),
+ paddingLeft: scale(10),
+ textAlignVertical: 'center'
+ },
+ inputContainer: {
+ width: '90%',
+ alignSelf: 'center',
+ zIndex: scale(1),
+ height: scale(200),
+
+ },
+ backBtnContainer: {
+ backgroundColor:props !== null ? props.white : 'white',
+ borderRadius: scale(50),
+ width: scale(55),
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Login/Login.js b/enatega-multivendor-app/src/screens/Login/Login.js
new file mode 100644
index 0000000..b6e98f6
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Login/Login.js
@@ -0,0 +1,207 @@
+import React, { useLayoutEffect } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ ScrollView,
+ Platform,
+ Image,
+ TextInput
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './styles'
+import Spinner from '../../components/Spinner/Spinner'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { FontAwesome } from '@expo/vector-icons'
+import { useLogin } from './useLogin'
+import screenOptions from './screenOptions'
+import { useTranslation } from 'react-i18next'
+
+function Login(props) {
+ const {
+ email,
+ setEmail,
+ password,
+ setPassword,
+ emailError,
+ passwordError,
+ registeredEmail,
+ loading,
+ loginLoading,
+ loginAction,
+ currentTheme,
+ showPassword,
+ setShowPassword,
+ checkEmailExist
+ } = useLogin()
+ const { t } = useTranslation()
+ const handleEmailChange = e => {
+ setEmail(e)
+ }
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ backColor: currentTheme.themeBackground,
+ fontColor: currentTheme.fontMainColor,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {t('whatsYourEmail')}
+
+ {registeredEmail === false && (
+
+ {registeredEmail ? t('signInWithEmail') : t('checkAccount')}
+
+ )}
+
+
+
+
+ {emailError !== null && (
+
+ {emailError}
+
+ )}
+
+ {registeredEmail && (
+ <>
+
+ setPassword(e)}
+ />
+ setShowPassword(!showPassword)}
+ name={showPassword ? 'eye' : 'eye-slash'}
+ size={24}
+ color={
+ passwordError === null
+ ? currentTheme.startColor
+ : currentTheme.textErrorColor
+ }
+ style={[
+ styles().eyeBtn,
+ Platform.OS === 'android' && { marginTop: 40 }
+ ]}
+ />
+
+ {passwordError !== null && (
+
+
+ {passwordError}
+
+
+ )}
+
+ props.navigation.navigate('ForgotPassword', { email })
+ }>
+
+ {t('forgotPassword')}
+
+
+ >
+ )}
+
+
+ registeredEmail
+ ? loginAction(email, password)
+ : checkEmailExist(email)
+ }
+ activeOpacity={0.7}
+ style={styles().btn}>
+
+ {loading || loginLoading ? (
+
+ ) : (
+ t('continueBtn')
+ )}
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default Login
diff --git a/enatega-multivendor-app/src/screens/Login/screenOptions.js b/enatega-multivendor-app/src/screens/Login/screenOptions.js
new file mode 100644
index 0000000..4341545
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Login/screenOptions.js
@@ -0,0 +1,38 @@
+import React from 'react'
+import styles from './styles'
+import { Ionicons } from '@expo/vector-icons'
+
+const navigationOptions = props => {
+ return {
+ title: null,
+ // eslint-disable-next-line react/display-name
+ headerRight: () => (
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+ name="close"
+ size={24}
+ color="black"
+ style={styles().headerRightIcon}
+ />
+ ),
+ // eslint-disable-next-line react/display-name
+ headerLeft: () => (
+ props.navigation.goBack()}
+ name="chevron-back"
+ size={24}
+ color="black"
+ style={styles().headerLeftIcon}
+ />
+ ),
+ headerStyle: {
+ backgroundColor: props.backColor
+ }
+ }
+}
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/Login/styles.js b/enatega-multivendor-app/src/screens/Login/styles.js
new file mode 100644
index 0000000..9790f93
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Login/styles.js
@@ -0,0 +1,108 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ safeAreaViewStyles: {
+ flex: 1,
+ backgroundColor:
+ props !== null ? props.headerBackgroundTwo : 'transparent'
+ },
+ mainContainer: {
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.PTlarge
+ },
+ subContainer: {
+ width: '85%',
+ height: '100%'
+ },
+ alignItemsCenter: {
+ alignItems: 'center'
+ },
+ marginTop10: {
+ ...alignment.MTlarge
+ },
+ marginTop5: {
+ ...alignment.MTmedium
+ },
+ marginTop3: {
+ ...alignment.MTxSmall
+ },
+ loginBtn: {
+ width: '40%',
+ backgroundColor:
+ props !== null ? props.buttonBackgroundPink : 'transparent',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ appleBtn: {
+ width: '100%'
+ },
+ logoContainer: {
+ width: scale(120),
+ height: scale(130),
+ alignSelf: 'center'
+ },
+ form: {
+ width: '100%',
+ ...alignment.MTlarge
+ },
+ textField: {
+ borderColor: props !== null ? props.borderColor : '#efefef',
+ borderWidth: scale(1),
+ borderRadius: scale(10),
+ backgroundColor: props !== null ? props.white : '#fff',
+ padding: scale(14),
+ shadowColor: props !== null ? props.fontSecondColor : '#545454',
+ shadowOffset: {
+ width: scale(0),
+ height: scale(2)
+ },
+ shadowOpacity: 0.25,
+ shadowRadius: 3.84,
+ elevation: 5,
+ ...alignment.MTlarge
+ },
+ errorInput: {
+ backgroundColor: props !== null ? props.errorInputBack : '#F7E7E5',
+ borderColor: props !== null ? props.errorInputBorder : '#DB4A39'
+ },
+ error: {
+ ...alignment.MTxSmall
+ },
+ passwordField: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ passwordInput: {
+ width: '100%'
+ },
+ eyeBtn: {
+ marginTop: scale(32),
+ marginLeft: scale(-40),
+ elevation: scale(999)
+ },
+ btn: {
+ position: 'relative',
+ // marginTop: '55%',
+ width: '70%',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.black : '#000',
+ alignSelf: 'center',
+ padding: scale(15),
+ borderRadius: scale(10)
+ },
+ headerLeftIcon: {
+ ...alignment.PLsmall
+ },
+ headerRightIcon: {
+ ...alignment.PRsmall
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Login/useLogin.js b/enatega-multivendor-app/src/screens/Login/useLogin.js
new file mode 100644
index 0000000..1a826d4
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Login/useLogin.js
@@ -0,0 +1,205 @@
+import { useState, useContext } from 'react'
+import _ from 'lodash' // Import lodash
+import * as Device from 'expo-device'
+import { useMutation } from '@apollo/client'
+import gql from 'graphql-tag'
+import { login, emailExist } from '../../apollo/mutations'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import * as Notifications from 'expo-notifications'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import analytics from '../../utils/analytics'
+import AuthContext from '../../context/Auth'
+import { useNavigation } from '@react-navigation/native'
+import { useTranslation } from 'react-i18next'
+
+const LOGIN = gql`
+ ${login}
+`
+const EMAIL = gql`
+ ${emailExist}
+`
+
+export const useLogin = () => {
+ const Analytics = analytics()
+
+ const navigation = useNavigation()
+ const [email, setEmail] = useState('demo-customer@enatega.com')
+ const [password, setPassword] = useState('DemoCustomer55!')
+ const [showPassword, setShowPassword] = useState(true)
+ const [emailError, setEmailError] = useState(null)
+ const [passwordError, setPasswordError] = useState(null)
+ const [registeredEmail, setRegisteredEmail] = useState(false)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { setTokenAsync } = useContext(AuthContext)
+ const { t } = useTranslation()
+
+ const [EmailEixst, { loading }] = useMutation(EMAIL, {
+ onCompleted,
+ onError
+ })
+
+ const [LoginMutation, { loading: loginLoading }] = useMutation(LOGIN, {
+ onCompleted: onLoginCompleted,
+ onError: onLoginError
+ })
+
+ // Debounce the setEmail function
+ const debouncedSetEmail = _.debounce(text => {
+ setEmail(text.toLowerCase().trim())
+ }, 300) // Adjust the delay as needed (in milliseconds)
+
+ function validateCredentials() {
+ let result = true
+ setEmailError(null)
+ setPasswordError(null)
+ if (!email) {
+ setEmailError(t('emailErr1'))
+ result = false
+ } else {
+ const emailRegex = /^\w+([\\.-]?\w+)*@\w+([\\.-]?\w+)*(\.\w{2,3})+$/
+ if (emailRegex.test(email) !== true) {
+ setEmailError(t('emailErr2'))
+ result = false
+ }
+ }
+ if (!password && registeredEmail) {
+ setPasswordError(t('passErr1'))
+ result = false
+ }
+ return result
+ }
+
+ function onCompleted({ emailExist }) {
+ if (validateCredentials()) {
+ if (emailExist._id !== null) {
+ if (
+ emailExist.userType !== 'apple' &&
+ emailExist.userType !== 'google' &&
+ emailExist.userType !== 'facebook'
+ ) {
+ setRegisteredEmail(true)
+ } else {
+ FlashMessage({
+ message: `${t('emailAssociatedWith')} ${emailExist.userType} ${t(
+ 'continueWith'
+ )} ${emailExist.userType}`
+ })
+ navigation.navigate({ name: 'Main', merge: true })
+ }
+ } else {
+ navigation.navigate('Register', { email })
+ }
+ }
+ }
+
+ function onError(error) {
+ try {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ } catch (e) {
+ FlashMessage({
+ message: t('mailCheckingError')
+ })
+ }
+ }
+
+ async function onLoginCompleted(data) {
+ if (data.login.isActive == false) {
+ FlashMessage({ message: t('accountDeactivated') })
+ } else {
+ try {
+ await Analytics.identify(
+ {
+ userId: data.login.userId
+ },
+ data.login.userId
+ )
+ await Analytics.track(Analytics.events.USER_LOGGED_IN, {
+ userId: data.login.userId,
+ name: data.login.name,
+ email: data.login.email
+ })
+ setTokenAsync(data.login.token)
+ navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ } catch (e) {
+ console.log(e)
+ }
+ }
+ }
+
+ function onLoginError(error) {
+ try {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ } catch (e) {
+ FlashMessage({ message: t('errorInLoginError') })
+ }
+ }
+
+ async function loginAction(email, password) {
+ try {
+ if (validateCredentials()) {
+ let notificationToken = null
+ if (Device.isDevice) {
+ const {
+ status: existingStatus
+ } = await Notifications.getPermissionsAsync()
+ if (existingStatus === 'granted') {
+ notificationToken = (await Notifications.getExpoPushTokenAsync())
+ .data
+ }
+ }
+ LoginMutation({
+ variables: {
+ email,
+ password,
+ type: 'default',
+ notificationToken
+ }
+ })
+ }
+ } catch (e) {
+ FlashMessage({
+ message: t('errorWhileLogging')
+ })
+ } finally {
+ }
+ }
+
+ function checkEmailExist(email) {
+ EmailEixst({ variables: { email } })
+ }
+
+ function onBackButtonPressAndroid() {
+ navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ return true
+ }
+
+ return {
+ email,
+ setEmail: debouncedSetEmail, // Use the debounced setEmail
+ password,
+ setPassword,
+ showPassword,
+ setShowPassword,
+ emailError,
+ passwordError,
+ registeredEmail,
+ currentTheme,
+ loading,
+ loginLoading,
+ loginAction,
+ checkEmailExist,
+ onBackButtonPressAndroid
+ }
+}
diff --git a/enatega-multivendor-app/src/screens/Main/Main.js b/enatega-multivendor-app/src/screens/Main/Main.js
new file mode 100644
index 0000000..beb148c
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Main/Main.js
@@ -0,0 +1,472 @@
+/* eslint-disable react/display-name */
+import React, {
+ useRef,
+ useContext,
+ useLayoutEffect,
+ useState,
+ useEffect
+} from 'react'
+import {
+ View,
+ SafeAreaView,
+ TouchableOpacity,
+ Animated,
+ StatusBar,
+ Platform,
+ RefreshControl
+} from 'react-native'
+import { Modalize } from 'react-native-modalize'
+import {
+ MaterialIcons,
+ SimpleLineIcons,
+ AntDesign,
+ MaterialCommunityIcons
+} from '@expo/vector-icons'
+import { useQuery, useMutation } from '@apollo/client'
+import {
+ useCollapsibleSubHeader,
+ CollapsibleSubHeaderAnimator
+} from 'react-navigation-collapsible'
+import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder'
+import gql from 'graphql-tag'
+import { useLocation } from '../../ui/hooks'
+import Search from '../../components/Main/Search/Search'
+import Item from '../../components/Main/Item/Item'
+import UserContext from '../../context/User'
+import { restaurantList } from '../../apollo/queries'
+import { selectAddress } from '../../apollo/mutations'
+import { scale } from '../../utils/scaling'
+import styles from './styles'
+import TextError from '../../components/Text/TextError/TextError'
+import { useNavigation, useFocusEffect } from '@react-navigation/native'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import navigationOptions from './navigationOptions'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { LocationContext } from '../../context/Location'
+import { ActiveOrdersAndSections } from '../../components/Main/ActiveOrdersAndSections'
+import { alignment } from '../../utils/alignment'
+import Spinner from '../../components/Spinner/Spinner'
+import analytics from '../../utils/analytics'
+import MapSection from '../MapSection/index'
+import { useTranslation } from 'react-i18next'
+
+const RESTAURANTS = gql`
+ ${restaurantList}
+`
+const SELECT_ADDRESS = gql`
+ ${selectAddress}
+`
+
+function Main(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const [busy, setBusy] = useState(false)
+ const { loadingOrders, isLoggedIn, profile } = useContext(UserContext)
+ const { location, setLocation } = useContext(LocationContext)
+ const [search, setSearch] = useState('')
+ const modalRef = useRef(null)
+ const navigation = useNavigation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const { getCurrentLocation } = useLocation()
+
+ const { data, refetch, networkStatus, loading, error } = useQuery(
+ RESTAURANTS,
+ {
+ variables: {
+ longitude: location.longitude || null,
+ latitude: location.latitude || null,
+ ip: null
+ },
+ fetchPolicy: 'network-only'
+ }
+ )
+ const [mutate, { loading: mutationLoading }] = useMutation(SELECT_ADDRESS, {
+ onError
+ })
+
+ const {
+ onScroll /* Event handler */,
+ containerPaddingTop /* number */,
+ scrollIndicatorInsetTop /* number */,
+ translateY
+ } = useCollapsibleSubHeader()
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerColor)
+ }
+ StatusBar.setBarStyle(
+ themeContext.ThemeValue === 'Dark' ? 'light-content' : 'dark-content'
+ )
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_MAIN)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ navigation.setOptions(
+ navigationOptions({
+ headerMenuBackground: currentTheme.headerColor,
+ horizontalLine: currentTheme.headerColor,
+ fontMainColor: currentTheme.darkBgFont,
+ iconColorPink: currentTheme.black,
+ open: onOpen
+ })
+ )
+ }, [navigation, currentTheme])
+
+ const onOpen = () => {
+ const modal = modalRef.current
+ if (modal) {
+ modal.open()
+ }
+ }
+
+ function onError(error) {
+ console.log(error)
+ }
+
+ const addressIcons = {
+ Home: 'home',
+ Work: 'briefcase',
+ Other: 'location-pin'
+ }
+
+ const setAddressLocation = async address => {
+ setLocation({
+ _id: address._id,
+ label: address.label,
+ latitude: Number(address.location.coordinates[1]),
+ longitude: Number(address.location.coordinates[0]),
+ deliveryAddress: address.deliveryAddress,
+ details: address.details
+ })
+ mutate({ variables: { id: address._id } })
+ modalRef.current.close()
+ }
+
+ const setCurrentLocation = async () => {
+ setBusy(true)
+ const { error, coords } = await getCurrentLocation()
+
+ const apiUrl = `https://nominatim.openstreetmap.org/reverse?format=json&lat=${coords.latitude}&lon=${coords.longitude}`
+ fetch(apiUrl)
+ .then(response => response.json())
+ .then(data => {
+ if (data.error) {
+ console.log('Reverse geocoding request failed:', data.error)
+ } else {
+ let address = data.display_name
+ if (address.length > 21) {
+ address = address.substring(0, 21) + '...'
+ }
+
+ if (error) navigation.navigate('SelectLocation')
+ else {
+ modalRef.current.close()
+ setLocation({
+ label: 'currentLocation',
+ latitude: coords.latitude,
+ longitude: coords.longitude,
+ deliveryAddress: address
+ })
+ setBusy(false)
+ }
+ console.log(address)
+ }
+ })
+ .catch(error => {
+ console.error('Error fetching reverse geocoding data:', error)
+ })
+ }
+
+ const modalHeader = () => (
+
+
+
+
+
+ {t('currentLocation')}
+
+
+
+ {location.label === 'currentLocation' && (
+
+ )}
+ {busy && (
+
+ )}
+
+
+ )
+
+ const emptyView = () => {
+ if (loading || mutationLoading || loadingOrders) return loadingScreen()
+ else {
+ return (
+
+
+ {t('noRestaurants')}
+
+
+ )
+ }
+ }
+
+ const modalFooter = () => (
+
+
+ {
+ if (isLoggedIn) {
+ navigation.navigate('NewAddress')
+ } else {
+ const modal = modalRef.current
+ modal?.close()
+ props.navigation.navigate({ name: 'CreateAccount' })
+ }
+ }}>
+
+
+
+ {t('addAddress')}
+
+
+
+
+
+ )
+
+ function loadingScreen() {
+ return (
+
+ {}} />
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+ (
+
+ )}
+ style={styles(currentTheme).placeHolderContainer}>
+
+
+
+
+ )
+ }
+
+ if (error) return
+
+ if (loading || mutationLoading || loadingOrders) return loadingScreen()
+
+ const { restaurants, sections } = data.nearByRestaurants
+
+ const searchRestaurants = searchText => {
+ const data = []
+ const regex = new RegExp(searchText, 'i')
+ restaurants.forEach(restaurant => {
+ const resultName = restaurant.name.search(regex)
+ if (resultName < 0) {
+ const resultCatFoods = restaurant.categories.some(category => {
+ const result = category.title.search(regex)
+ if (result < 0) {
+ const result = category.foods.some(food => {
+ const result = food.title.search(regex)
+ return result > -1
+ })
+ return result
+ }
+ return true
+ })
+ if (!resultCatFoods) {
+ const resultOptions = restaurant.options.some(option => {
+ const result = option.title.search(regex)
+ return result > -1
+ })
+ if (!resultOptions) {
+ const resultAddons = restaurant.addons.some(addon => {
+ const result = addon.title.search(regex)
+ return result > -1
+ })
+ if (!resultAddons) return
+ }
+ }
+ }
+ data.push(restaurant)
+ })
+ return data
+ }
+
+ // Flatten the array. That is important for data sequence
+ const restaurantSections = sections.map(sec => ({
+ ...sec,
+ restaurants: sec.restaurants
+ .map(id => restaurants.filter(res => res._id === id))
+ .flat()
+ }))
+
+ return (
+ <>
+
+
+
+
+
+
+ )
+ }
+ ListEmptyComponent={emptyView()}
+ keyExtractor={(item, index) => index.toString()}
+ refreshControl={
+ {
+ if (networkStatus === 7) {
+ refetch()
+ }
+ }}
+ />
+ }
+ data={search ? searchRestaurants(search) : restaurants}
+ renderItem={({ item }) => }
+ />
+
+
+
+
+
+
+
+
+ item._id,
+ renderItem: ({ item: address }) => (
+
+ setAddressLocation(address)}>
+
+
+
+ {t(address.label)}
+
+
+
+ {address.deliveryAddress}
+
+
+
+
+ {address._id === location?._id &&
+ ![t('currentLocation'), t('selectedLocation')].includes(
+ location.label
+ ) && (
+
+ )}
+
+
+ )
+ }}>
+
+
+ >
+ )
+}
+
+export default Main
diff --git a/enatega-multivendor-app/src/screens/Main/navigationOptions.js b/enatega-multivendor-app/src/screens/Main/navigationOptions.js
new file mode 100644
index 0000000..2945d8a
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Main/navigationOptions.js
@@ -0,0 +1,32 @@
+/* eslint-disable react/display-name */
+import React, { useContext, useEffect } from 'react'
+import { LeftButton } from '../../components/Header/HeaderIcons/HeaderIcons'
+import SelectedLocation from '../../components/Main/Location/Location'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+
+const navigationOptions = props => ({
+ headerStyle: {
+ backgroundColor: props != null ? props.headerMenuBackground : 'white',
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerTitleStyle: {
+ color: props.fontMainColor
+ },
+ headerTitleContainerStyle: {
+ alignItems: 'flex-start',
+ ...alignment.MLxSmall
+ },
+ headerTitleAlign: 'left',
+ headerLeft: () => ,
+ headerTitle: headerProp => (
+ props.open()}
+ linkColor={props.fontMainColor}
+ />
+ )
+})
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/Main/styles.js b/enatega-multivendor-app/src/screens/Main/styles.js
new file mode 100644
index 0000000..371d35e
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Main/styles.js
@@ -0,0 +1,106 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ screenBackground: {
+ backgroundColor: props != null ? props.themeBackground : '#FFF'
+ },
+ mainContentContainer: {
+ width: '100%',
+ height: '100%',
+ alignSelf: 'center'
+ },
+
+ ML20: {
+ ...alignment.MLlarge
+ },
+ PB10: {
+ ...alignment.MBsmall
+ },
+ mL5p: {
+ ...alignment.MLsmall
+ },
+ addressbtn: {
+ backgroundColor: props != null ? props.lightHorizontalLine : '#f0f0f0',
+ marginLeft: scale(10),
+ marginRight: scale(10),
+ marginBottom: scale(10),
+ borderRadius: scale(10),
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ padding: scale(5),
+ ...alignment.PLmedium,
+ ...alignment.PRmedium
+ },
+ addressContainer: {
+ width: '100%',
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+ addressSubContainer: {
+ width: '90%',
+ alignSelf: 'center',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ content: {
+ ...alignment.PTlarge
+ },
+ modal: {
+ backgroundColor: props != null ? props.cartContainer : '#FFF',
+ paddingTop: scale(10),
+ borderTopEndRadius: scale(20),
+ borderTopStartRadius: scale(20),
+
+ shadowOpacity: 0
+ },
+ addressTextContainer: {
+ ...alignment.PLlarge,
+ ...alignment.PRlarge,
+ ...alignment.PTxSmall
+ },
+ addressTick: {
+ width: '10%',
+ justifyContent: 'center',
+ alignItems: 'flex-start',
+ marginRight: scale(5)
+ },
+ overlay: {
+ backgroundColor:
+ props != null ? props.backgroundColor2 : 'rgba(0, 0, 0, 0.5)'
+ },
+ handle: {
+ width: scale(150),
+ backgroundColor: props != null ? props.backgroundColor : 'transparent'
+ },
+ relative: {
+ position: 'relative'
+ },
+ placeHolderContainer: {
+ backgroundColor: props != null ? props.cartContainer : '#B8B8B8',
+ borderRadius: scale(3),
+ elevation: scale(3),
+ marginBottom: scale(12),
+ padding: scale(12)
+ },
+ height200: {
+ height: scale(200)
+ },
+ placeHolderFadeColor: {
+ backgroundColor: props != null ? props.fontSecondColor : '#B8B8B8'
+ },
+ emptyViewContainer: {
+ width: '100%',
+ height: verticalScale(40),
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/MapSection/index.js b/enatega-multivendor-app/src/screens/MapSection/index.js
new file mode 100644
index 0000000..fadb8d0
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/MapSection/index.js
@@ -0,0 +1,64 @@
+import React from 'react'
+import MapView, { Marker, PROVIDER_GOOGLE, Callout } from 'react-native-maps'
+import { mapStyle } from '../../utils/mapStyle'
+import styles from './styles'
+import { Image, View, Text } from 'react-native'
+import { useNavigation } from '@react-navigation/native'
+import { scale } from '../../utils/scaling'
+
+export default function MapSection({ location, restaurants }) {
+ const navigation = useNavigation()
+ return (
+
+
+
+
+ {restaurants &&
+ restaurants.map((rest, index) => {
+ const coord = {
+ latitude: parseFloat(rest.location.coordinates[1]),
+ longitude: parseFloat(rest.location.coordinates[0])
+ }
+ return (
+ {
+ navigation.navigate('Restaurant', { ...rest })
+ }}
+ style={{
+ flex: 1,
+ flexDirection: 'column',
+ alignItems: 'center'
+ }}>
+
+
+ {rest.name}
+
+
+ )
+ })}
+
+ )
+}
diff --git a/enatega-multivendor-app/src/screens/MapSection/map.callout.js b/enatega-multivendor-app/src/screens/MapSection/map.callout.js
new file mode 100644
index 0000000..b301732
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/MapSection/map.callout.js
@@ -0,0 +1,9 @@
+import React from 'react'
+import { Text, View, Image, Platform } from 'react-native'
+export const MapCallout = props => {
+ return (
+
+ Open {props.rest.name}
+
+ )
+}
diff --git a/enatega-multivendor-app/src/screens/MapSection/styles.js b/enatega-multivendor-app/src/screens/MapSection/styles.js
new file mode 100644
index 0000000..3118295
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/MapSection/styles.js
@@ -0,0 +1,13 @@
+import { StyleSheet, Dimensions } from 'react-native'
+const { height, width } = Dimensions.get('window')
+import { scale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ map: {
+ width: width,
+ height: height * 0.3,
+ marginTop: scale(-30)
+ },
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/MyOrders/MyOrders.js b/enatega-multivendor-app/src/screens/MyOrders/MyOrders.js
new file mode 100644
index 0000000..6e0f9c5
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/MyOrders/MyOrders.js
@@ -0,0 +1,287 @@
+import React, { useContext, useEffect, useLayoutEffect } from 'react'
+import {
+ View,
+ FlatList,
+ TouchableOpacity,
+ StatusBar,
+ Platform,
+ Image
+} from 'react-native'
+import { Entypo } from '@expo/vector-icons'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import ActiveOrders from '../../components/MyOrders/ActiveOrders'
+import Spinner from '../../components/Spinner/Spinner'
+import ConfigurationContext from '../../context/Configuration'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import styles from './style'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import TextError from '../../components/Text/TextError/TextError'
+import { alignment } from '../../utils/alignment'
+import screenOptions from './screenOptions'
+import { useFocusEffect } from '@react-navigation/native'
+import SearchFood from '../../assets/SVG/imageComponents/SearchFood'
+import { scale } from '../../utils/scaling'
+import Analytics from '../../utils/analytics'
+import OrdersContext from '../../context/Orders'
+import { HeaderBackButton } from '@react-navigation/elements'
+import {useTranslation} from 'react-i18next'
+
+
+const orderStatusActive = ['PENDING', 'PICKED', 'ACCEPTED', 'ASSIGNED']
+const orderStatusInactive = ['DELIVERED', 'COMPLETED']
+
+function MyOrders(props) {
+ const analytics = Analytics()
+
+ const configuration = useContext(ConfigurationContext)
+ const {t} = useTranslation()
+ const {
+ orders,
+ loadingOrders,
+ errorOrders,
+ reFetchOrders,
+ fetchMoreOrdersFunc,
+ networkStatusOrders
+ } = useContext(OrdersContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const inset = useSafeAreaInsets()
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_MYORDERS)
+ }
+ Track()
+ }, [])
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.themeBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions([currentTheme.headerText, currentTheme.darkBgFont])
+ )
+ }, [props.navigation])
+
+ const getItems = items => {
+ return items
+ .map(
+ item =>
+ `${item.quantity}x ${item.title}${
+ item.variation.title ? `(${item.variation.title})` : ''
+ }`
+ )
+ .join('\n')
+ }
+
+ function emptyView() {
+ if (loadingOrders) return
+ if (errorOrders) return
+ else {
+ const hasActiveOrders =
+ orders.filter(o => orderStatusActive.includes(o.orderStatus)).length > 0
+
+ const hasPastOrders =
+ orders.filter(o => orderStatusInactive.includes(o.orderStatus)).length >
+ 0
+ if (hasActiveOrders || hasPastOrders) return null
+ return (
+
+
+
+
+
+
+ {t('unReadOrders')}
+
+
+ {t('dontHaveAnyOrderYet')}
+
+
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }>
+
+ {t('BrowseRESTAURANTS')}
+
+
+
+ )
+ }
+ }
+
+ return (
+ <>
+ orderStatusInactive.includes(o.orderStatus))
+ }
+ showsVerticalScrollIndicator={false}
+ style={styles(currentTheme).container}
+ contentContainerStyle={styles(currentTheme).contentContainer}
+ ListEmptyComponent={emptyView()}
+ ListHeaderComponent={
+ orderStatusActive.includes(o.orderStatus))
+ .length > 0
+ }
+ showPastHeader={
+ orders.filter(o => orderStatusInactive.includes(o.orderStatus))
+ .length > 0
+ }
+ navigation={props.navigation}
+ activeOrders={orders.filter(o =>
+ orderStatusActive.includes(o.orderStatus)
+ )}
+ loading={loadingOrders}
+ error={errorOrders}
+ />
+ }
+ keyExtractor={item => item._id}
+ refreshing={networkStatusOrders === 4}
+ onRefresh={() => networkStatusOrders === 7 && reFetchOrders()}
+ renderItem={({ item }) => (
+
+ props.navigation.navigate('OrderDetail', {
+ _id: item._id,
+ currencySymbol: configuration.currencySymbol,
+ restaurant: item.restaurant,
+ user: item.user
+ })
+ }>
+
+
+
+
+
+ {' '}
+ {item.restaurant.name}
+
+
+ {' '}
+ {new Date(item.createdAt).toDateString()}
+
+
+ {' '}
+ {getItems(item.items)}
+
+
+ {!item.review && (
+
+ props.navigation.navigate('OrderDetail', {
+ _id: item._id,
+ currencySymbol: configuration.currencySymbol,
+ restaurant: item.restaurant,
+ user: item.user
+ })
+ }>
+
+ {' '}
+ {t('RateOrder')}
+
+
+ )}
+
+ props.navigation.navigate('Reorder', { item })
+ }>
+
+ {' '}
+ {t('reOrder')}
+
+
+
+
+
+
+
+ {' '}
+ {configuration.currencySymbol}
+ {parseFloat(item.orderAmount).toFixed(2)}
+
+
+
+
+ )}
+ onEndReached={fetchMoreOrdersFunc}
+ />
+
+ >
+ )
+}
+
+export default MyOrders
diff --git a/enatega-multivendor-app/src/screens/MyOrders/screenOptions.js b/enatega-multivendor-app/src/screens/MyOrders/screenOptions.js
new file mode 100644
index 0000000..8c0b359
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/MyOrders/screenOptions.js
@@ -0,0 +1,47 @@
+import i18next from '../../../i18next'
+import { BackButton } from '../../components/Header/HeaderIcons/HeaderIcons'
+import { scale } from '../../utils/scaling'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { View } from 'react-native'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+import { StatusBar } from 'react-native'
+import { useFocusEffect } from '@react-navigation/native'
+import styles from './style'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { useContext } from 'react'
+
+const navigationOptions = headerText => ({
+ headerTitle: i18next.t('titleOrders'),
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: 'black',
+ borderWidth: 1,
+ borderColor: 'white'
+ },
+ headerStyle: {
+ backgroundColor: headerText
+ },
+
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+})
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/MyOrders/style.js b/enatega-multivendor-app/src/screens/MyOrders/style.js
new file mode 100644
index 0000000..672a050
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/MyOrders/style.js
@@ -0,0 +1,128 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ safeAreaViewStyles: {
+ flex: 1,
+ backgroundColor: props !== null ? props.headerBackground : 'transparent'
+ },
+ container: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ contentContainer: {
+ flexGrow: 1,
+ ...alignment.PBsmall,
+
+ },
+ subContainerImage: {
+ flex: 1,
+ justifyContent: 'center',
+ alignContent: 'center',
+ ...alignment.PBlarge
+ },
+ imageContainer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.MBxSmall
+ },
+ image: {
+ width: scale(130),
+ height: scale(130)
+ },
+ descriptionEmpty: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.Plarge
+ },
+ emptyButton: {
+ width: '85%',
+ padding: scale(10),
+ backgroundColor: props !== null ? props.buttonBackground : 'grey',
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center',
+ borderRadius: scale(10)
+ },
+ subContainer: {
+ flex: 1,
+ backgroundColor: props !== null ? props.cartContainer : '#FFF',
+ borderRadius: scale(10),
+ elevation: 3,
+ shadowColor: 'black',
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(1)
+ },
+ shadowOpacity: 0.5,
+ shadowRadius: verticalScale(1),
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ ...alignment.MRsmall,
+ ...alignment.MLsmall,
+ ...alignment.MTsmall,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall,
+ ...alignment.PRsmall,
+ ...alignment.PLxSmall
+ },
+ restaurantImage: {
+ height: '100%',
+ width: '28%',
+ borderRadius: 10
+ },
+ textContainer: {
+ width: '58%',
+ ...alignment.PTsmall,
+ //...alignment.PBlarge,
+ ...alignment.PLsmall
+ },
+ subContainerLeft: {
+ width: '100%'
+ },
+ subContainerRight: {
+ ...alignment.PTsmall,
+ width: '15%',
+ justifyContent: 'space-between'
+ },
+ subContainerButton: {
+ backgroundColor: props !== null ? props.buttonBackground : 'grey',
+ ...alignment.MTxSmall,
+ borderRadius: 10,
+ width: scale(80),
+ height: verticalScale(25),
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ subContainerReviewButton: {
+ backgroundColor: props !== null ? props.secondaryBackground : 'grey',
+ ...alignment.MTxSmall,
+ borderRadius: 10,
+ width: scale(80),
+ height: verticalScale(25),
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ rateOrderContainer: {
+ display: 'flex',
+ flexDirection: 'row',
+ marginTop: scale(10),
+ marginBottom: scale(10),
+ justifyContent: 'space-around',
+ alignItems: 'flex-end'
+ },
+ backBtnContainer: {
+ backgroundColor: 'white',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/NewAddress/NewAddress.js b/enatega-multivendor-app/src/screens/NewAddress/NewAddress.js
new file mode 100644
index 0000000..9867a7a
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/NewAddress/NewAddress.js
@@ -0,0 +1,445 @@
+import React, {
+ useState,
+ useRef,
+ useEffect,
+ useContext,
+ useLayoutEffect
+} from 'react'
+import {
+ View,
+ TouchableOpacity,
+ Platform,
+ KeyboardAvoidingView,
+ ScrollView,
+ Image
+} from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import styles from './styles'
+import { OutlinedTextField } from 'react-native-material-textfield'
+import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
+import * as Location from 'expo-location'
+import gql from 'graphql-tag'
+import { scale } from '../../utils/scaling'
+import { createAddress } from '../../apollo/mutations'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { LocationContext } from '../../context/Location'
+import { mapStyle } from '../../utils/mapStyle'
+import SearchModal from '../../components/Address/SearchModal'
+import analytics from '../../utils/analytics'
+import { MaterialIcons, Entypo, Foundation } from '@expo/vector-icons'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { useTranslation } from 'react-i18next'
+
+const CREATE_ADDRESS = gql`
+ ${createAddress}
+`
+
+const labelValues = [
+ {
+ title: 'Home',
+ value: 'Home',
+ icon:
+ },
+ {
+ title: 'Work',
+ value: 'Work',
+ icon:
+ },
+ {
+ title: 'Other',
+ value: 'Other',
+ icon:
+ }
+]
+
+const LATITUDE = 33.7001019
+const LONGITUDE = 72.9735978
+const LATITUDE_DELTA = 0.0022
+const LONGITUDE_DELTA = 0.0021
+
+function NewAddress(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const addressRef = useRef()
+ const inset = useSafeAreaInsets()
+ const [modalVisible, setModalVisible] = useState(false)
+ const location = props.route.params ? props.route.params.location : null
+ const { setLocation } = useContext(LocationContext)
+ const [deliveryAddress, setDeliveryAddress] = useState('')
+ const [deliveryDetails, setDeliveryDetails] = useState('')
+ const [deliveryAddressError, setDeliveryAddressError] = useState('')
+ const [deliveryDetailsError, setDeliveryDetailsError] = useState('')
+ const [selectedLabel, setSelectedLabel] = useState(labelValues[0].value)
+ const [region, setRegion] = useState({
+ latitude: location ? location.latitude : LATITUDE,
+ latitudeDelta: LATITUDE_DELTA,
+ longitude: location ? location.longitude : LONGITUDE,
+ longitudeDelta: LONGITUDE_DELTA
+ })
+
+ const regionObj = props.route.params ? props.route.params.regionChange : null
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_NEWADDRESS)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('addAddress'),
+ headerStyle: {
+ backgroundColor: currentTheme.headerBackground,
+ borderBottomLeftRadius: 20,
+ borderBottomRightRadius: 20
+ },
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ marginLeft: '10%',
+ paddingLeft: scale(20),
+ paddingRight: scale(20),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderColor: currentTheme.white,
+ borderWidth: 1
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+
+ useEffect(() => {
+ if (!regionObj) return regionChange(region)
+ regionChange(regionObj)
+ }, [regionObj])
+
+ const [mutate, { loading }] = useMutation(CREATE_ADDRESS, {
+ onCompleted,
+ onError
+ })
+
+ function regionChange(region) {
+ Location.reverseGeocodeAsync({
+ latitude: region.latitude,
+ longitude: region.longitude
+ })
+ .then(data => {
+ if (data.length) {
+ const location = data[0]
+ const deliveryAddress = Object.keys(location)
+ .map(key => location[key])
+ .join(' ')
+ setDeliveryAddress(deliveryAddress)
+ setRegion(region)
+ addressRef.current.setValue(deliveryAddress)
+ } else console.log('location not recognized')
+ })
+ .catch(error => {
+ console.log('Error : regionChange', error)
+ })
+ }
+
+ function onCompleted(data) {
+ FlashMessage({
+ message: t('addressUpdated')
+ })
+ const address = data.createAddress.addresses.find(a => a.selected)
+ const cartAddress = props.route.params?.backScreen || null
+ setLocation({
+ ...address,
+ latitude: parseFloat(address.location.coordinates[1]),
+ longitude: parseFloat(address.location.coordinates[0])
+ })
+ if (cartAddress === 'Cart') {
+ props.navigation.navigate('Cart')
+ } else props.navigation.goBack()
+ }
+
+ function onError(error) {
+ console.log(error)
+ FlashMessage({
+ message: `${t('errorOccured')} ${error}`
+ })
+ }
+
+ const onOpen = () => {
+ setModalVisible(true)
+ }
+ const onClose = () => {
+ setModalVisible(false)
+ }
+
+ const onSubmit = (deliveryAddressGeo, coordinates) => {
+ setDeliveryAddress(deliveryAddressGeo)
+ addressRef.current.setValue(deliveryAddressGeo)
+ setRegion({
+ ...region,
+ longitude: coordinates.lng,
+ latitude: coordinates.lat
+ })
+ setModalVisible(false)
+ }
+
+ return (
+ <>
+
+
+
+ {
+ props.navigation.navigate('FullMap', {
+ latitude: region.latitude,
+ longitude: region.longitude,
+ currentScreen: 'NewAddress'
+ })
+ }}>
+
+
+
+
+
+
+
+
+
+
+
+ (
+
+
+
+ )}
+ maxLength={100}
+ textColor={currentTheme.darkBgFont}
+ baseColor={currentTheme.darkBgFont}
+ errorColor={currentTheme.textErrorColor}
+ tintColor={
+ !deliveryAddressError ? currentTheme.tagColor : 'red'
+ }
+ labelTextStyle={{
+ fontSize: scale(12),
+ paddingTop: scale(1)
+ }}
+ onChangeText={text => {
+ setDeliveryAddress(text)
+ }}
+ onBlur={() => {
+ setDeliveryAddressError(
+ !deliveryAddress.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ )
+ }}
+ />
+
+
+
+ {
+ setDeliveryDetails(text)
+ }}
+ onBlur={() => {
+ setDeliveryDetailsError(
+ !deliveryDetails.trim().length
+ ? 'Delivery details is required'
+ : null
+ )
+ }}
+ />
+
+
+
+
+
+
+ {t('addLabel')}
+
+
+
+ {labelValues.map((label, index) => (
+
+ {
+ setSelectedLabel(label.value)
+ }}>
+
+ {label.icon}
+
+
+
+ ))}
+
+
+
+ {labelValues.map((label, index) => (
+
+
+ {t(label.title)}
+
+
+ ))}
+
+
+
+
+
+ {
+ const deliveryAddressError = !deliveryAddress.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+ const deliveryDetailsError = !deliveryDetails.trim().length
+ ? t('DeliveryAddressIsRequired')
+ : null
+
+ setDeliveryAddressError(deliveryAddressError)
+ setDeliveryDetailsError(deliveryDetailsError)
+
+ if (
+ deliveryAddressError === null &&
+ deliveryDetailsError === null
+ ) {
+ mutate({
+ variables: {
+ addressInput: {
+ latitude: `${region.latitude}`,
+ longitude: `${region.longitude}`,
+ deliveryAddress: deliveryAddress.trim(),
+ details: deliveryDetails.trim(),
+ label: selectedLabel
+ }
+ }
+ })
+ }
+ }}
+ activeOpacity={0.5}
+ style={styles(currentTheme).saveBtnContainer}>
+
+ {t('saveContBtn')}
+
+
+
+
+
+
+ {modalVisible ? (
+
+ ) : null}
+
+
+ >
+ )
+}
+
+export default NewAddress
diff --git a/enatega-multivendor-app/src/screens/NewAddress/styles.js b/enatega-multivendor-app/src/screens/NewAddress/styles.js
new file mode 100644
index 0000000..748145f
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/NewAddress/styles.js
@@ -0,0 +1,151 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex:1,
+ backgroundColor: props !== null ? props.radioOuterColor : '#FFF'
+ },
+ subContainer: {
+ flex: 1,
+ flexGrow: 1,
+ alignItems: 'center',
+ borderTopLeftRadius: scale(30),
+ borderTopRightRadius: scale(30),
+ borderColor: props !== null ? props.gray : 'grey',
+ justifyContent: 'space-between',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ shadowColor: '#00000026',
+ shadowRadius: scale(11),
+
+ ...alignment.PTlarge
+ },
+ upperContainer: {
+ width: '90%',
+ alignItems: 'center'
+ },
+ horizontalLine: {
+ borderBottomColor: theme.Pink.tagColor,
+ borderBottomWidth: scale(1),
+ marginVertical: scale(10), // Adjust this value to control the spacing above and below the line
+ width: '90%',
+ alignSelf: 'center',
+ marginBottom: scale(30)
+ },
+ addressContainer: {
+ paddingTop: scale(0),
+ width: '100%',
+ ...alignment.Psmall
+ },
+ labelButtonContainer: {
+ ...alignment.PxSmall,
+ width: '80%'
+ },
+ labelTitleContainer: {
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+ buttonInline: {
+ width: '100%',
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ color: 'black'
+ },
+ textbuttonInline: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ color: 'black'
+ },
+ titlebuttonInline: {
+ paddingLeft: scale(10),
+ paddingRight: scale(12),
+ justifyContent: 'space-between',
+ ...alignment.PxSmall
+ },
+ labelButton: {
+ width: scale(60),
+ height: scale(60),
+ borderWidth: scale(1),
+ borderColor: props !== null ? props.tagColor : 'transparent',
+ borderRadius: scale(8),
+ justifyContent: 'center',
+ ...alignment.PxSmall,
+ backgroundColor: props !== null ? props.tagColor : 'transparent',
+ },
+ textlabelButton: {
+ justifyContent: 'center',
+ ...alignment.PxSmall,
+ backgroundColor: theme.Pink.tagColor
+ },
+ activeLabel: {
+ width: scale(60),
+ height: scale(60),
+ borderWidth: scale(1),
+ borderRadius: scale(8),
+ justifyContent: 'center',
+ color: props !== null ? props.tagColor : 'transparent',
+ borderColor: props !== null ? props.black : 'transparent',
+ backgroundColor: props !== null ? props.darkBgFont : 'transparent',
+ ...alignment.PxSmall
+ },
+ saveBtnContainer: {
+ width: '80%',
+ height: verticalScale(40),
+ borderRadius: scale(20),
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.buttonBackground : 'transparent',
+ alignSelf: 'center',
+ marginTop: scale(20),
+ marginBottom: scale(20)
+ },
+ fakeMarkerContainer: {
+ position: 'absolute',
+ top: scale(0),
+ bottom: scale(0),
+ left: scale(0),
+ right: scale(0),
+ marginLeft: scale(-24),
+ marginTop: scale(-58),
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: props !== null ? props.backgroundColor : 'transparent'
+ },
+ marker: {
+ height: scale(48),
+ width: scale(48)
+ },
+ mapContainer: {
+ height: '40%',
+ backgroundColor: props !== null ? props.backgroundColor : 'transparent'
+ },
+ geoLocation: {
+ flexDirection: 'row'
+ },
+ headerBackBtnContainer: {
+ backgroundColor: props !== null ? props.white : 'white',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ imageContainer: {
+ width: scale(50),
+ height: scale(50),
+ position: 'absolute',
+ top: '50%',
+ left: '50%',
+ zIndex: 1,
+ translateX: scale(-25),
+ translateY: scale(-25),
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: scale(-25) }, { translateY: scale(-25) }]
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/OrderDetail/OrderDetail.js b/enatega-multivendor-app/src/screens/OrderDetail/OrderDetail.js
new file mode 100644
index 0000000..94cf363
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/OrderDetail/OrderDetail.js
@@ -0,0 +1,159 @@
+import { TouchableOpacity } from 'react-native'
+import { MaterialIcons } from '@expo/vector-icons'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { scale } from '../../utils/scaling'
+import { alignment } from '../../utils/alignment'
+import styles from './styles'
+import React, { useContext, useEffect } from 'react'
+import { View, ScrollView, Dimensions } from 'react-native'
+import Spinner from '../../components/Spinner/Spinner'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import MapView, { Marker, PROVIDER_GOOGLE } from 'react-native-maps'
+import TextError from '../../components/Text/TextError/TextError'
+import ConfigurationContext from '../../context/Configuration'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import analytics from '../../utils/analytics'
+import Status from '../../components/OrderDetail/Status/Status'
+import Detail from '../../components/OrderDetail/Detail/Detail'
+import RestaurantMarker from '../../assets/SVG/restaurant-marker'
+import CustomerMarker from '../../assets/SVG/customer-marker'
+import TrackingRider from '../../components/OrderDetail/TrackingRider/TrackingRider'
+import OrdersContext from '../../context/Orders'
+import { mapStyle } from '../../utils/mapStyle'
+const { height: HEIGHT } = Dimensions.get('screen')
+import {useTranslation} from 'react-i18next'
+
+function OrderDetail(props) {
+ const Analytics = analytics()
+
+ const id = props.route.params ? props.route.params._id : null
+ const user = props.route.params ? props.route.params.user : null
+ const { loadingOrders, errorOrders, orders } = useContext(OrdersContext)
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const {t} = useTranslation()
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ORDER_DETAIL, {
+ orderId: id
+ })
+ }
+ Track()
+ }, [])
+
+ const order = orders.find(o => o._id === id)
+
+ if (loadingOrders || !order) return
+ if (errorOrders) return
+
+ const {
+ _id,
+ restaurant,
+ deliveryAddress,
+ items,
+ tipping: tip,
+ taxationAmount: tax,
+ orderAmount: total,
+ deliveryCharges
+ } = order
+ const subTotal = total - tip - tax - deliveryCharges
+
+ return (
+
+
+
+
+
+
+
+
+
+ {order.rider && }
+
+
+
+
+ {order.orderStatus === 'DELIVERED' && !order.review && (
+
+
+ props.navigation.navigate('RateAndReview', {
+ _id: order._id,
+ restaurant: restaurant,
+ user: user
+ })
+ }>
+
+
+ {t('writeAReview')}
+
+
+
+ )}
+
+
+
+ )
+}
+
+export default OrderDetail
diff --git a/enatega-multivendor-app/src/screens/OrderDetail/OrderDetailTemp.js b/enatega-multivendor-app/src/screens/OrderDetail/OrderDetailTemp.js
new file mode 100644
index 0000000..22bdd81
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/OrderDetail/OrderDetailTemp.js
@@ -0,0 +1,441 @@
+import React, { useContext, useEffect, useLayoutEffect, useState } from 'react'
+import {
+ ScrollView,
+ View,
+ TouchableOpacity,
+ StatusBar,
+ Platform
+} from 'react-native'
+import Spinner from '../../components/Spinner/Spinner'
+import { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import TextError from '../../components/Text/TextError/TextError'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import TrackingRider from '../../components/OrderDetail/TrackingRider/TrackingRider'
+import PickUpMap from '../../components/OrderDetail/PickUpMap'
+import UserContext from '../../context/User'
+import ConfigurationContext from '../../context/Configuration'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { scale } from '../../utils/scaling'
+import { theme } from '../../utils/themeColors'
+import { alignment } from '../../utils/alignment'
+import screenOptions from './screenOptions'
+import styles from './styles'
+import { useFocusEffect } from '@react-navigation/native'
+import analytics from '../../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+function calculatePrice(food) {
+ var foodPrice = food.variation.price
+ food.addons.forEach(addons => {
+ addons.options.forEach(addon => {
+ foodPrice += addon.price
+ })
+ })
+ return foodPrice
+}
+
+function OrderDetail(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const id = props.route.params ? props.route.params._id : null
+ const restaurant = props.route.params ? props.route.params.restaurant : null
+ const user = props.route.params ? props.route.params.user : null
+ const inset = useSafeAreaInsets()
+
+ const { loadingOrders, errorOrders, orders } = useContext(UserContext)
+ const configuration = useContext(ConfigurationContext)
+ const themeContext = useContext(ThemeContext)
+ const [remainingTime, setRemainingTime] = useState(0)
+ const currentTheme = theme[themeContext.ThemeValue]
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ORDER_DETAIL, {
+ orderId: id
+ })
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ props.navigation.setOptions(screenOptions(currentTheme.headerText))
+ }, [props.navigation])
+
+ let secTimer = null
+ useEffect(() => {
+ if (!loadingOrders && order) {
+ setRemainingTime(
+ Math.floor((order.expectedTime - Date.now()) / 1000 / 60)
+ )
+ if (!secTimer) {
+ secTimer = setInterval(() => {
+ setRemainingTime(
+ Math.floor((order.expectedTime - Date.now()) / 1000 / 60)
+ )
+ }, 60000)
+ }
+ }
+ return () => {
+ if (secTimer) clearInterval(secTimer)
+ }
+ }, [orders])
+
+ const order = orders.find(o => o._id === id)
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+
+ function timeConvert(n) {
+ var num = n
+ var hours = num / 60
+ var rhours = Math.floor(hours)
+ var minutes = (hours - rhours) * 60
+ var rminutes = Math.round(minutes)
+ return (rhours > 0 ? rhours + ' hr(s) ' + rminutes : rminutes) + ' min(s) '
+ }
+ function lastTime() {
+ const finalTime = parseInt(order.expectedTime) + remainingTime * 60000 // time in millisecond with remainingTime added
+ const time =
+ new Date(finalTime).toLocaleTimeString() +
+ ' - ' +
+ new Date().toDateString()
+ return time
+ }
+
+ function squareLine() {
+ return (
+
+
+
+
+
+ )
+ }
+ if (loadingOrders || !order) return
+ if (errorOrders) return
+ // const remainingTime = Math.floor((order.completionTime - Date.now()) / 1000 / 60)
+ return (
+ <>
+
+
+ {order.orderStatus === 'PICKED' && order.rider && (
+
+ )}
+
+
+
+ {t('thankYou')}!
+
+
+ Your order status is:
+
+
+ {order.orderStatus}
+
+ {['ACCEPTED'].includes(order.orderStatus) && order.isPickedUp && (
+
+ You can pick your order up at:
+
+ )}
+ {['ACCEPTED'].includes(order.orderStatus) && (
+
+ {remainingTime <= 0 ? lastTime() : timeConvert(remainingTime)}
+ {order.isPickedUp ? '' : 'remaining'}
+
+ )}
+
+ Order Detail
+
+ {squareLine()}
+
+ Your order from:
+
+
+ {order.restaurant.name}
+
+
+ Your order number:
+
+
+ {order.orderId}
+
+ {order.isPickedUp ? (
+ <>
+
+ Pickup address:
+
+
+ >
+ ) : (
+ <>
+
+ Delivery address:
+
+
+ {order.deliveryAddress.deliveryAddress}
+
+
+ {order.deliveryAddress.details}
+
+ >
+ )}
+ {squareLine()}
+
+
+ {order.items.map((item, index) => (
+
+
+ {item.quantity}x
+
+
+
+ {item.title}
+
+ {item.addons.map(addon =>
+ addon.options.map((option, index) => (
+
+ +{option.title}
+
+ ))
+ )}
+
+
+ {configuration.currencySymbol}
+ {parseFloat(calculatePrice(item)).toFixed(2)}
+
+
+ ))}
+
+
+
+ {t('subTotal')}
+
+
+ {configuration.currencySymbol}
+ {parseFloat(
+ order.orderAmount -
+ (order.isPickedUp ? 0 : order.deliveryCharges) -
+ order.tipping -
+ order.taxationAmount
+ ).toFixed(2)}
+
+
+
+
+ {t('tip')}
+
+
+ {configuration.currencySymbol}
+ {parseFloat(order.tipping).toFixed(2)}
+
+
+
+
+ {t('taxFee')}
+
+
+ {configuration.currencySymbol}
+ {parseFloat(order.taxationAmount).toFixed(2)}
+
+
+ {!order.isPickedUp && (
+
+
+ {t('delvieryCharges')}
+
+
+ {configuration.currencySymbol}
+ {parseFloat(order.deliveryCharges).toFixed(2)}
+
+
+ )}
+
+
+ {t('total')}
+
+
+ {configuration.currencySymbol}
+ {parseFloat(order.orderAmount).toFixed(2)}
+
+
+
+ {order.orderStatus === 'DELIVERED' && !order.review && (
+
+
+ {t('anySuggestion')}
+
+
+ {t('reviewRegardingOrder')}
+
+
+ props.navigation.navigate('RateAndReview', {
+ _id: order._id,
+ restaurant: restaurant,
+ user: user
+ })
+ }>
+
+
+ {t('writeAReview')}
+
+
+
+ )}
+
+
+ >
+ )
+}
+
+export default OrderDetail
diff --git a/enatega-multivendor-app/src/screens/OrderDetail/mapStyle.js b/enatega-multivendor-app/src/screens/OrderDetail/mapStyle.js
new file mode 100644
index 0000000..379c4a6
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/OrderDetail/mapStyle.js
@@ -0,0 +1,347 @@
+export const mapStyle = [
+ {
+ featureType: 'all',
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#ffffff'
+ }
+ ]
+ },
+ {
+ featureType: 'all',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ gamma: 0.01
+ },
+ {
+ lightness: 20
+ }
+ ]
+ },
+ {
+ featureType: 'all',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ saturation: -31
+ },
+ {
+ lightness: -33
+ },
+ {
+ weight: 2
+ },
+ {
+ gamma: 0.8
+ }
+ ]
+ },
+ {
+ featureType: 'all',
+ elementType: 'labels.icon',
+ stylers: [
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.locality',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#050505'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.locality',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ color: '#fef3f3'
+ },
+ {
+ weight: '3.01'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.neighborhood',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#0a0a0a'
+ },
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.neighborhood',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ color: '#fffbfb'
+ },
+ {
+ weight: '3.01'
+ },
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'landscape',
+ elementType: 'geometry',
+ stylers: [
+ {
+ lightness: 30
+ },
+ {
+ saturation: 30
+ }
+ ]
+ },
+ {
+ featureType: 'poi',
+ elementType: 'geometry',
+ stylers: [
+ {
+ saturation: 20
+ }
+ ]
+ },
+ {
+ featureType: 'poi.attraction',
+ elementType: 'labels.icon',
+ stylers: [
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'poi.park',
+ elementType: 'geometry',
+ stylers: [
+ {
+ lightness: 20
+ },
+ {
+ saturation: -20
+ }
+ ]
+ },
+ {
+ featureType: 'road',
+ elementType: 'geometry',
+ stylers: [
+ {
+ lightness: 10
+ },
+ {
+ saturation: -30
+ }
+ ]
+ },
+ {
+ featureType: 'road',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ saturation: 25
+ },
+ {
+ lightness: 25
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#a1a1a1'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ color: '#292929'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#202020'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#ffffff'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'labels.icon',
+ stylers: [
+ {
+ visibility: 'simplified'
+ },
+ {
+ hue: '#0006ff'
+ },
+ {
+ saturation: '-100'
+ },
+ {
+ lightness: '13'
+ },
+ {
+ gamma: '0.00'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#686868'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ visibility: 'off'
+ },
+ {
+ color: '#8d8d8d'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#353535'
+ },
+ {
+ lightness: '6'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#ffffff'
+ },
+ {
+ weight: '3.45'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ color: '#d0d0d0'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ lightness: '2'
+ },
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#999898'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#383838'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ color: '#faf8f8'
+ }
+ ]
+ },
+ {
+ featureType: 'transit.line',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#000000'
+ }
+ ]
+ },
+ {
+ featureType: 'water',
+ elementType: 'all',
+ stylers: [
+ {
+ lightness: -20
+ }
+ ]
+ }
+]
diff --git a/enatega-multivendor-app/src/screens/OrderDetail/screenOptions.js b/enatega-multivendor-app/src/screens/OrderDetail/screenOptions.js
new file mode 100644
index 0000000..5528e55
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/OrderDetail/screenOptions.js
@@ -0,0 +1,8 @@
+import { BackButton } from '../../components/Header/HeaderIcons/HeaderIcons'
+
+const navigationOptions = headerText => ({
+ headerRight: null,
+ headerBackImage: () =>
+ BackButton({ iconColor: headerText, icon: 'leftArrow' })
+})
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/OrderDetail/styles.js b/enatega-multivendor-app/src/screens/OrderDetail/styles.js
new file mode 100644
index 0000000..f230864
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/OrderDetail/styles.js
@@ -0,0 +1,54 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { verticalScale } from '../../utils/scaling'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ container: {
+ ...alignment.PLmedium,
+ ...alignment.PRmedium,
+ ...alignment.PTlarge,
+ ...alignment.PBlarge
+ },
+ marginBottom20: {
+ ...alignment.MBlarge
+ },
+ marginBottom10: {
+ ...alignment.MBsmall
+ },
+
+ orderReceipt: theme => ({
+ elevation: 1,
+ shadowColor: theme.shadow,
+ shadowOffset: {
+ width: 0,
+ height: -verticalScale(2)
+ },
+ shadowOpacity: 0.5,
+ shadowRadius: verticalScale(2),
+ borderRadius: 20,
+ backgroundColor: theme.white
+ }),
+
+ horizontalLine: {
+ borderBottomColor: props !== null ? props.horizontalLine : 'pink',
+ borderBottomWidth: StyleSheet.hairlineWidth
+ },
+ review: {
+ flexDirection: 'row',
+ justifyContent: 'space-around'
+ },
+ floatView: {
+ flexDirection: 'row',
+ padding: 7,
+ width: '60%',
+ alignItems: 'center',
+ borderRadius: 20,
+ backgroundColor: 'black',
+ margin: 15
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Otp/Email/EmailOtp.js b/enatega-multivendor-app/src/screens/Otp/Email/EmailOtp.js
new file mode 100644
index 0000000..6913b29
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/Email/EmailOtp.js
@@ -0,0 +1,136 @@
+import React, { useLayoutEffect } from 'react'
+import { View, TouchableOpacity, StatusBar, Image } from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from '../styles'
+import Spinner from '../../../components/Spinner/Spinner'
+import TextDefault from '../../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import screenOptions from '../screenOptions'
+import OTPInputView from '@twotalltotems/react-native-otp-input'
+import useEmailOtp from './useEmailOtp'
+import {useTranslation} from 'react-i18next'
+
+function EmailOtp(props) {
+ const {
+ otp,
+ setOtp,
+ otpError,
+ seconds,
+ loading,
+ updateUserLoading,
+ onCodeFilled,
+ resendOtp,
+ currentTheme,
+ themeContext
+ } = useEmailOtp()
+ const {t} = useTranslation()
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ iconColor: currentTheme.iconColorPink,
+ backColor: currentTheme.themeBackground,
+ fontColor: currentTheme.fontMainColor,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('verifyEmail')}
+
+
+ {t('otpSentToEmail')}
+
+
+
+ setOtp(code)}
+ onCodeFilled={code => {
+ onCodeFilled(code)
+ }}
+ editable
+ />
+ {otpError && (
+
+ {t('wrongOtp')}
+
+ )}
+
+
+ {loading || updateUserLoading ? (
+
+ ) : (
+ resendOtp()}>
+
+ {t('resendBtn')}
+
+
+ )}
+
+
+
+ {seconds === 0 ? '' : `Retry after ${seconds}s`}
+
+
+
+
+
+ )
+}
+export default EmailOtp
diff --git a/enatega-multivendor-app/src/screens/Otp/Email/useEmailOtp.js b/enatega-multivendor-app/src/screens/Otp/Email/useEmailOtp.js
new file mode 100644
index 0000000..49cc695
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/Email/useEmailOtp.js
@@ -0,0 +1,193 @@
+import { useState, useContext, useEffect, useRef } from 'react'
+import { sendOtpToEmail, createUser } from '../../../apollo/mutations'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { FlashMessage } from '../../../ui/FlashMessage/FlashMessage'
+import UserContext from '../../../context/User'
+import { useNavigation, useRoute } from '@react-navigation/native'
+import * as Device from 'expo-device'
+import * as Notifications from 'expo-notifications'
+import analytics from '../../../utils/analytics'
+import AuthContext from '../../../context/Auth'
+import { useTranslation } from 'react-i18next'
+import ConfigurationContext from '../../../context/Configuration'
+import useEnvVars from '../../../../environment'
+
+const SEND_OTP_TO_EMAIL = gql`
+ ${sendOtpToEmail}
+`
+const CREATEUSER = gql`
+ ${createUser}
+`
+const useEmailOtp = () => {
+ const { TEST_OTP } = useEnvVars()
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const navigation = useNavigation()
+ const configuration = useContext(ConfigurationContext)
+ const route = useRoute()
+ const [otp, setOtp] = useState('')
+ const [otpError, setOtpError] = useState(false)
+ const otpFrom = useRef(null)
+ const [seconds, setSeconds] = useState(5)
+ const [user] = useState(route.params?.user)
+ const { setTokenAsync } = useContext(AuthContext)
+ const { profile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ function onCompleted(data) {
+ FlashMessage({
+ message: t('otpSentToEmail')
+ })
+ }
+
+ function onCreateUserError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ async function onCreateUserCompleted(data) {
+ try {
+ FlashMessage({
+ message: t('accountCreated')
+ })
+ await Analytics.identify(
+ {
+ userId: data.createUser.userId
+ },
+ data.createUser.userId
+ )
+ await Analytics.track(Analytics.events.USER_CREATED_ACCOUNT, {
+ userId: data.createUser.userId,
+ name: data.createUser.name,
+ email: data.createUser.email,
+ type: 'email'
+ })
+ await setTokenAsync(data.createUser.token)
+ navigation.navigate('PhoneOtp')
+ } catch (e) {
+ console.log(e)
+ }
+ }
+
+ const [mutate, { loading }] = useMutation(SEND_OTP_TO_EMAIL, {
+ onCompleted,
+ onError
+ })
+
+ const [mutateUser, { loading: updateUserLoading }] = useMutation(CREATEUSER, {
+ onCompleted: onCreateUserCompleted,
+ onError: onCreateUserError
+ })
+
+ async function mutateRegister() {
+ let notificationToken = null
+ if (Device.isDevice) {
+ const { status } = await Notifications.requestPermissionsAsync()
+ if (status === 'granted') {
+ notificationToken = (await Notifications.getExpoPushTokenAsync()).data
+ }
+ }
+ mutateUser({
+ variables: {
+ phone: user.phone,
+ email: user.email,
+ password: user.password,
+ name: user.name,
+ picture: '',
+ notificationToken: notificationToken
+ }
+ })
+ }
+
+ const onCodeFilled = code => {
+ if (configuration.skipEmailVerification || code === otpFrom.current) {
+ mutateRegister()
+ } else {
+ setOtpError(true)
+ }
+ }
+
+ const resendOtp = () => {
+ otpFrom.current = Math.floor(100000 + Math.random() * 900000).toString()
+ mutate({
+ variables: { email: user.email, otp: otpFrom.current }
+ })
+ setSeconds(30)
+ }
+
+ useEffect(() => {
+ const myInterval = setInterval(() => {
+ if (seconds > 0) {
+ setSeconds(seconds - 1)
+ }
+ if (seconds === 0) {
+ clearInterval(myInterval)
+ }
+ }, 1000)
+ return () => {
+ clearInterval(myInterval)
+ }
+ })
+
+ useEffect(() => {
+ if (!configuration) return
+ if (!configuration.skipEmailVerification) {
+ otpFrom.current = Math.floor(100000 + Math.random() * 900000).toString()
+ mutate({ variables: { email: user.email, otp: otpFrom.current } })
+ }
+ }, [configuration])
+
+ useEffect(() => {
+ let timer = null
+ if (!configuration) return
+ if (configuration.skipEmailVerification) {
+ setOtp(TEST_OTP)
+ timer = setTimeout(() => {
+ onCodeFilled(TEST_OTP)
+ }, 3000)
+ }
+ return () => {
+ timer && clearTimeout(timer)
+ }
+ }, [configuration])
+
+ return {
+ otp,
+ setOtp,
+ otpError,
+ seconds,
+ profile,
+ loading,
+ updateUserLoading,
+ onCodeFilled,
+ resendOtp,
+ currentTheme,
+ themeContext
+ }
+}
+
+export default useEmailOtp
diff --git a/enatega-multivendor-app/src/screens/Otp/ForgotPassword/ForgetPasswordOtp.js b/enatega-multivendor-app/src/screens/Otp/ForgotPassword/ForgetPasswordOtp.js
new file mode 100644
index 0000000..0720aa6
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/ForgotPassword/ForgetPasswordOtp.js
@@ -0,0 +1,137 @@
+import React, { useLayoutEffect } from 'react'
+import { View, TouchableOpacity, StatusBar, Image } from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from '../styles'
+import Spinner from '../../../components/Spinner/Spinner'
+import TextDefault from '../../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import screenOptions from '../screenOptions'
+import OTPInputView from '@twotalltotems/react-native-otp-input'
+import { useForgotPasswordOtp } from './useForgotPasswordOtp'
+import {useTranslation} from 'react-i18next'
+
+
+function ForgotPasswordOtp(props) {
+ const {
+ otp,
+ setOtp,
+ otpError,
+ seconds,
+ currentTheme,
+ loading,
+ onCodeFilled,
+ themeContext,
+ resendOtp
+ } = useForgotPasswordOtp()
+
+ const {t} = useTranslation()
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ iconColor: currentTheme.iconColorPink,
+ backColor: currentTheme.themeBackground,
+ fontColor: currentTheme.fontMainColor,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('forgotPassword')}
+
+
+ {t('otpSentToEmail')}
+
+
+
+ setOtp(code)}
+ onCodeFilled={code => {
+ onCodeFilled(code)
+ }}
+ editable
+ />
+ {otpError && (
+
+ {t('wrongOtp')}
+
+ )}
+
+
+ resendOtp()}>
+
+ {loading ? (
+
+ ) : (
+ t('resendBtn')
+ )}
+
+
+
+
+
+ {seconds !== 0 ? `Retry after ${seconds}s` : ''}
+
+
+
+
+
+ )
+}
+export default ForgotPasswordOtp
diff --git a/enatega-multivendor-app/src/screens/Otp/ForgotPassword/useForgotPasswordOtp.js b/enatega-multivendor-app/src/screens/Otp/ForgotPassword/useForgotPasswordOtp.js
new file mode 100644
index 0000000..09935c1
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/ForgotPassword/useForgotPasswordOtp.js
@@ -0,0 +1,100 @@
+import { useState, useContext, useEffect, useRef } from 'react'
+import { forgotPassword } from '../../../apollo/mutations'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { FlashMessage } from '../../../ui/FlashMessage/FlashMessage'
+import { useRoute, useNavigation } from '@react-navigation/native'
+import {useTranslation} from 'react-i18next'
+
+const FORGOT_PASSWORD = gql`
+ ${forgotPassword}
+`
+
+export const useForgotPasswordOtp = () => {
+ const {t} = useTranslation()
+ const route = useRoute()
+ const navigation = useNavigation()
+ const [otp, setOtp] = useState('')
+ const [otpError, setOtpError] = useState(false)
+ const otpFrom = useRef(null)
+ const [email] = useState(route?.params.email)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const [seconds, setSeconds] = useState(30)
+
+ function onCompleted(data) {
+ FlashMessage({
+ message: t('otpResentToEmail')
+ })
+ }
+
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ const [mutate, { loading }] = useMutation(FORGOT_PASSWORD, {
+ onCompleted,
+ onError
+ })
+
+ const onCodeFilled = code => {
+ if (code === otpFrom.current) {
+ navigation.navigate('SetYourPassword', { email })
+ } else {
+ setOtpError(true)
+ }
+ }
+
+ const resendOtp = () => {
+ otpFrom.current = Math.floor(100000 + Math.random() * 900000).toString()
+ mutate({
+ variables: { email: email.toLowerCase().trim(), otp: otpFrom.current }
+ })
+ setSeconds(30)
+ }
+
+ useEffect(() => {
+ const myInterval = setInterval(() => {
+ if (seconds > 0) {
+ setSeconds(seconds - 1)
+ }
+ if (seconds === 0) {
+ clearInterval(myInterval)
+ }
+ }, 1000)
+ return () => {
+ clearInterval(myInterval)
+ }
+ })
+
+ useEffect(() => {
+ otpFrom.current = route?.params.otp
+ }, [])
+
+ return {
+ otp,
+ setOtp,
+ otpError,
+ setOtpError,
+ seconds,
+ setSeconds,
+ currentTheme,
+ mutate,
+ loading,
+ onCodeFilled,
+ email,
+ otpFrom,
+ themeContext,
+ resendOtp
+ }
+}
diff --git a/enatega-multivendor-app/src/screens/Otp/Phone/PhoneOtp.js b/enatega-multivendor-app/src/screens/Otp/Phone/PhoneOtp.js
new file mode 100644
index 0000000..2e2c301
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/Phone/PhoneOtp.js
@@ -0,0 +1,137 @@
+import React, { useLayoutEffect } from 'react'
+import { View, TouchableOpacity, StatusBar, Image } from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from '../styles'
+import Spinner from '../../../components/Spinner/Spinner'
+import TextDefault from '../../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import screenOptions from '../screenOptions'
+import OTPInputView from '@twotalltotems/react-native-otp-input'
+import usePhoneOtp from './usePhoneOtp'
+import { useTranslation } from 'react-i18next'
+
+function PhoneOtp(props) {
+ const {
+ otp,
+ setOtp,
+ otpError,
+ seconds,
+ loading,
+ updateUserLoading,
+ onCodeFilled,
+ resendOtp,
+ currentTheme,
+ themeContext
+ } = usePhoneOtp()
+
+ const { t } = useTranslation()
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ iconColor: currentTheme.iconColorPink,
+ backColor: currentTheme.themeBackground,
+ fontColor: currentTheme.fontMainColor,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('verifyPhone')}
+
+
+ {t('otpSentToPhone')}
+
+
+
+ setOtp(code)}
+ onCodeFilled={code => {
+ onCodeFilled(code)
+ }}
+ editable
+ />
+ {otpError && (
+
+ {t('wrongOtp')}
+
+ )}
+
+
+ {loading || updateUserLoading ? (
+
+ ) : (
+ resendOtp()}>
+
+ {t('resendBtn')}
+
+
+ )}
+
+
+
+ {seconds !== 0 ? `Retry after ${seconds}s` : ''}
+
+
+
+
+
+ )
+}
+export default PhoneOtp
diff --git a/enatega-multivendor-app/src/screens/Otp/Phone/usePhoneOtp.js b/enatega-multivendor-app/src/screens/Otp/Phone/usePhoneOtp.js
new file mode 100644
index 0000000..96f7500
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/Phone/usePhoneOtp.js
@@ -0,0 +1,159 @@
+import { useState, useContext, useEffect, useRef } from 'react'
+import { sendOtpToPhoneNumber, updateUser } from '../../../apollo/mutations'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+import { FlashMessage } from '../../../ui/FlashMessage/FlashMessage'
+import UserContext from '../../../context/User'
+import { useNavigation, useRoute } from '@react-navigation/native'
+
+import useEnvVars from '../../../../environment'
+
+import { useTranslation } from 'react-i18next'
+import ConfigurationContext from '../../../context/Configuration'
+
+const SEND_OTP_TO_PHONE = gql`
+ ${sendOtpToPhoneNumber}
+`
+const UPDATEUSER = gql`
+ ${updateUser}
+`
+
+const usePhoneOtp = () => {
+ const { TEST_OTP } = useEnvVars()
+ const { t } = useTranslation()
+ const navigation = useNavigation()
+ const configuration = useContext(ConfigurationContext)
+ const route = useRoute()
+ const [otp, setOtp] = useState('')
+ const [otpError, setOtpError] = useState(false)
+ const otpFrom = useRef(null)
+ const { profile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const [seconds, setSeconds] = useState(30)
+
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ function onCompleted(data) {
+ FlashMessage({
+ message: t('otpSentToPhone')
+ })
+ }
+
+ function onUpdateUserError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ function onUpdateUserCompleted(data) {
+ FlashMessage({
+ message: t('numberVerified')
+ })
+ route.params?.prevScreen
+ ? navigation.navigate(route.params.prevScreen)
+ : navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+
+ const [mutate, { loading }] = useMutation(SEND_OTP_TO_PHONE, {
+ onCompleted,
+ onError
+ })
+
+ const [mutateUser, { loading: updateUserLoading }] = useMutation(UPDATEUSER, {
+ onCompleted: onUpdateUserCompleted,
+ onError: onUpdateUserError
+ })
+
+ const onCodeFilled = code => {
+ if (configuration.skipMobileVerification || code === otpFrom.current || code === TEST_OTP) {
+ mutateUser({
+ variables: {
+ name: profile.name,
+ phone: profile.phone,
+ phoneIsVerified: true
+ }
+ })
+ } else {
+ setOtpError(true)
+ }
+ }
+
+ const resendOtp = () => {
+ otpFrom.current = Math.floor(100000 + Math.random() * 900000).toString()
+ mutate({ variables: { phone: profile.phone, otp: otpFrom.current } })
+ setSeconds(30)
+ }
+
+ useEffect(() => {
+ const myInterval = setInterval(() => {
+ if (seconds > 0) {
+ setSeconds(seconds - 1)
+ }
+ if (seconds === 0) {
+ clearInterval(myInterval)
+ }
+ }, 1000)
+ return () => {
+ clearInterval(myInterval)
+ }
+ })
+
+ useEffect(() => {
+ if (!configuration) return
+ if (!configuration.skipMobileVerification) {
+ otpFrom.current = Math.floor(100000 + Math.random() * 900000).toString()
+ mutate({ variables: { phone: profile?.phone, otp: otpFrom.current } })
+ }
+ }, [configuration])
+
+ useEffect(() => {
+ let timer = null
+ if (!configuration || !profile) return
+ if (configuration.skipMobileVerification) {
+ setOtp(TEST_OTP)
+ timer = setTimeout(() => {
+ onCodeFilled(TEST_OTP)
+ }, 3000)
+ }
+
+ return () => { timer && clearTimeout(timer) }
+ }, [configuration, profile])
+
+ return {
+ otp,
+ setOtp,
+ otpError,
+ seconds,
+ profile,
+ loading,
+ updateUserLoading,
+ onCodeFilled,
+ resendOtp,
+ currentTheme,
+ themeContext
+ }
+}
+
+export default usePhoneOtp
diff --git a/enatega-multivendor-app/src/screens/Otp/screenOptions.js b/enatega-multivendor-app/src/screens/Otp/screenOptions.js
new file mode 100644
index 0000000..996ab92
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/screenOptions.js
@@ -0,0 +1,30 @@
+import React from 'react'
+import styles from './styles'
+import { Ionicons } from '@expo/vector-icons'
+
+const navigationOptions = props => {
+ return {
+ title: null,
+ // eslint-disable-next-line react/display-name
+ headerRight: () => (
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+ name="close"
+ size={24}
+ color="black"
+ style={styles().headerRightIcon}
+ />
+ ),
+ // eslint-disable-next-line react/display-name
+ headerLeft: null,
+ headerStyle: {
+ backgroundColor: props.backColor
+ }
+ }
+}
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/Otp/styles.js b/enatega-multivendor-app/src/screens/Otp/styles.js
new file mode 100644
index 0000000..eefefe2
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Otp/styles.js
@@ -0,0 +1,82 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ safeAreaViewStyles: {
+ flex: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ mainContainer: {
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.MTlarge
+ },
+ subContainer: {
+ width: '85%',
+ height: '100%'
+ },
+ logoContainer: {
+ width: 120,
+ height: 130,
+ alignSelf: 'center'
+ },
+ marginTop3: {
+ ...alignment.MTxSmall
+ },
+ marginTop5: {
+ ...alignment.MTsmall
+ },
+ marginTop10: {
+ ...alignment.MTlarge
+ },
+ alignItemsCenter: {
+ alignItems: 'center'
+ },
+ errorInput: {
+ backgroundColor: props !== null ? props.errorInputBack : '#F7E7E5',
+ borderColor: props !== null ? props.errorInputBorder : '#DB4A39'
+ },
+ btn: {
+ width: '70%',
+ alignItems: 'center',
+ backgroundColor: '#000',
+ alignSelf: 'center',
+ padding: 15,
+ borderRadius: 10
+ },
+ otpInput: {
+ height: 70,
+ color: '#000',
+ ...alignment.MTlarge
+ },
+ error: {
+ ...alignment.MBlarge
+ },
+ otpBox: {
+ backgroundColor: '#fff',
+ color: '#000',
+ shadowColor: props !== null ? props.fontSecondColor : '#545454',
+ shadowOffset: {
+ width: 0,
+ height: 2
+ },
+ shadowOpacity: 0.1,
+ shadowRadius: 0.84,
+ elevation: 2
+ },
+ headerLeftIcon: {
+ ...alignment.PLsmall
+ },
+ headerRightIcon: {
+ ...alignment.PRsmall
+ },
+ disabledBtn: {
+ backgroundColor: props !== null ? props.iconColor : '#333333'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Payment/Payment.js b/enatega-multivendor-app/src/screens/Payment/Payment.js
new file mode 100644
index 0000000..98c8d66
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Payment/Payment.js
@@ -0,0 +1,152 @@
+import React, { useContext, useEffect, useLayoutEffect } from 'react'
+import { View, Image, TouchableOpacity } from 'react-native'
+import RadioButton from '../../ui/FdRadioBtn/RadioBtn'
+import styles from './styles'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { Entypo } from '@expo/vector-icons'
+import { scale } from '../../utils/scaling'
+import { useTranslation } from 'react-i18next'
+
+function Payment(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const { paymentMethod, coupon } = props.route.params
+ const inset = useSafeAreaInsets()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const CASH = [
+ {
+ payment: 'STRIPE',
+ label: t('creditCart'),
+ index: 0,
+ icon: require('../../assets/images/masterIcon.png'),
+ icon1: require('../../assets/images/visaIcon.png')
+ },
+ {
+ payment: 'PAYPAL',
+ label: t('paypal'),
+ index: 1,
+ icon: require('../../assets/images/paypal.png')
+ },
+ {
+ payment: 'COD',
+ label: t('cod'),
+ index: 2,
+ icon: require('../../assets/images/cashIcon.png')
+ }
+ ]
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('titlePayment'),
+ headerTitleAlign: 'center',
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ marginLeft: 0
+ },
+
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PAYMENT)
+ }
+ Track()
+ }, [])
+ function onSelectPayment(paymentMethod) {
+ props.navigation.navigate('Cart', { coupon, paymentMethod })
+ }
+ return (
+ <>
+
+
+ {CASH.map((item, index) => (
+ {
+ onSelectPayment(item)
+ }}>
+
+ {
+ onSelectPayment(item)
+ }}
+ />
+
+
+
+ {item.label}
+
+
+ {item.icon1 && (
+
+ )}
+
+
+
+
+ ))}
+
+
+ >
+ )
+}
+
+export default Payment
diff --git a/enatega-multivendor-app/src/screens/Payment/styles.js b/enatega-multivendor-app/src/screens/Payment/styles.js
new file mode 100644
index 0000000..4aa9f40
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Payment/styles.js
@@ -0,0 +1,67 @@
+import { scale, verticalScale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ pT20: {
+ ...alignment.PTmedium,
+ ...alignment.PBmedium,
+ ...alignment.PRmedium,
+ ...alignment.MTmedium,
+ backgroundColor: props != null? props.radioOuterColor : 'white',
+ borderRadius: scale(20)
+ },
+ paymentMethod: {
+ backgroundColor: theme.Pink.lightHorizontalLine,
+ borderRadius: scale(20),
+ padding: scale(10),
+ display: 'flex',
+ alignItems: 'center',
+ width: '80%',
+ justifyContent: 'space-between',
+ flexDirection: 'row'
+ },
+ mainContainer: {
+ backgroundColor: props != null? props.themeBackground : 'white',
+ borderBottomRightRadius: scale(35),
+ borderBottomLeftRadius: scale(35),
+ ...alignment.PTlarge,
+ ...alignment.PLsmall,
+ ...alignment.PRsmall,
+ paddingBottom: scale(25)
+ },
+ radioContainer: {
+ width: '15%',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ backButton: {
+ backgroundColor: theme.Pink.white,
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ radioGroup: {
+ flexDirection: 'row',
+ width: '100%',
+ alignItems: 'center',
+
+ },
+ iconContainer: {
+ width: '25%',
+ justifyContent: 'flex-end',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ iconStyle: {
+ height: verticalScale(20),
+ width: verticalScale(25)
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Paypal/Paypal.js b/enatega-multivendor-app/src/screens/Paypal/Paypal.js
new file mode 100644
index 0000000..adc9574
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Paypal/Paypal.js
@@ -0,0 +1,84 @@
+import React, { useState, useContext, useLayoutEffect, useEffect } from 'react'
+import { WebView } from 'react-native-webview'
+import { ActivityIndicator, View } from 'react-native'
+import gql from 'graphql-tag'
+import { myOrders } from '../../apollo/queries'
+
+import useEnvVars from '../../../environment'
+import { useApolloClient } from '@apollo/client'
+import UserContext from '../../context/User'
+import analytics from '../../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+const MYORDERS = gql`
+ ${myOrders}
+`
+
+function Paypal(props) {
+ const Analytics = analytics()
+
+ const { SERVER_URL } = useEnvVars()
+
+ const { t } = useTranslation()
+ const [loading, loadingSetter] = useState(true)
+ const { clearCart } = useContext(UserContext)
+ const client = useApolloClient()
+ const [_id] = useState(props.route.params._id ?? null)
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PAYPAL)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('paypalCheckout')
+ })
+ }, [props.navigation])
+
+ async function handleResponse(data) {
+ if (data.url.includes(SERVER_URL + 'paypal/success')) {
+ const result = await client.query({
+ query: MYORDERS,
+ fetchPolicy: 'network-only'
+ })
+ const order = result.data.orders.find(order => order.orderId === _id)
+ await clearCart()
+ props.navigation.reset({
+ routes: [
+ { name: 'Main' },
+ {
+ name: 'OrderDetail',
+ params: { _id: order._id }
+ }
+ ]
+ })
+ } else if (data.url.includes(SERVER_URL + 'paypal/cancel')) {
+ props.navigation.goBack()
+ // goBack on Payment Screen
+ }
+ }
+
+ return (
+
+ {
+ handleResponse(data)
+ }}
+ onLoad={() => {
+ loadingSetter(false)
+ }}
+ />
+ {loading ? (
+
+ ) : null}
+
+ )
+}
+
+export default Paypal
diff --git a/enatega-multivendor-app/src/screens/PhoneNumber/PhoneNumber.js b/enatega-multivendor-app/src/screens/PhoneNumber/PhoneNumber.js
new file mode 100644
index 0000000..c742d4e
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/PhoneNumber/PhoneNumber.js
@@ -0,0 +1,177 @@
+import React, { useLayoutEffect, useRef, useState } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ ScrollView,
+ Platform,
+ Image,
+ TextInput,
+ Text
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import Spinner from '../../components/Spinner/Spinner'
+import styles from './styles'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import screenOptions from './screenOptions'
+import CountryPicker from 'react-native-country-picker-modal'
+import usePhoneNumber from './usePhoneNumber'
+import PhoneInput from 'react-native-phone-number-input'
+import { useTranslation } from 'react-i18next'
+
+function PhoneNumber(props) {
+ const {
+ phone,
+ setPhone,
+ phoneError,
+ country,
+ countryCode,
+ registerAction,
+ onCountrySelect,
+ currentTheme,
+ loading
+ } = usePhoneNumber()
+
+ const { t } = useTranslation()
+ console.log(country)
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ fontColor: currentTheme.fontMainColor,
+ backColor: currentTheme.themeBackground,
+ iconColor: currentTheme.iconColorPink,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+ const phoneInput = useRef < PhoneInput > null
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {t('yourPhoneNumber')}
+
+
+ {t('secureAccountWithPhone')}
+
+
+
+
+
+ onCountrySelect(country)}
+ withAlphaFilter
+ withFilter
+ />
+
+ {country?.cca2}
+
+
+
+
+ +{country.callingCode[0]}
+ {
+ if (e >= 0 || e <= 9) {
+ setPhone(e)
+ }
+ }}
+ keyboardType="numeric"
+ />
+
+
+
+ {phoneError && (
+
+
+ {phoneError}
+
+
+ )}
+
+
+ registerAction()}
+ activeOpacity={0.7}
+ style={styles(currentTheme).btn}>
+
+ {loading ? (
+
+ ) : (
+ t('continueBtn')
+ )}
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default PhoneNumber
diff --git a/enatega-multivendor-app/src/screens/PhoneNumber/countryCodes.js b/enatega-multivendor-app/src/screens/PhoneNumber/countryCodes.js
new file mode 100644
index 0000000..021a6ec
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/PhoneNumber/countryCodes.js
@@ -0,0 +1,196 @@
+ const countryCallingCodes = {
+ AF: '93',
+ AL: '355',
+ DZ: '213',
+ AD: '376',
+ AO: '244',
+ AG: '1',
+ AR: '54',
+ AM: '374',
+ AU: '61',
+ AT: '43',
+ AZ: '994',
+ BS: '1',
+ BH: '973',
+ BD: '880',
+ BB: '1',
+ BY: '375',
+ BE: '32',
+ BZ: '501',
+ BJ: '229',
+ BT: '975',
+ BO: '591',
+ BA: '387',
+ BW: '267',
+ BR: '55',
+ BN: '673',
+ BG: '359',
+ BF: '226',
+ BI: '257',
+ CV: '238',
+ KH: '855',
+ CM: '237',
+ CA: '1',
+ CF: '236',
+ TD: '235',
+ CL: '56',
+ CN: '86',
+ CO: '57',
+ KM: '269',
+ CR: '506',
+ HR: '385',
+ CU: '53',
+ CY: '357',
+ CZ: '420',
+ DK: '45',
+ DJ: '253',
+ DM: '1',
+ DO: '1',
+ EC: '593',
+ EG: '20',
+ SV: '503',
+ GQ: '240',
+ ER: '291',
+ EE: '372',
+ ET: '251',
+ FJ: '679',
+ FI: '358',
+ FR: '33',
+ GA: '241',
+ GM: '220',
+ GE: '995',
+ DE: '49',
+ GH: '233',
+ GR: '30',
+ GD: '1',
+ GT: '502',
+ GN: '224',
+ GW: '245',
+ GY: '592',
+ HT: '509',
+ HN: '504',
+ HU: '36',
+ IS: '354',
+ IN: '91',
+ ID: '62',
+ IR: '98',
+ IQ: '964',
+ IE: '353',
+ IL: '972',
+ IT: '39',
+ CI: '225',
+ JM: '1',
+ JP: '81',
+ JO: '962',
+ KZ: '7',
+ KE: '254',
+ KI: '686',
+ KP: '850',
+ KR: '82',
+ KW: '965',
+ KG: '996',
+ LA: '856',
+ LV: '371',
+ LB: '961',
+ LS: '266',
+ LR: '231',
+ LY: '218',
+ LI: '423',
+ LT: '370',
+ LU: '352',
+ MK: '389',
+ MG: '261',
+ MW: '265',
+ MY: '60',
+ MV: '960',
+ ML: '223',
+ MT: '356',
+ MH: '692',
+ MR: '222',
+ MU: '230',
+ MX: '52',
+ FM: '691',
+ MD: '373',
+ MC: '377',
+ MN: '976',
+ ME: '382',
+ MA: '212',
+ MZ: '258',
+ MM: '95',
+ NA: '264',
+ NR: '674',
+ NP: '977',
+ NL: '31',
+ NZ: '64',
+ NI: '505',
+ NE: '227',
+ NG: '234',
+ NO: '47',
+ OM: '968',
+ PK: '92',
+ PW: '680',
+ PA: '507',
+ PG: '675',
+ PY: '595',
+ PE: '51',
+ PH: '63',
+ PL: '48',
+ PT: '351',
+ QA: '974',
+ RO: '40',
+ RU: '7',
+ RW: '250',
+ KN: '1',
+ LC: '1',
+ VC: '1',
+ WS: '685',
+ SM: '378',
+ ST: '239',
+ SA: '966',
+ SN: '221',
+ RS: '381',
+ SC: '248',
+ SL: '232',
+ SG: '65',
+ SK: '421',
+ SI: '386',
+ SB: '677',
+ SO: '252',
+ ZA: '27',
+ ES: '34',
+ LK: '94',
+ SD: '249',
+ SR: '597',
+ SZ: '268',
+ SE: '46',
+ CH: '41',
+ SY: '963',
+ TW: '886',
+ TJ: '992',
+ TZ: '255',
+ TH: '66',
+ TL: '670',
+ TG: '228',
+ TO: '676',
+ TT: '1',
+ TN: '216',
+ TR: '90',
+ TM: '993',
+ TV: '688',
+ UG: '256',
+ UA: '380',
+ AE: '971',
+ GB: '44',
+ US: '1',
+ UY: '598',
+ UZ: '998',
+ VU: '678',
+ VA: '39',
+ VE: '58',
+ VN: '84',
+ YE: '967',
+ ZM: '260',
+ ZW: '263',
+ };
+
+ export default countryCallingCodes;
\ No newline at end of file
diff --git a/enatega-multivendor-app/src/screens/PhoneNumber/screenOptions.js b/enatega-multivendor-app/src/screens/PhoneNumber/screenOptions.js
new file mode 100644
index 0000000..4341545
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/PhoneNumber/screenOptions.js
@@ -0,0 +1,38 @@
+import React from 'react'
+import styles from './styles'
+import { Ionicons } from '@expo/vector-icons'
+
+const navigationOptions = props => {
+ return {
+ title: null,
+ // eslint-disable-next-line react/display-name
+ headerRight: () => (
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+ name="close"
+ size={24}
+ color="black"
+ style={styles().headerRightIcon}
+ />
+ ),
+ // eslint-disable-next-line react/display-name
+ headerLeft: () => (
+ props.navigation.goBack()}
+ name="chevron-back"
+ size={24}
+ color="black"
+ style={styles().headerLeftIcon}
+ />
+ ),
+ headerStyle: {
+ backgroundColor: props.backColor
+ }
+ }
+}
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/PhoneNumber/styles.js b/enatega-multivendor-app/src/screens/PhoneNumber/styles.js
new file mode 100644
index 0000000..5918880
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/PhoneNumber/styles.js
@@ -0,0 +1,100 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.MTlarge,
+ ...alignment.MBlarge
+ },
+ subContainer: {
+ width: '85%',
+ height: '100%'
+ },
+ marginTop10: {
+ ...alignment.MTlarge
+ },
+ marginTop5: {
+ ...alignment.MTsmall
+ },
+ marginTop3: {
+ ...alignment.MTxSmall
+ },
+ alignItemCenter: {
+ alignItems: 'center'
+ },
+ twoContainers: {
+ flexDirection: 'row',
+ justifyContent: 'space-between'
+ },
+ width48: {
+ width: '48%'
+ },
+ logoContainer: {
+ width: 120,
+ height: 130,
+ alignSelf: 'center'
+ },
+ form: {
+ width: '100%',
+ ...alignment.MTlarge
+ },
+ textField: {
+ borderColor: '#efefef',
+ borderWidth: 1,
+ borderRadius: 10,
+ backgroundColor: props !== null ? props.white : '#fff',
+ paddingLeft: 10,
+ paddingTop: 7,
+ shadowColor: props !== null ? props.fontSecondColor : '#545454',
+ shadowOffset: {
+ width: 0,
+ height: 2
+ },
+ shadowOpacity: 0.25,
+ shadowRadius: 3.84,
+ elevation: 5,
+ ...alignment.MTlarge
+ },
+ btn: {
+ width: '70%',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.black : '#000',
+ alignSelf: 'center',
+ padding: 15,
+ borderRadius: 10
+ },
+ number: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ countryCode: {
+ flexDirection: 'row',
+ width: '27%',
+ marginRight: '3%'
+ },
+ phoneNumber: {
+ width: '70%',
+ },
+ error: {
+ marginTop: 3
+ },
+ errorInput: {
+ backgroundColor: props !== null ? props.errorInputBack : '#F7E7E5',
+ borderColor: props !== null ? props.errorInputBorder : '#DB4A39'
+ },
+ headerLeftIcon: {
+ ...alignment.PLsmall
+ },
+ headerRightIcon: {
+ ...alignment.PRsmall
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/PhoneNumber/usePhoneNumber.js b/enatega-multivendor-app/src/screens/PhoneNumber/usePhoneNumber.js
new file mode 100644
index 0000000..40961fa
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/PhoneNumber/usePhoneNumber.js
@@ -0,0 +1,204 @@
+import { useState, useContext, useEffect } from 'react'
+import { useMutation } from '@apollo/client'
+import gql from 'graphql-tag'
+import { updateUser } from '../../apollo/mutations'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import { phoneRegex } from '../../utils/regex'
+import { useNavigation, useRoute } from '@react-navigation/native'
+import UserContext from '../../context/User'
+import countryCallingCodes from './countryCodes'
+import { useIsFocused } from '@react-navigation/native'
+import ConfigurationContext from '../../context/Configuration'
+import { useTranslation } from 'react-i18next'
+
+const UPDATEUSER = gql`
+ ${updateUser}
+`
+
+const useRegister = () => {
+ const { t } = useTranslation()
+ const navigation = useNavigation()
+ const route = useRoute()
+ const [phone, setPhone] = useState('')
+ const [phoneError, setPhoneError] = useState(null)
+ const configuration = useContext(ConfigurationContext)
+ console.log(configuration)
+ const isFocused = useIsFocused()
+ const [countryCode, setCountryCode] = useState('')
+ const [currentCountry, setCurrentCountry] = useState(null)
+ const [ipAddress, setIpAddress] = useState(null)
+ const [countryCallingCode, setCountryCallingCode] = useState(null)
+ const [count, setCount] = useState(0)
+
+ const retryCount = 3 // Number of retries
+ let currentRetry = 0
+
+ const [country, setCountry] = useState({
+ callingCode: [],
+ cca2: '',
+ currency: ['PKR'],
+ flag: '',
+ name: 'Pakistan',
+ region: 'Asia',
+ subregion: 'Southern Asia'
+ })
+
+ const fetchIpAddress = async () => {
+ try {
+ const response = await fetch('https://api.ipify.org/?format=json')
+ const data = await response.json()
+
+ setIpAddress(data.ip)
+
+ const response2 = await fetch(`https://ipinfo.io/${data.ip}/json`)
+ const data2 = await response2.json()
+ console.log(data2)
+ setCurrentCountry(data2.country)
+ setCountryCode(data2.country)
+
+ return currentCountry
+ } catch (error) {
+ console.error('Error getting IP address:', error)
+
+ if (currentRetry < retryCount) {
+ // Retry the request
+ currentRetry++
+ console.log('Retrying...')
+ return fetchIpAddress()
+ }
+ }
+
+ // If all retries fail, you can return a default value or handle the error as needed.
+ return null
+ }
+
+ useEffect(() => {
+ const initializeCountry = async () => {
+ try {
+ const res = await fetchIpAddress()
+ console.log(res)
+ console.log(currentCountry)
+ if (res) {
+ const callingCode = countryCallingCodes[currentCountry]
+ if (callingCode) {
+ setCountry({
+ ...country,
+ callingCode: [callingCode.toString()],
+ cca2: currentCountry,
+ flag: 'flag-' + currentCountry
+ })
+ } else {
+ console.log('Unknown')
+ }
+ } else {
+ setCount(count + 1)
+ console.log('Failed to fetch IP address.')
+ }
+ } catch (error) {
+ console.error('Error initializing country:', error)
+ }
+ }
+
+ initializeCountry()
+ }, [count])
+
+ const onCountrySelect = country => {
+ console.log(country)
+ setCountryCode(country.cca2)
+ setCountry(country)
+ }
+ const { profile } = useContext(UserContext)
+ const { refetchProfile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const [mutate, { loading }] = useMutation(UPDATEUSER, {
+ onCompleted,
+ onError
+ })
+
+ function validateCredentials() {
+ let result = true
+
+ if (!phone) {
+ setPhoneError(t('mobileErr1'))
+ result = false
+ } else if (!phoneRegex.test(phone)) {
+ setPhoneError(t('mobileErr2'))
+ result = false
+ }
+ return result
+ }
+
+ async function onCompleted(data) {
+ if (navigation && route && profile) {
+ if (configuration.twilioEnabled) {
+ FlashMessage({
+ message: 'Phone number has been added successfully!'
+ })
+ await refetchProfile()
+ navigation.navigate({
+ name: 'PhoneOtp',
+ merge: true,
+ params: route.params
+ })
+ } else {
+ mutate({
+ variables: {
+ name: profile.name,
+ phone: '+'.concat(country.callingCode[0]).concat(phone),
+ phoneIsVerified: true
+ }
+ })
+ if (isFocused) {
+ navigation.navigate({
+ name: 'Profile'
+ })
+ }
+ }
+ }
+ }
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+
+ async function mutateRegister() {
+ mutate({
+ variables: {
+ name: profile.name,
+ phone: '+'.concat(country.callingCode[0]).concat(phone),
+ phoneIsVerified: false
+ }
+ })
+ }
+
+ function registerAction() {
+ if (validateCredentials()) {
+ mutateRegister()
+ }
+ }
+ return {
+ phone,
+ setPhone,
+ phoneError,
+ country,
+ countryCode,
+ onCountrySelect,
+ themeContext,
+ currentTheme,
+ loading,
+ registerAction
+ }
+}
+
+export default useRegister
diff --git a/enatega-multivendor-app/src/screens/Profile/ChangePassword.js b/enatega-multivendor-app/src/screens/Profile/ChangePassword.js
new file mode 100644
index 0000000..dc14471
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Profile/ChangePassword.js
@@ -0,0 +1,174 @@
+import React, { useState, useContext } from 'react'
+import { View, TouchableOpacity, Alert } from 'react-native'
+import styles from './styles'
+import Modal from 'react-native-modal'
+import { TextField } from 'react-native-material-textfield'
+import { scale } from '../../utils/scaling'
+import { changePassword } from '../../apollo/mutations'
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import { theme } from '../../utils/themeColors'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import { alignment } from '../../utils/alignment'
+import { OutlinedTextField } from 'react-native-material-textfield'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import {useTranslation} from 'react-i18next'
+
+
+const CHANGE_PASSWORD = gql`
+ ${changePassword}
+`
+
+function ChangePassword(props) {
+
+ const {t} = useTranslation()
+ const [oldPassword, setOldPassword] = useState('')
+ const [newPassword, setNewPassword] = useState('')
+ const [oldPasswordError, setOldPasswordError] = useState('')
+ const [newPasswordError, setNewPasswordError] = useState('')
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const [mutate, { loading }] = useMutation(CHANGE_PASSWORD, {
+ onError,
+ onCompleted
+ })
+
+ function onError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ }
+ }
+ function clearFields() {
+ setOldPassword('')
+ setNewPassword('')
+ setOldPasswordError('')
+ setNewPasswordError('')
+ }
+
+ function onCompleted(data) {
+ if (data.changePassword) {
+ clearFields()
+ FlashMessage({
+ message: t('updatePassword')
+ })
+ props.hideModal()
+ } else {
+ Alert.alert('Error', t('invalidPassword'))
+ }
+ }
+
+ return (
+
+
+
+
+
+ {t('changePassword')}
+
+
+
+
+
+ {
+ setOldPasswordError(
+ !oldPassword ? t('passErr1') : ''
+ )
+ }}
+ />
+
+
+
+
+ {
+ setNewPasswordError(
+ !newPassword ? t('passErr1') : ''
+ )
+ }}
+ />
+
+
+
+ {
+ if (newPassword === '' || oldPassword === '') {
+ props.hideModal()
+ }
+ const newPasswordError =
+ newPassword === '' ? t('passErr1') : ''
+ const oldPasswordError =
+ oldPassword === '' ? t('passErr1') : ''
+ setNewPasswordError(newPasswordError)
+ setOldPasswordError(oldPasswordError)
+
+ if (
+ oldPasswordError.length === 0 &&
+ newPasswordError.length === 0
+ ) {
+ mutate({ variables: { oldPassword, newPassword } })
+ }
+ }}
+ style={[styles().btnContainer]}>
+
+ {newPassword !== '' && oldPassword !== ''
+ ? t('apply')
+ : t('Cancel')}
+
+
+
+
+
+ )
+}
+
+export default ChangePassword
diff --git a/enatega-multivendor-app/src/screens/Profile/Profile.js b/enatega-multivendor-app/src/screens/Profile/Profile.js
new file mode 100644
index 0000000..6b0ec2b
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Profile/Profile.js
@@ -0,0 +1,532 @@
+import React, {
+ useState,
+ useRef,
+ useContext,
+ useLayoutEffect,
+ useEffect
+} from 'react'
+import {
+ View,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ Platform,
+ StatusBar,
+ Text
+} from 'react-native'
+import { useMutation } from '@apollo/client'
+import gql from 'graphql-tag'
+import { TextField, OutlinedTextField } from 'react-native-material-textfield'
+import { scale } from '../../utils/scaling'
+import { updateUser, login } from '../../apollo/mutations'
+import ChangePassword from './ChangePassword'
+import { theme } from '../../utils/themeColors'
+import UserContext from '../../context/User'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import styles from './styles'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { useFocusEffect } from '@react-navigation/native'
+import analytics from '../../utils/analytics'
+import { Feather } from '@expo/vector-icons'
+import { MaterialIcons } from '@expo/vector-icons'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { useTranslation } from 'react-i18next'
+
+const UPDATEUSER = gql`
+ ${updateUser}
+`
+
+function Profile(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const refName = useRef()
+ const [nameError, setNameError] = useState('')
+ const [toggleEmailView, setToggleEmailView] = useState(true)
+ const [toggleNameView, setToggleNameView] = useState(true)
+ const [toggleView, setToggleView] = useState(true)
+ const [modelVisible, setModalVisible] = useState(false)
+ const [showPass, setShowPass] = useState(false)
+
+ const { profile } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const backScreen = props.route.params ? props.route.params.backScreen : null
+ const [mutate, { loading: loadingMutation }] = useMutation(UPDATEUSER, {
+ onCompleted,
+ onError
+ })
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PROFILE)
+ }
+ Track()
+ }, [])
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ title: t('titleProfile'),
+ headerRight: null,
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ backgroundColor: currentTheme.black,
+ borderWidth: 1,
+ borderColor: currentTheme.white,
+ borderRadius: scale(10),
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerBackground,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ passChecker: showPass,
+ closeIcon: toggleView,
+ closeModal: setToggleView,
+ modalSetter: setModalVisible,
+ passwordButton: setShowPass,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation, showPass, toggleView])
+
+ useEffect(() => {
+ if (backScreen) {
+ viewHideAndShowName()
+ viewHideAndShowEmail()
+ }
+ }, [backScreen])
+
+ function viewHideAndShowName() {
+ setToggleNameView(prev => !prev)
+ }
+ function viewHideAndShowEmail() {
+ setToggleEmailView(prev => !prev)
+ }
+
+ function onCompleted({ updateUser }) {
+ if (updateUser) {
+ FlashMessage({
+ message: t('userInfoUpdated')
+ })
+ if (backScreen) {
+ props.navigation.goBack()
+ }
+ }
+ }
+
+ const validateName = async () => {
+ setNameError('')
+
+ const name = refName.current.value()
+
+ if (name !== profile.name) {
+ if (!name.trim()) {
+ refName.current.focus()
+ setNameError(t('nameError'))
+ return false
+ }
+
+ try {
+ await mutate({
+ variables: {
+ name: name
+ }
+ })
+ } catch (error) {
+ return false
+ }
+ }
+
+ return true
+ }
+
+ const updateName = async () => {
+ const isValid = await validateName()
+ if (isValid) {
+ await mutate({
+ variables: {
+ name: refName.current.value(),
+ phone: profile.phone
+ }
+ })
+ }
+ }
+
+ const handleNamePress = () => {
+ viewHideAndShowName()
+ }
+ const handleNamePressUpdate = async () => {
+ await updateName()
+ viewHideAndShowName()
+ }
+
+ function onError(error) {
+ try {
+ if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message
+ })
+ } else if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ }
+ } catch (err) {}
+ }
+
+ function changeNameTab() {
+ return (
+ <>
+
+
+ {profile.name}
+
+
+ >
+ )
+ }
+
+ function changeEmailTab() {
+ return (
+ <>
+
+
+
+ {profile.email}
+
+
+
+ >
+ )
+ }
+
+ function changePasswordTab() {
+ return (
+ <>
+
+
+ ***********
+
+
+ >
+ )
+ }
+
+ function changePhoneTab() {
+ return (
+ <>
+
+
+
+ {profile.phone}
+
+
+ {profile.phone !== '' && (
+
+
+ {profile.phoneIsVerified ? t('verified') : t('unverified')}
+
+
+ )}
+
+ >
+ )
+ }
+
+ const showModal = () => {
+ setModalVisible(true)
+ }
+
+ return (
+ <>
+ {
+ setModalVisible(false)
+ }}
+ />
+
+ {t('profileDetail')}
+
+
+
+
+
+ {toggleNameView && (
+ <>
+
+
+ {t('name')}
+
+
+
+
+
+
+
+
+ >
+ )}
+
+ {toggleNameView ? (
+ changeNameTab()
+ ) : (
+
+
+
+
+ {t('name')}
+
+
+
+
+
+
+
+
+
+ {t('update')}
+
+
+
+ )}
+
+
+ {/* email */}
+
+
+ <>
+
+
+ {t('email')}
+
+
+ >
+
+ {changeEmailTab()}
+
+
+ {/* password */}
+
+
+ <>
+
+
+ {t('password')}
+
+
+
+
+
+
+
+
+ >
+
+ {changePasswordTab()}
+
+
+ {/* phone */}
+
+
+ {toggleView && (
+ <>
+
+
+ {t('mobile')}
+
+
+
+
+ props.navigation.navigate('PhoneNumber', {
+ prevScreen: 'Profile'
+ })
+ }>
+
+
+
+ >
+ )}
+
+ {toggleView ? (
+ changePhoneTab()
+ ) : (
+
+
+
+
+ {t('mobile')}
+
+
+
+
+
+
+
+
+
+ {profile.phone}
+
+
+ {(profile.phone === '' || !profile.phoneIsVerified) && (
+
+ props.navigation.navigate(
+ profile.phone === '' ? 'PhoneNumber' : 'PhoneOtp',
+ { prevScreen: 'Profile' }
+ )
+ }
+ disabled={
+ profile.phoneIsVerified && profile.phone !== ''
+ }>
+
+ {profile.phone === ''
+ ? t('addPhone')
+ : profile.phoneIsVerified
+ ? t('verified')
+ : t('verify')}
+
+
+ )}
+ {profile.phone !== '' && (
+
+ props.navigation.navigate('PhoneNumber', {
+ prevScreen: 'Profile'
+ })
+ }
+ />
+ )}
+
+
+
+
+ )}
+
+
+
+ >
+ )
+}
+
+export default Profile
diff --git a/enatega-multivendor-app/src/screens/Profile/screenOptions.js b/enatega-multivendor-app/src/screens/Profile/screenOptions.js
new file mode 100644
index 0000000..208e88d
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Profile/screenOptions.js
@@ -0,0 +1,45 @@
+/* eslint-disable react/display-name */
+import React from 'react'
+import {
+ RightButton,
+ LeftButton
+} from '../../components/Header/HeaderIcons/HeaderIcons'
+import { textStyles } from '../../utils/textStyles'
+import { scale } from '../../utils/scaling'
+
+const navigationOptions = props => ({
+ // eslint-disable-next-line react/display-name
+ headerRight: () => (
+ {
+ props.modalSetter(option)
+ }}
+ titlePosition={option => {
+ props.passwordButton(option)
+ }}
+ textColor="black"
+ textBackColor={props.backColor}
+ />
+ ),
+ title: props.title,
+ headerTitleAllowFontScaling: true,
+ headerTitleAlign: 'left',
+ headerTitleStyle: {
+ color: props.fontColor,
+ ...textStyles.H4,
+ ...textStyles.Bolder
+ },
+ headerTitleContainerStyle: {
+ marginRight: props.passChecker ? scale(100) : scale(35)
+ },
+ headerLeft: () => (
+ props.closeModal(option)}
+ />
+ )
+})
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/Profile/styles.js b/enatega-multivendor-app/src/screens/Profile/styles.js
new file mode 100644
index 0000000..666f11b
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Profile/styles.js
@@ -0,0 +1,125 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ formContainer: {
+ flex: 1,
+ width: '100%',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent'
+ },
+ containerInfo: {
+ width: '100%',
+ ...alignment.MTmedium,
+ },
+ formSubContainer: {
+ borderRadius: scale(18),
+ width: '95%',
+ backgroundColor: props !== null ? props.radioOuterColor : 'transparent',
+ alignSelf: 'center',
+ shadowOffset: { width: 2, height: 4 },
+ shadowColor: props !== null ? props.shadowColor : 'transparent',
+ shadowOpacity: 0.1,
+ shadowRadius: 10,
+ elevation: 15,
+ borderWidth:
+ props !== null && props.themeBackground !== '#FAFAFA' ? 2 : 0,
+ borderColor: props !== null ? props.shadowColor : 'transparent',
+ ...alignment.MTsmall,
+ ...alignment.Pmedium
+ },
+ flexRow: {
+ display: 'flex',
+ flexDirection: 'row',
+ justifyContent: 'space-between'
+ },
+ containerHeading: {
+ flexDirection: 'row',
+ alignContent: 'space-between',
+ },
+ headingTitle: {
+ width: '50%',
+ },
+ textAlignLeft: {
+ textAlign: 'left',
+ },
+ headingLink: {
+ width: '50%',
+ flexDirection: 'row',
+ justifyContent: 'flex-end'
+ },
+ headingButton: {
+ justifyContent: 'center',
+ ...alignment.PLmedium
+ },
+ saveContainer: {
+ backgroundColor: theme.Pink.main,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(6),
+ padding: scale(5),
+ paddingLeft: scale(20),
+ paddingRight: scale(20),
+ width: '28%'
+ },
+ bacKButton: {
+ backgroundColor: 'white',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ verifiedButton: {
+ padding: scale(8),
+ paddingLeft: scale(10),
+ paddingRight: scale(10),
+ borderRadius: scale(6),
+ width: '28%',
+ // height: scale(30),
+ marginTop: scale(10)
+ },
+ // Model for password changing
+ modalContainer: {
+ backgroundColor: props !== null ? props.themeBackground : '#FFF',
+ borderRadius: scale(14),
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.PTmedium,
+ ...alignment.PBsmall
+ },
+ modalContent: {
+ width: '90%'
+ },
+ titleContainer: {
+ width: '100%',
+ justifyContent: 'flex-start',
+ alignItems: 'flex-start',
+ backgroundColor: props !== null ? props.radioOuterColor : 'white'
+ },
+ btnContainer: {
+ width: '30%',
+ justifyContent: 'center',
+ alignItems: 'flex-end',
+ alignSelf: 'flex-end',
+ ...alignment.MTlarge,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ },
+ titleContainer: {
+ backgroundColor: props !== null ? props.themeBackground : 'white',
+ color: props !== null ? props.darkBgFont : 'white',
+ padding: scale(25),
+ fontSize: scale(20),
+ fontWeight: '600'
+ },
+ phoneDetailsContainer: {
+ display: 'flex',
+ flexDirection: 'row'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/RateAndReview/RateAndReview.js b/enatega-multivendor-app/src/screens/RateAndReview/RateAndReview.js
new file mode 100644
index 0000000..3cbbbad
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/RateAndReview/RateAndReview.js
@@ -0,0 +1,234 @@
+import React, { useState, useContext, useLayoutEffect, useEffect } from 'react'
+import {
+ View,
+ TextInput,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ ScrollView
+} from 'react-native'
+import gql from 'graphql-tag'
+import Spinner from '../../components/Spinner/Spinner'
+import ImageHeader from '../../components/CustomizeComponents/ImageHeader/ImageHeader'
+import styles from './styles'
+import { reviewOrder } from '../../apollo/mutations'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import StarRating from 'react-native-star-rating'
+import { useMutation } from '@apollo/client'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+
+import { scale } from '../../utils/scaling'
+import analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import { MaterialIcons } from '@expo/vector-icons'
+import navigationService from '../../routes/navigationService'
+import { useTranslation } from 'react-i18next'
+
+// constants
+const REVIEWORDER = gql`
+ ${reviewOrder}
+`
+
+function RateAndReview(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const [id] = useState(props.route.params._id ?? null)
+ const [rating, setRating] = useState(0)
+ const [description, setDescription] = useState('')
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const inset = useSafeAreaInsets()
+
+ const [mutate, { loading: loadingMutation }] = useMutation(REVIEWORDER, {
+ onError,
+ onCompleted
+ })
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerTitle: '',
+ headerRight: null,
+
+ headerTransparent: true,
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RATEANDREVIEW)
+ }
+ Track()
+ }, [])
+ function onFinishRating(rating) {
+ setRating(rating)
+ }
+
+ function onChangeText(description) {
+ setDescription(description)
+ }
+
+ function onSubmit() {
+ if (rating > 0 && rating < 6) {
+ mutate({
+ variables: {
+ order: id,
+ rating: rating,
+ description: description
+ }
+ })
+ } else {
+ FlashMessage({
+ message: 'Please add star rating first'
+ })
+ }
+ }
+
+ function onCompleted(data) {
+ props.navigation.goBack()
+ }
+
+ function onError(error) {
+ console.log(JSON.stringify(error))
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ }
+
+ return (
+ <>
+
+
+
+
+
+ {t('RateYourOrder')}
+
+ {!props.loading && (
+
+
+ {props.route.params.restaurant.name.length > 12
+ ? `${props.route.params.restaurant.name.slice(0, 15)}...`
+ : props.route.params.restaurant.name}
+
+
+ )}
+
+
+
+
+
+
+
+ {t('howWasMeal')}
+
+
+ {t('howWasMealP')}
+
+
+
+
+
+
+
+
+
+
+
+
+ {t('yourExperience')}
+
+
+
+
+
+
+
+
+ {loadingMutation && }
+ {!loadingMutation && (
+
+
+ {t('submit')}
+
+
+ )}
+
+
+
+
+
+ >
+ )
+}
+export default RateAndReview
diff --git a/enatega-multivendor-app/src/screens/RateAndReview/styles.js b/enatega-multivendor-app/src/screens/RateAndReview/styles.js
new file mode 100644
index 0000000..f7065ab
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/RateAndReview/styles.js
@@ -0,0 +1,111 @@
+import { scale, verticalScale } from '../../utils/scaling'
+import { Dimensions, StyleSheet } from 'react-native'
+import { textStyles } from '../../utils/textStyles'
+const { height } = Dimensions.get('window')
+import { theme } from '../../utils/themeColors'
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ reviewTextContainer: {
+ width: '100%',
+ height: height * 0.1,
+ alignItems: 'flex-end'
+ },
+ reviewTextSubContainer: {
+ width: '100%',
+ height: '100%',
+ flexDirection: 'row'
+ },
+ reviewTextContainerText: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ reviewText: {
+ padding: scale(10),
+ marginTop: scale(20)
+ },
+ reviewTextContainerImage: {
+ width: '50%',
+ height: '100%',
+ justifyContent: 'center'
+ },
+ ratingContainer: {
+ width: '100%',
+ height: height * 0.15,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ ratingSubContainer: {
+ paddingTop: scale(10),
+ width: '55%',
+ height: '60%'
+ },
+ inputContainer: {
+ width: '90%',
+ height: height * 0.15,
+ backgroundColor: '#f0f0f0',
+ alignSelf: 'center',
+ borderRadius: scale(20)
+ },
+ inputSubContainer: {
+ width: '100%',
+ borderBottomColor: props !== null ? 'transparent' : 'grey',
+ borderBottomWidth: verticalScale(1)
+ },
+ mainView: {
+ backgroundColor: 'rgba(0, 0, 0, 0.74)',
+ padding: scale(10),
+ borderRadius: scale(10),
+ borderColor: theme.Pink.white,
+ borderWidth: 1,
+ width: '45%',
+ alignItems: 'center',
+ alignSelf: 'center',
+ marginBottom: scale(80),
+ marginTop: scale(-140)
+ },
+ line: {
+ backgroundColor: theme.Pink.black,
+ height: 0.5,
+ width: '90%',
+ alignSelf: 'center'
+ },
+ textinput: {
+ marginTop: scale(10),
+ padding: scale(20),
+ height: '100%',
+ width: '90%',
+ ...textStyles.Bold,
+ ...textStyles.Normal
+ },
+ btnContainer: {
+ width: '80%',
+ height: height * 0.1,
+ alignSelf: 'center',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ btnSubContainer: {
+ width: '80%',
+ height: '60%'
+ },
+ btnTouch: {
+ flex: 1,
+ backgroundColor: props !== null ? props.buttonBackground : 'grey',
+ borderRadius: scale(10),
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ backImageContainer: {
+ backgroundColor: 'white',
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Register/Register.js b/enatega-multivendor-app/src/screens/Register/Register.js
new file mode 100644
index 0000000..118242f
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Register/Register.js
@@ -0,0 +1,259 @@
+import React, { useLayoutEffect } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ ScrollView,
+ Platform,
+ Image,
+ TextInput
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './styles'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import screenOptions from './screenOptions'
+import { FontAwesome } from '@expo/vector-icons'
+import CountryPicker from 'react-native-country-picker-modal'
+import useRegister from './useRegister'
+import {useTranslation} from 'react-i18next'
+
+function Register(props) {
+ const {
+ email,
+ setEmail,
+ emailError,
+ firstname,
+ setFirstname,
+ firstnameError,
+ lastname,
+ setLastname,
+ lastnameError,
+ password,
+ setPassword,
+ passwordError,
+ phone,
+ setPhone,
+ phoneError,
+ showPassword,
+ setShowPassword,
+ country,
+ countryCode,
+ registerAction,
+ onCountrySelect,
+ currentTheme
+ } = useRegister()
+
+ const {t} = useTranslation()
+ useLayoutEffect(() => {
+ props.navigation.setOptions(
+ screenOptions({
+ fontColor: currentTheme.fontMainColor,
+ backColor: currentTheme.themeBackground,
+ iconColor: currentTheme.iconColorPink,
+ navigation: props.navigation
+ })
+ )
+ }, [props.navigation])
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {t('letsGetStarted')}
+
+
+ {t('createAccount')}
+
+
+
+
+ setEmail(e)}
+ />
+ {emailError && (
+
+ {emailError}
+
+ )}
+
+
+ setFirstname(e)}
+ />
+ {firstnameError && (
+
+ {firstnameError}
+
+ )}
+
+
+ setLastname(e)}
+ />
+ {lastnameError && (
+
+ {lastnameError}
+
+ )}
+
+
+ setPassword(e)}
+ />
+ setShowPassword(!showPassword)}
+ name={showPassword ? 'eye' : 'eye-slash'}
+ size={24}
+ color={currentTheme.startColor}
+ style={styles().eyeBtn}
+ />
+
+ {passwordError && (
+
+
+ {passwordError}
+
+
+ )}
+
+
+ onCountrySelect(country)}
+ withAlphaFilter
+ withFilter
+ />
+
+ {country?.cca2}
+
+
+ setPhone(e)}
+ />
+
+ {phoneError && (
+
+
+ {phoneError}
+
+
+ )}
+
+
+ registerAction()}
+ activeOpacity={0.7}
+ style={styles(currentTheme).btn}>
+
+ {t('continueBtn')}
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default Register
diff --git a/enatega-multivendor-app/src/screens/Register/screenOptions.js b/enatega-multivendor-app/src/screens/Register/screenOptions.js
new file mode 100644
index 0000000..4341545
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Register/screenOptions.js
@@ -0,0 +1,38 @@
+import React from 'react'
+import styles from './styles'
+import { Ionicons } from '@expo/vector-icons'
+
+const navigationOptions = props => {
+ return {
+ title: null,
+ // eslint-disable-next-line react/display-name
+ headerRight: () => (
+
+ props.navigation.navigate({
+ name: 'Main',
+ merge: true
+ })
+ }
+ name="close"
+ size={24}
+ color="black"
+ style={styles().headerRightIcon}
+ />
+ ),
+ // eslint-disable-next-line react/display-name
+ headerLeft: () => (
+ props.navigation.goBack()}
+ name="chevron-back"
+ size={24}
+ color="black"
+ style={styles().headerLeftIcon}
+ />
+ ),
+ headerStyle: {
+ backgroundColor: props.backColor
+ }
+ }
+}
+export default navigationOptions
diff --git a/enatega-multivendor-app/src/screens/Register/styles.js b/enatega-multivendor-app/src/screens/Register/styles.js
new file mode 100644
index 0000000..c99aa27
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Register/styles.js
@@ -0,0 +1,115 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.MTlarge,
+ ...alignment.MBlarge
+ },
+ subContainer: {
+ width: '85%',
+ height: '100%'
+ },
+ marginTop10: {
+ ...alignment.MTlarge
+ },
+ marginTop5: {
+ ...alignment.MTsmall
+ },
+ marginTop3: {
+ ...alignment.MTxSmall
+ },
+ alignItemCenter: {
+ alignItems: 'center'
+ },
+ twoContainers: {
+ flexDirection: 'row',
+ justifyContent: 'space-between'
+ },
+ width48: {
+ width: '48%'
+ },
+ logoContainer: {
+ width: 120,
+ height: 130,
+ alignSelf: 'center'
+ },
+ form: {
+ width: '100%',
+ ...alignment.MTlarge
+ },
+ textField: {
+ borderColor: '#efefef',
+ borderWidth: 1,
+ borderRadius: 10,
+ backgroundColor: props !== null ? props.white : '#fff',
+ padding: 14,
+ shadowColor: props !== null ? props.fontSecondColor : '#545454',
+ shadowOffset: {
+ width: 0,
+ height: 2
+ },
+ shadowOpacity: 0.25,
+ shadowRadius: 3.84,
+ elevation: 5,
+ ...alignment.MTlarge
+ },
+ passwordField: {
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ passwordInput: {
+ width: '100%'
+ },
+ eyeBtn: {
+ position: 'relative',
+ display: 'flex',
+ zIndex: 1,
+ elevation: 999,
+ marginTop: 20,
+ marginLeft: -40
+ },
+ btn: {
+ width: '70%',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.black : '#000',
+ alignSelf: 'center',
+ padding: 15,
+ borderRadius: 10
+ },
+ number: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ countryCode: {
+ flexDirection: 'row',
+ width: '27%',
+ marginRight: '3%'
+ },
+ phoneNumber: {
+ width: '70%'
+ },
+ error: {
+ marginTop: 3
+ },
+ errorInput: {
+ backgroundColor: props !== null ? props.errorInputBack : '#F7E7E5',
+ borderColor: props !== null ? props.errorInputBorder : '#DB4A39'
+ },
+ headerLeftIcon: {
+ ...alignment.PLsmall
+ },
+ headerRightIcon: {
+ ...alignment.PRsmall
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Register/useRegister.js b/enatega-multivendor-app/src/screens/Register/useRegister.js
new file mode 100644
index 0000000..530e148
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Register/useRegister.js
@@ -0,0 +1,132 @@
+import { useState, useContext } from 'react'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import { emailRegex, passRegex, nameRegex, phoneRegex } from '../../utils/regex'
+import { useNavigation, useRoute } from '@react-navigation/native'
+import {useTranslation} from 'react-i18next'
+
+const useRegister = () => {
+ const navigation = useNavigation()
+ const {t} = useTranslation()
+ const route = useRoute()
+ const [firstname, setFirstname] = useState('')
+ const [lastname, setLastname] = useState('')
+ const [email, setEmail] = useState(route.params?.email || '')
+ const [phone, setPhone] = useState('')
+ const [password, setPassword] = useState('')
+ const [showPassword, setShowPassword] = useState(true)
+ const [firstnameError, setFirstnameError] = useState(null)
+ const [lastnameError, setLastnameError] = useState(null)
+ const [emailError, setEmailError] = useState(null)
+ const [passwordError, setPasswordError] = useState(null)
+ const [phoneError, setPhoneError] = useState(null)
+ const [countryCode, setCountryCode] = useState('PK')
+ const [country, setCountry] = useState({
+ callingCode: ['92'],
+ cca2: 'PK',
+ currency: ['PKR'],
+ flag: 'flag-pk',
+ name: 'Pakistan',
+ region: 'Asia',
+ subregion: 'Southern Asia'
+ })
+
+ const onCountrySelect = country => {
+ setCountryCode(country.cca2)
+ setCountry(country)
+ }
+
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ function validateCredentials() {
+ let result = true
+
+ setEmailError(null)
+ setPasswordError(null)
+ setPhoneError(null)
+ setFirstnameError(null)
+ setLastnameError(null)
+
+ if (!email) {
+ setEmailError(t('emailErr1'))
+ result = false
+ } else if (!emailRegex.test(email.trim())) {
+ setEmailError(t('emailErr2'))
+ result = false
+ }
+
+ if (!password) {
+ setPasswordError(t('passErr1'))
+ result = false
+ } else if (passRegex.test(password) !== true) {
+ setPasswordError(t('passErr2'))
+ result = false
+ }
+
+ if (!phone) {
+ setPhoneError(t('mobileErr1'))
+ result = false
+ } else if (!phoneRegex.test(phone)) {
+ setPhoneError(t('mobileErr2'))
+ result = false
+ }
+
+ if (!firstname) {
+ setFirstnameError(t('firstnameErr1'))
+ result = false
+ } else if (!nameRegex.test(firstname)) {
+ setFirstnameError(t('firstnameErr2'))
+ result = false
+ }
+
+ if (!lastname) {
+ setLastnameError(t('lastnameErr1'))
+ result = false
+ } else if (!nameRegex.test(lastname)) {
+ setLastnameError(t('lastnameErr2'))
+ result = false
+ }
+ return result
+ }
+
+ function registerAction() {
+ if (validateCredentials()) {
+ navigation.navigate('EmailOtp', {
+ user: {
+ phone: '+'.concat(country.callingCode[0]).concat(phone),
+ email: email.toLowerCase().trim(),
+ password: password,
+ name: firstname + ' ' + lastname
+ }
+ })
+ }
+ }
+ return {
+ email,
+ setEmail,
+ emailError,
+ firstname,
+ setFirstname,
+ firstnameError,
+ lastname,
+ setLastname,
+ lastnameError,
+ password,
+ setPassword,
+ passwordError,
+ phone,
+ setPhone,
+ phoneError,
+ showPassword,
+ setShowPassword,
+ country,
+ countryCode,
+ registerAction,
+ onCountrySelect,
+ themeContext,
+ currentTheme
+ }
+}
+
+export default useRegister
diff --git a/enatega-multivendor-app/src/screens/Reorder/Reorder.js b/enatega-multivendor-app/src/screens/Reorder/Reorder.js
new file mode 100644
index 0000000..e01105c
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Reorder/Reorder.js
@@ -0,0 +1,204 @@
+import React, { useLayoutEffect, useContext, useState, useEffect } from 'react'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import { theme } from '../../utils/themeColors'
+import screenOptions from './screenOptions'
+import { View, TouchableOpacity, ScrollView, StatusBar } from 'react-native'
+import CheckboxBtn from '../../ui/FdCheckbox/CheckboxBtn'
+import { alignment } from '../../utils/alignment'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { useFocusEffect } from '@react-navigation/native'
+import styles from './styles'
+import UserContext from '../../context/User'
+import Analytics from '../../utils/analytics'
+
+import { scale } from '../../utils/scaling'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { MaterialIcons, Entypo } from '@expo/vector-icons'
+import { useTranslation } from 'react-i18next'
+
+function Reorder(props) {
+ const analytics = Analytics()
+
+ const { t } = useTranslation()
+ const order = props.route.params.item
+ const themeContext = useContext(ThemeContext)
+ const { setCartRestaurant, addCartItem } = useContext(UserContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const inset = useSafeAreaInsets()
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.headerBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ })
+ const [selectedItems, setItems] = useState([])
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ title: t('previous'),
+ headerRight: null,
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerTitleAlign: 'center',
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [props.navigation])
+
+ useEffect(() => {
+ async function Track() {
+ await analytics.track(analytics.events.NAVIGATE_TO_REORDER)
+ }
+ Track()
+ }, [])
+ const onSelect = index => {
+ if (selectedItems.includes(index)) {
+ const filteredItems = selectedItems.filter(i => i !== index)
+ setItems(filteredItems)
+ } else {
+ setItems([...selectedItems, index])
+ }
+ }
+
+ const onAddToCart = async () => {
+ await setCartRestaurant(order.restaurant._id)
+ selectedItems.forEach(async index => {
+ const item = order.items[index]
+ const addons = item.addons.map(addon => ({
+ _id: addon._id,
+ options: addon.options.map(({ _id }) => ({
+ _id
+ }))
+ }))
+ await addCartItem(
+ item.food,
+ item.variation._id,
+ item.quantity,
+ addons,
+ index === 0
+ )
+ })
+ props.navigation.reset({
+ routes: [{ name: 'Main' }, { name: 'Cart' }]
+ })
+ }
+
+ return (
+ <>
+
+
+
+ {t('selectItems')}
+
+ {order.items.map((item, index) => {
+ return (
+
+
+ onSelect(index)}
+ />
+
+
+
+ {item.title}
+
+ {item.addons.map((addon, index) => {
+ return (
+
+
+ + {addon.title}
+
+ {addon.options.map((option, index) => (
+
+ - {option.title}
+
+ ))}
+
+ )
+ })}
+
+
+ )
+ })}
+
+
+ 0
+ ? styles(currentTheme).buttonStyles
+ : {
+ ...styles(currentTheme).buttonStyles,
+ backgroundColor: currentTheme.lightHorizontalLine
+ }
+ }
+ onPress={onAddToCart}>
+
+ {t('addToCart')}
+
+
+
+
+
+ >
+ )
+}
+
+export default Reorder
diff --git a/enatega-multivendor-app/src/screens/Reorder/screenOptions.js b/enatega-multivendor-app/src/screens/Reorder/screenOptions.js
new file mode 100644
index 0000000..1d40a14
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Reorder/screenOptions.js
@@ -0,0 +1,20 @@
+import { BackButton } from '../../components/Header/HeaderIcons/HeaderIcons'
+import { scale } from '../../utils/scaling'
+import { useTranslation } from 'react-i18next';
+
+const navigationOptions = headerText => {
+ const { t } = useTranslation();
+
+ return {
+ headerTitle: t('titleReorder'),
+ headerTitleAlign: 'left',
+ headerRight: null,
+ headerTitleContainerStyle: {
+ marginLeft: scale(0)
+ },
+ headerBackImage: () =>
+ BackButton({ iconColor: headerText, icon: 'leftArrow' })
+ };
+};
+
+export default navigationOptions;
diff --git a/enatega-multivendor-app/src/screens/Reorder/styles.js b/enatega-multivendor-app/src/screens/Reorder/styles.js
new file mode 100644
index 0000000..d913ac5
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Reorder/styles.js
@@ -0,0 +1,52 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ scrollViewStyle: {
+ flexGrow: 1,
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ justifyContent: 'space-between'
+ },
+ mainContainer: {
+ backgroundColor: props !== null ? props.radioOuterColor : 'transparent',
+ margin: scale(8),
+ paddingBottom: scale(8),
+ borderRadius: scale(15)
+ },
+ buttonContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.menuBar : 'transparent',
+ elevation: 12,
+ shadowColor: props !== null ? props.shadowColor : 'black',
+ shadowOffset: {
+ width: 0,
+ height: -3
+ },
+ shadowOpacity: 0.5,
+ shadowRadius: scale(2)
+ },
+ buttonStyles: {
+ margin: scale(10),
+ paddingHorizontal: scale(50),
+ paddingVertical: scale(15),
+ backgroundColor: props !== null ? props.buttonBackgroundPink : '#6FCF97',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(10)
+ },
+ backButton: {
+ backgroundColor: theme.Pink.white,
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ priceContainer: {
+ flex: 1,
+ alignItems: 'flex-end'
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Restaurant/Restaurant.js b/enatega-multivendor-app/src/screens/Restaurant/Restaurant.js
new file mode 100644
index 0000000..942d23d
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Restaurant/Restaurant.js
@@ -0,0 +1,620 @@
+import {
+ useFocusEffect,
+ useNavigation,
+ useRoute
+} from '@react-navigation/native'
+import React, { useState, useContext, useEffect, useRef } from 'react'
+import {
+ View,
+ TouchableOpacity,
+ Alert,
+ StatusBar,
+ Platform,
+ Image,
+ Dimensions,
+ SectionList
+} from 'react-native'
+import Animated, {
+ Extrapolation,
+ interpolate,
+ useSharedValue,
+ Easing as EasingNode,
+ withTiming,
+ withRepeat,
+ useAnimatedStyle,
+ useAnimatedScrollHandler
+} from 'react-native-reanimated'
+import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context'
+import {
+ Placeholder,
+ PlaceholderMedia,
+ PlaceholderLine,
+ Fade
+} from 'rn-placeholder'
+import ImageHeader from '../../components/Restaurant/ImageHeader'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import ConfigurationContext from '../../context/Configuration'
+import UserContext from '../../context/User'
+import { useRestaurant } from '../../ui/hooks'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { scale } from '../../utils/scaling'
+import { theme } from '../../utils/themeColors'
+import styles from './styles'
+import { DAYS } from '../../utils/enums'
+import { alignment } from '../../utils/alignment'
+import TextError from '../../components/Text/TextError/TextError'
+
+import analytics from '../../utils/analytics'
+
+const { height } = Dimensions.get('screen')
+import { useTranslation } from 'react-i18next'
+
+// Animated Section List component
+const AnimatedSectionList = Animated.createAnimatedComponent(SectionList)
+const TOP_BAR_HEIGHT = height * 0.05
+const HEADER_MAX_HEIGHT = height * 0.3
+const HEADER_MIN_HEIGHT = height * 0.07 + TOP_BAR_HEIGHT
+const SCROLL_RANGE = HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT
+const HALF_HEADER_SCROLL = HEADER_MAX_HEIGHT - TOP_BAR_HEIGHT
+
+const config = (to) => ({
+ duration: 250,
+ toValue: to,
+ easing: EasingNode.inOut(EasingNode.ease)
+})
+
+// const concat = (...args) => args.join('')
+function Restaurant(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const scrollRef = useRef(null)
+ const flatListRef = useRef(null)
+ const navigation = useNavigation()
+ const route = useRoute()
+ const inset = useSafeAreaInsets()
+ const propsData = route.params
+ const animation = useSharedValue(0)
+ const translationY = useSharedValue(0)
+ const circle = useSharedValue(0)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const configuration = useContext(ConfigurationContext)
+ const [selectedLabel, selectedLabelSetter] = useState(0)
+ const [buttonClicked, buttonClickedSetter] = useState(false)
+ const {
+ restaurant: restaurantCart,
+ setCartRestaurant,
+ cartCount,
+ addCartItem,
+ addQuantity,
+ clearCart,
+ checkItemCart
+ } = useContext(UserContext)
+ const { data, refetch, networkStatus, loading, error } = useRestaurant(
+ propsData._id
+ )
+
+ useFocusEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.menuBar)
+ }
+ StatusBar.setBarStyle(
+ themeContext.ThemeValue === 'Dark' ? 'light-content' : 'dark-content'
+ )
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RESTAURANTS)
+ }
+ Track()
+ }, [])
+ useEffect(() => {
+ if (
+ data &&
+ data?.restaurant &&
+ (!data?.restaurant.isAvailable || !isOpen())
+ ) {
+ Alert.alert(
+ '',
+ 'Restaurant Closed at the moment',
+ [
+ {
+ text: 'Go back to restaurants',
+ onPress: () => {
+ navigation.goBack()
+ },
+ style: 'cancel'
+ },
+ {
+ text: 'See Menu',
+ onPress: () => console.log('see menu')
+ }
+ ],
+ { cancelable: false }
+ )
+ }
+ }, [data])
+
+ const scrollHandler = useAnimatedScrollHandler((event) => {
+ translationY.value = event.contentOffset.y
+ })
+
+ const isOpen = () => {
+ if (data) {
+ if (data?.restaurant?.openingTimes?.length < 1) return false
+ const date = new Date()
+ const day = date.getDay()
+ const hours = date.getHours()
+ const minutes = date.getMinutes()
+ const todaysTimings = data?.restaurant?.openingTimes?.find(
+ (o) => o.day === DAYS[day]
+ )
+ if (todaysTimings === undefined) return false
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ )
+
+ return times?.length > 0
+ } else {
+ return false
+ }
+ }
+ const onPressItem = async (food) => {
+ if (!data?.restaurant.isAvailable || !isOpen()) {
+ Alert.alert(
+ '',
+ 'Restaurant Closed at the moment',
+ [
+ {
+ text: 'Go back to restaurants',
+ onPress: () => {
+ navigation.goBack()
+ },
+ style: 'cancel'
+ },
+ {
+ text: 'See Menu',
+ onPress: () => console.log('see menu')
+ }
+ ],
+ { cancelable: false }
+ )
+ return
+ }
+ if (!restaurantCart || food.restaurant === restaurantCart) {
+ await addToCart(food, food.restaurant !== restaurantCart)
+ } else if (food.restaurant !== restaurantCart) {
+ Alert.alert(
+ '',
+ t('clearCartText'),
+ [
+ {
+ text: t('Cancel'),
+ onPress: () => console.log('Cancel Pressed'),
+ style: 'cancel'
+ },
+ {
+ text: t('okText'),
+ onPress: async () => {
+ await addToCart(food, true)
+ }
+ }
+ ],
+ { cancelable: false }
+ )
+ }
+ }
+
+ function wrapContentAfterWords(content, numWords) {
+ const words = content.split(' ')
+ const wrappedContent = []
+
+ for (let i = 0; i < words.length; i += numWords) {
+ wrappedContent.push(words.slice(i, i + numWords).join(' '))
+ }
+
+ return wrappedContent.join('\n')
+ }
+
+ const addToCart = async (food, clearFlag) => {
+ if (
+ food.variations.length === 1 &&
+ food.variations[0].addons.length === 0
+ ) {
+ await setCartRestaurant(food.restaurant)
+ const result = checkItemCart(food._id)
+
+ if (result.exist) await addQuantity(result.key)
+ else await addCartItem(food._id, food.variations[0]._id, 1, [], clearFlag)
+ animate()
+ } else {
+ if (clearFlag) await clearCart()
+ navigation.navigate('ItemDetail', {
+ food,
+ addons: restaurant.addons,
+ options: restaurant.options,
+ restaurant: restaurant._id
+ })
+ }
+ }
+
+ function tagCart(itemId) {
+ if (checkItemCart) {
+ const cartValue = checkItemCart(itemId)
+ if (cartValue.exist) {
+ return (
+ <>
+
+
+ {cartValue.quantity}
+
+ >
+ )
+ }
+ }
+ return null
+ }
+
+ const scaleValue = useSharedValue(1)
+
+ const scaleStyles = useAnimatedStyle(() => ({
+ transform: [{ scale: scaleValue.value }]
+ }))
+
+ // button animation
+ function animate() {
+ scaleValue.value = withRepeat(withTiming(1.5, { duration: 250 }), 2, true)
+ }
+
+ const scrollToSection = (index) => {
+ if (scrollRef.current != null) {
+ scrollRef.current.scrollToLocation({
+ animated: true,
+ sectionIndex: index,
+ itemIndex: 0,
+ viewOffset: -(HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT),
+ viewPosition: 0
+ })
+ }
+ }
+
+ function changeIndex(index) {
+ if (selectedLabel !== index) {
+ selectedLabelSetter(index)
+ buttonClickedSetter(true)
+ scrollToSection(index)
+ scrollToNavbar(index)
+ }
+ }
+ function scrollToNavbar(value) {
+ if (flatListRef.current != null) {
+ flatListRef.current.scrollToIndex({
+ animated: true,
+ index: value,
+ viewPosition: 0.5
+ })
+ }
+ }
+
+ function onViewableItemsChanged({ viewableItems }) {
+ if (viewableItems?.length === 0) return
+ if (
+ selectedLabel !== viewableItems[0].section.index &&
+ buttonClicked === false
+ ) {
+ selectedLabelSetter(viewableItems[0].section.index)
+ scrollToNavbar(viewableItems[0].section.index)
+ }
+ }
+ const onScrollEndSnapToEdge = (event) => {
+ event.persist()
+ const y = event.nativeEvent.contentOffset.y
+
+ if (y > 0 && y < HALF_HEADER_SCROLL / 2) {
+ if (scrollRef.current) {
+ withTiming(translationY.value, config(0), (finished) => {
+ if (finished) {
+ scrollRef.current.scrollToLocation({
+ animated: false,
+ sectionIndex: 0,
+ itemIndex: 0,
+ viewOffset: HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT,
+ viewPosition: 0
+ })
+ }
+ })
+ }
+ } else if (HALF_HEADER_SCROLL / 2 <= y && y < HALF_HEADER_SCROLL) {
+ if (scrollRef.current) {
+ withTiming(translationY.value, config(SCROLL_RANGE), (finished) => {
+ if (finished) {
+ scrollRef.current.scrollToLocation({
+ animated: false,
+ sectionIndex: 0,
+ itemIndex: 0,
+ viewOffset: -(HEADER_MAX_HEIGHT - HEADER_MIN_HEIGHT),
+ viewPosition: 0
+ })
+ }
+ })
+ }
+ }
+ buttonClickedSetter(false)
+ }
+
+ const circleSize = interpolate(
+ circle.value,
+ [0, 0.5, 1],
+ [scale(18), scale(24), scale(18)],
+ Extrapolation.CLAMP
+ )
+ const radiusSize = interpolate(
+ circle.value,
+ [0, 0.5, 1],
+ [scale(9), scale(12), scale(9)],
+ Extrapolation.CLAMP
+ )
+
+ const fontStyles = useAnimatedStyle(() => {
+ return {
+ fontSize: interpolate(
+ circle.value,
+ [0, 0.5, 1],
+ [8, 12, 8],
+ Extrapolation.CLAMP
+ )
+ }
+ })
+
+ if (loading) {
+ return (
+
+
+
+
+ {Array.from(Array(10), (_, i) => (
+ (
+
+ )}
+ Left={PlaceholderMedia}
+ style={{
+ padding: 12
+ }}
+ >
+
+
+
+ ))}
+
+
+ )
+ }
+ if (error) return
+ const restaurant = data && data.restaurant
+ const allDeals = restaurant.categories.filter((cat) => cat.foods.length)
+ const deals = allDeals.map((c, index) => ({
+ ...c,
+ data: c.foods,
+ index
+ }))
+
+ return (
+ <>
+
+
+
+
+ networkStatus === 7 && refetch()}
+ onViewableItemsChanged={onViewableItemsChanged}
+ onMomentumScrollEnd={(event) => {
+ onScrollEndSnapToEdge(event)
+ }}
+ onScroll={scrollHandler}
+ keyExtractor={(item, index) => item + index}
+ ItemSeparatorComponent={() => (
+
+ )}
+ SectionSeparatorComponent={(props) => {
+ if (!props.leadingItem) return null
+ return
+ }}
+ renderSectionHeader={({ section: { title } }) => {
+ return (
+
+ {title}
+
+ )
+ }}
+ renderItem={({ item, index }) => (
+
+ onPressItem({
+ ...item,
+ restaurant: restaurant._id,
+ restaurantName: restaurant.name
+ })
+ }
+ >
+
+
+
+
+ {item.title}
+
+
+ {wrapContentAfterWords(item.description, 5)}
+
+
+
+ {configuration.currencySymbol}{' '}
+ {parseFloat(item.variations[0].price).toFixed(2)}
+
+ {item.variations[0].discounted > 0 && (
+
+ {configuration.currencySymbol}{' '}
+ {(
+ item.variations[0].price +
+ item.variations[0].discounted
+ ).toFixed(2)}
+
+ )}
+
+
+
+ {item.image ? (
+
+ ) : null}
+
+ {tagCart(item._id)}
+
+ )}
+ />
+ {cartCount > 0 && (
+
+ navigation.navigate('Cart')}
+ >
+
+
+
+ {cartCount}
+
+
+
+
+ {t('viewCart')}
+
+
+
+
+ )}
+
+
+ >
+ )
+}
+
+export default Restaurant
diff --git a/enatega-multivendor-app/src/screens/Restaurant/styles.js b/enatega-multivendor-app/src/screens/Restaurant/styles.js
new file mode 100644
index 0000000..8a175f4
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Restaurant/styles.js
@@ -0,0 +1,156 @@
+import { scale, verticalScale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { textStyles } from '../../utils/textStyles'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1,
+ backgroundColor: props != null ? props.themeBackground : 'white'
+ },
+ navbarContainer: {
+ paddingBottom: 0,
+ height: '5%',
+ elevation: 4,
+ shadowColor: theme.Pink.black,
+ shadowOffset: {
+ width: 0,
+ height: verticalScale(2)
+ },
+ shadowOpacity: 0.6,
+ shadowRadius: verticalScale(2),
+ zIndex: 1
+ },
+ sectionHeaderText: {
+ textTransform: 'capitalize',
+ ...alignment.PLlarge,
+ ...alignment.PTlarge,
+ ...alignment.PBlarge
+ },
+ deal: {
+ width: '100%',
+ flexDirection: 'row',
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ },
+ dealSection: {
+ position: 'relative',
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ ...alignment.PLlarge,
+ ...alignment.PRxSmall,
+ borderRadius: scale(25),
+ paddingVertical: scale(10)
+ },
+ dealDescription: {
+ flex: 1,
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+
+ ...alignment.PRxSmall
+ },
+ dealPrice: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ overflow: 'hidden'
+ },
+ priceText: {
+ color: props != null ? props.darkBgFont : 'white',
+ fontSize: 15,
+ paddingTop: scale(10),
+ maxWidth: '100%',
+ ...alignment.MRxSmall
+ },
+ headerText: {
+ fontSize: 18,
+ paddingTop: scale(5),
+ maxWidth: '100%',
+ ...alignment.MRxSmall,
+ backgroundColor: props != null ? props.radioOuterColor : 'white',
+ },
+ listSeperator: {
+ borderBottomWidth: StyleSheet.hairlineWidth,
+ borderColor: theme.Pink.black,
+ paddingTop: scale(15),
+ marginBottom: scale(15),
+ width: '90%',
+ alignSelf: 'center'
+ },
+ sectionSeparator: {
+ width: '100%',
+ height: scale(15),
+ backgroundColor: props != null ? props.themeBackground : 'white'
+ },
+
+ buttonContainer: {
+ width: '100%',
+ height: '10%',
+ backgroundColor: props !== null ? props.themeBackground : 'black',
+ justifyContent: 'center',
+ alignItems: 'center',
+ elevation: 12,
+ shadowColor: props !== null ? props.shadowColor : 'black',
+ shadowOffset: {
+ width: 0,
+ height: -verticalScale(3)
+ },
+ shadowOpacity: 0.5,
+ shadowRadius: verticalScale(2)
+ },
+ button: {
+ justifyContent: 'space-between',
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderRadius: scale(16),
+ backgroundColor: props !== null ? props.buttonBackground : 'black',
+ height: '75%',
+ width: '95%',
+ ...alignment.PLsmall,
+ ...alignment.PRsmall
+ },
+ buttonText: {
+ width: '30%',
+ color: 'black'
+ },
+ buttonTextRight: {
+ width: '35%'
+ },
+ buttontLeft: {
+ width: '35%',
+ height: '50%',
+ justifyContent: 'center'
+ },
+ buttonLeftCircle: {
+ backgroundColor: props != null ? props.black : 'black',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ buttonTextLeft: {
+ ...textStyles.Bolder,
+ ...textStyles.Center,
+ ...textStyles.Smaller,
+ backgroundColor: 'transparent',
+ color: props != null ? props.white : 'white'
+ },
+ triangleCorner: {
+ position: 'absolute',
+ right: 0,
+ top: 0,
+ width: 0,
+ height: 0,
+ backgroundColor: 'transparent',
+ borderStyle: 'solid',
+ borderLeftWidth: scale(25),
+ borderTopWidth: scale(20),
+ borderLeftColor: 'transparent',
+ borderTopColor: props != null ? props.tagColor : 'red'
+ },
+ tagText: {
+ width: scale(15),
+ backgroundColor: 'transparent',
+ position: 'absolute',
+ top: 1,
+ right: 0,
+ textAlign: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/SelectLocation/SelectLocation.js b/enatega-multivendor-app/src/screens/SelectLocation/SelectLocation.js
new file mode 100644
index 0000000..34288d0
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/SelectLocation/SelectLocation.js
@@ -0,0 +1,151 @@
+import React, { useState, useContext, useLayoutEffect, useEffect } from 'react'
+import { View, TouchableOpacity, StatusBar, Linking } from 'react-native'
+import { LocationContext } from '../../context/Location'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
+import { theme } from '../../utils/themeColors'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import styles from './styles'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import screenOptions from './screenOptions'
+import { useNavigation } from '@react-navigation/native'
+import { useLocation } from '../../ui/hooks'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import { mapStyle } from '../../utils/mapStyle'
+import CustomMarker from '../../assets/SVG/imageComponents/CustomMarker'
+import analytics from '../../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+const LATITUDE = 33.699265
+const LONGITUDE = 72.974575
+const LATITUDE_DELTA = 40
+const LONGITUDE_DELTA = 40
+
+export default function SelectLocation(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const { longitude, latitude } = props.route.params || {}
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ const navigation = useNavigation()
+ const inset = useSafeAreaInsets()
+ const { getCurrentLocation, getLocationPermission } = useLocation()
+ const { setLocation } = useContext(LocationContext)
+ const [label, setLabel] = useState(
+ longitude && latitude ? t('currentLocation') : t('selectedLocation')
+ )
+ // eslint-disable-next-line no-unused-vars
+ const [coordinates, setCorrdinates] = useState({
+ latitude: latitude || LATITUDE,
+ longitude: longitude || LONGITUDE,
+ latitudeDelta: latitude ? 0.003 : LATITUDE_DELTA,
+ longitudeDelta: longitude ? 0.003 : LONGITUDE_DELTA
+ })
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_SELECTLOCATION)
+ }
+ Track()
+ }, [])
+ let mapRef = null
+ useLayoutEffect(() => {
+ navigation.setOptions(
+ screenOptions({
+ title: t('setLocation'),
+ fontColor: currentTheme.fontMainColor,
+ backColor: currentTheme.white,
+ iconColor: currentTheme.iconColorPink,
+ lineColor: currentTheme.lightHorizontalLine,
+ setCurrentLocation
+ })
+ )
+ })
+
+ StatusBar.setBarStyle('dark-content')
+
+ const setCurrentLocation = async () => {
+ const { status, canAskAgain } = await getLocationPermission()
+ if (status !== 'granted' && !canAskAgain) {
+ FlashMessage({
+ message: t('locationPermissionMessage'),
+ // 'Tap on this message to open Settings then allow app to use location from permissions.',
+ onPress: async () => {
+ await Linking.openSettings()
+ }
+ })
+ return
+ }
+ const { error, coords, message } = await getCurrentLocation()
+ if (error) {
+ FlashMessage({
+ message
+ })
+ return
+ }
+ mapRef.fitToCoordinates([
+ {
+ latitude: coords.latitude,
+ longitude: coords.longitude
+ }
+ ])
+ setLabel('currentLocation')
+ // setLabel(t('currentLocation'))
+ }
+ const onSelectLocation = () => {
+ setLocation({
+ label,
+ deliveryAddress: label,
+ latitude: coordinates.latitude,
+ longitude: coordinates.longitude
+ })
+ }
+ const onRegionChangeComplete = coordinates => {
+ setCorrdinates({
+ ...coordinates
+ })
+ }
+
+ const onPanDrag = event => {
+ // setLabel('Selected Location')
+ setLabel(t('selectedLocation'))
+ }
+ return (
+ <>
+
+ {
+ mapRef = ref
+ }}
+ initialRegion={coordinates}
+ region={coordinates}
+ style={{ height: '92%' }}
+ provider={PROVIDER_GOOGLE}
+ showsTraffic={false}
+ maxZoomLevel={15}
+ customMapStyle={themeContext.ThemeValue === 'Dark' ? mapStyle : null}
+ onRegionChangeComplete={onRegionChangeComplete}
+ onPanDrag={onPanDrag}
+ />
+
+
+
+
+
+ {t('selectLocation')}
+
+
+
+
+ >
+ )
+}
diff --git a/enatega-multivendor-app/src/screens/SelectLocation/index.js b/enatega-multivendor-app/src/screens/SelectLocation/index.js
new file mode 100644
index 0000000..9e4726b
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/SelectLocation/index.js
@@ -0,0 +1 @@
+export { default } from './SelectLocation'
diff --git a/enatega-multivendor-app/src/screens/SelectLocation/screenOptions.js b/enatega-multivendor-app/src/screens/SelectLocation/screenOptions.js
new file mode 100644
index 0000000..18e1d58
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/SelectLocation/screenOptions.js
@@ -0,0 +1,39 @@
+/* eslint-disable react/display-name */
+import React from 'react'
+import {
+ RightButton,
+ BackButton
+} from '../../components/Header/HeaderIcons/HeaderIcons'
+import { textStyles } from '../../utils/textStyles'
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+
+const screenOptions = props => ({
+ headerTitleAlign: 'center',
+ title: props.title,
+ headerBackTitleVisible: false,
+ headerStyle: {
+ backgroundColor: props.backColor,
+ borderBottomColor: props.lineColor,
+ borderBottomWidth: StyleSheet.hairlineWidth
+ },
+ headerTitleStyle: {
+ color: props.fontColor,
+ ...textStyles.H3,
+ ...textStyles.Bold,
+ backgroundColor: 'transparent'
+ },
+ headerTitleContainerStyle: {
+ marginHorizontal: scale(35)
+ },
+ headerBackImage: () =>
+ BackButton({ iconColor: props.iconColor, icon: 'leftArrow' }),
+ headerRight: () => (
+
+ )
+})
+export default screenOptions
diff --git a/enatega-multivendor-app/src/screens/SelectLocation/styles.js b/enatega-multivendor-app/src/screens/SelectLocation/styles.js
new file mode 100644
index 0000000..2f1f70b
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/SelectLocation/styles.js
@@ -0,0 +1,38 @@
+import { scale } from '../../utils/scaling'
+
+const { StyleSheet } = require('react-native')
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ button: {
+ width: '100%',
+ height: '8%',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: props != null ? props.buttonBackground : 'red'
+ },
+ overlay: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ flex: 1,
+ backgroundColor: 'rgba(0,0,0,0.2)'
+ },
+ mainContainer: {
+ width: scale(50),
+ height: scale(50),
+ position: 'absolute',
+ top: '46%',
+ left: '50%',
+ zIndex: 1,
+ translateX: scale(-25),
+ translateY: scale(-25),
+ justifyContent: 'center',
+ alignItems: 'center',
+ transform: [{ translateX: scale(-25) }, { translateY: scale(-25) }]
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Settings/Settings.js b/enatega-multivendor-app/src/screens/Settings/Settings.js
new file mode 100644
index 0000000..92a5ffb
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Settings/Settings.js
@@ -0,0 +1,600 @@
+import React, { useState, useContext, useEffect, useRef } from 'react'
+import {
+ AppState,
+ View,
+ TouchableOpacity,
+ Platform,
+ Linking,
+ StatusBar,
+ ActivityIndicator,
+ Text
+} from 'react-native'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import * as Updates from 'expo-updates'
+import * as Notifications from 'expo-notifications'
+import * as Localization from 'expo-localization'
+import Modal from 'react-native-modal'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import { Ionicons } from '@expo/vector-icons'
+import { profile } from '../../apollo/queries'
+
+import {
+ pushToken,
+ updateNotificationStatus,
+ Deactivate
+} from '../../apollo/mutations'
+
+import gql from 'graphql-tag'
+import { useMutation } from '@apollo/client'
+import styles from './styles'
+import CheckboxBtn from '../../ui/FdCheckbox/CheckboxBtn'
+import RadioButton from '../../ui/FdRadioBtn/RadioBtn'
+import Spinner from '../../components/Spinner/Spinner'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import UserContext from '../../context/User'
+import { Modalize } from 'react-native-modalize'
+import { useNavigation } from '@react-navigation/native'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import * as Constants from 'expo-constants'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import * as Device from 'expo-device'
+import AuthContext from '../../context/Auth'
+import analytics from '../../utils/analytics'
+import { Divider } from 'react-native-paper'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { MaterialIcons } from '@expo/vector-icons'
+import { scale } from '../../utils/scaling'
+import i18next from '../../../i18next'
+import { useTranslation } from 'react-i18next'
+
+const languageTypes = [
+ { value: 'English', code: 'en', index: 0 },
+ { value: 'français', code: 'fr', index: 1 },
+ { value: 'ភាសាខ្មែរ', code: 'km', index: 2 },
+ { value: '中文', code: 'zh', index: 3 },
+ { value: 'Deutsche', code: 'de', index: 4 },
+ { value: 'arabic', code: 'ar', index: 5 }
+]
+
+const PUSH_TOKEN = gql`
+ ${pushToken}
+`
+const UPDATE_NOTIFICATION_TOKEN = gql`
+ ${updateNotificationStatus}
+`
+const PROFILE = gql`
+ ${profile}
+`
+const DEACTIVATE = gql`
+ ${Deactivate}
+`
+
+const appVersion = Constants.default.expoConfig.version
+
+function Settings(props) {
+ const Analytics = analytics()
+
+ const { token, setToken } = useContext(AuthContext)
+ const {
+ profile,
+ loadingProfile,
+ errorProfile,
+ logout,
+ isLoggedIn
+ } = useContext(UserContext)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const { t } = useTranslation()
+
+ const [languageName, languageNameSetter] = useState('English')
+ const [orderNotification, orderNotificationSetter] = useState()
+ const [offerNotification, offerNotificationSetter] = useState()
+ const [modalVisible, modalVisibleSetter] = useState(false)
+ const [loadinglang, setLoadingLang] = useState(false)
+ const [activeRadio, activeRadioSetter] = useState(languageTypes[0].index)
+ const [darkTheme, setDarkTheme] = useState(themeContext.ThemeValue === 'Dark')
+ const [btnText, setBtnText] = useState(null)
+ const navigation = useNavigation()
+ const [appState, setAppState] = useState(AppState.currentState)
+ const [uploadToken] = useMutation(PUSH_TOKEN)
+ const [mutate, { loading }] = useMutation(UPDATE_NOTIFICATION_TOKEN, {
+ onCompleted,
+ onError,
+ refetchQueries: [{ query: PROFILE }]
+ })
+ const [deactivated] = useMutation(DEACTIVATE)
+ const modalizeRef = useRef(null)
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_SETTINGS)
+ }
+ Track()
+ }, [])
+ useEffect(() => {
+ if (Platform.OS === 'android') {
+ StatusBar.setBackgroundColor(currentTheme.firstHeaderBackground)
+ }
+ StatusBar.setBarStyle('light-content')
+ }, [])
+
+ useEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ ),
+ headerTitle: t('titleSettings'),
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ backgroundColor: currentTheme.black,
+ borderWidth: 1,
+ borderColor: currentTheme.white,
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.themeBackground
+ }
+ })
+ selectLanguage()
+ checkPermission()
+ }, [props.navigation, languageName])
+
+ async function deactivatewithemail() {
+ console.log('Calling deactivatewithemail')
+ try {
+ await deactivated({
+ variables: { isActive: false, email: profile.email }
+ })
+ logout()
+ navigation.reset({
+ routes: [{ name: 'Main' }]
+ })
+ FlashMessage({ message: t('accountDeactivated') })
+ } catch (error) {
+ console.error('Error during deactivation mutation:', error)
+ }
+ }
+
+ const _handleAppStateChange = async nextAppState => {
+ if (nextAppState === 'active') {
+ let token = null
+ const permission = await getPermission()
+ if (permission === 'granted') {
+ if (!profile.notificationToken) {
+ token = await Notifications.getExpoPushTokenAsync()
+ uploadToken({ variables: { token: token.data } })
+ }
+ offerNotificationSetter(profile.isOfferNotification)
+ orderNotificationSetter(profile.isOrderNotification)
+ } else {
+ offerNotificationSetter(false)
+ orderNotificationSetter(false)
+ }
+ }
+ setAppState(nextAppState)
+ }
+
+ useEffect(() => {
+ AppState.addEventListener('change', _handleAppStateChange)
+ }, [])
+
+ async function checkPermission() {
+ const permission = await getPermission()
+ if (permission !== 'granted') {
+ offerNotificationSetter(false)
+ orderNotificationSetter(false)
+ } else {
+ offerNotificationSetter(profile.isOfferNotification)
+ orderNotificationSetter(profile.isOrderNotification)
+ }
+ }
+
+ async function getPermission() {
+ const { status } = await Notifications.getPermissionsAsync()
+ return status
+ }
+ const onClose = () => {
+ modalizeRef.current.close()
+ }
+ function toggleTheme() {
+ if (themeContext.ThemeValue === 'Pink') {
+ themeContext.dispatch({ type: 'Dark' })
+ } else themeContext.dispatch({ type: 'Pink' })
+ setDarkTheme(!darkTheme)
+ }
+
+ async function selectLanguage() {
+ const lang = await AsyncStorage.getItem('enatega-language')
+ console.log(lang)
+ if (lang) {
+ const defLang = languageTypes.findIndex(el => el.code === lang)
+ const langName = languageTypes[defLang].value
+ activeRadioSetter(defLang)
+ languageNameSetter(langName)
+ }
+ }
+
+ async function onSelectedLanguage() {
+ try {
+ // Display loading indicator
+ setLoadingLang(true)
+ const languageInd = activeRadio
+ await AsyncStorage.setItem(
+ 'enatega-language',
+ languageTypes[languageInd].code
+ )
+
+ var lang = await AsyncStorage.getItem('enatega-language')
+ if (lang) {
+ const defLang = languageTypes.findIndex(el => el.code === lang)
+ const langName = languageTypes[defLang].value
+ languageNameSetter(langName)
+ }
+ i18next.changeLanguage(lang)
+ modalVisibleSetter(false)
+ } catch (error) {
+ console.error('Error during language selection:', error)
+ } finally {
+ setLoadingLang(false)
+ }
+ }
+
+ function onCompleted() {
+ FlashMessage({
+ message: t('notificationStatusUpdated')
+ })
+ }
+
+ function onError(error) {
+ try {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message
+ })
+ } catch (err) { }
+ }
+
+ async function updateNotificationStatus(notificationCheck) {
+ let orderNotify, offerNotify
+ if (!Device.isDevice) {
+ FlashMessage({
+ message: t('notificationNotWork')
+ })
+ return
+ }
+
+ const permission = await getPermission()
+ if (!profile.notificationToken || permission !== 'granted') {
+ Linking.openSettings()
+ }
+ if (notificationCheck === 'offer') {
+ offerNotificationSetter(!offerNotification)
+ orderNotify = orderNotification
+ offerNotify = !offerNotification
+ }
+
+ if (notificationCheck === 'order') {
+ orderNotificationSetter(!orderNotification)
+ orderNotify = !orderNotification
+ offerNotify = offerNotification
+ }
+ mutate({
+ variables: {
+ offerNotification: offerNotify,
+ orderNotification: orderNotify
+ }
+ })
+ }
+ if (errorProfile) {
+ FlashMessage({
+ message: t('errorInProfile')
+ })
+ }
+ if (loadingProfile) return
+ return (
+
+
+ {/* {Platform.OS === 'android' && ( */}
+
+
+
+
+ {t('languageSetting')}
+
+
+ modalVisibleSetter(true)}
+ style={styles().button}>
+
+
+
+
+ {languageName}
+
+
+ {/* )
+ } */}
+
+ {
+ updateNotificationStatus('offer')
+ setBtnText('offer')
+ }}
+ style={[styles(currentTheme).notificationContainer]}>
+
+
+ {' '}
+ {t('receiveSpecialOffers')}{' '}
+
+
+ {
+ updateNotificationStatus('offer')
+ setBtnText('offer')
+ }}
+ />
+
+
+ {loading && btnText === 'offer' && (
+
+
+
+ )}
+
+
+ {
+ updateNotificationStatus('order')
+ setBtnText('order')
+ }}
+ style={[styles(currentTheme).notificationContainer]}>
+
+
+ {' '}
+ {t('getUpdates')}{' '}
+
+
+ {
+ updateNotificationStatus('order')
+ setBtnText('order')
+ }}
+ />
+
+
+ {loading && btnText === 'order' && (
+
+
+
+ )}
+
+
+ toggleTheme()}
+ style={[styles(currentTheme).notificationContainer]}>
+
+
+ {' '}
+ {t('turnOnDarkTheme')}{' '}
+
+
+ toggleTheme()}
+ />
+
+
+
+
+ toggleTheme()}
+ style={[styles(currentTheme).notificationContainer]}>
+
+
+ {
+ modalizeRef.current.open('top')
+ }}>
+
+
+ {t('DELETEACCOUNT')}
+
+
+
+
+
+
+
+
+ Version: {appVersion}
+
+
+
+
+ {/* Modal for language Changes */}
+
+ modalVisibleSetter(false)}
+ onBackButtonPress={() => modalVisibleSetter(false)}>
+
+
+ {t('selectLanguage')}
+
+
+ {languageTypes.map((item, index) => (
+ activeRadioSetter(item.index)}
+ style={[styles(currentTheme).radioContainer]}>
+ activeRadioSetter(item.index)}
+ />
+
+ {item.value}
+
+
+ ))}
+
+ modalVisibleSetter(false)}>
+
+ {t('Cancel')}
+
+
+ onSelectedLanguage()}>
+
+ {t('Select')}
+
+
+
+ {loadinglang && (
+
+
+
+ )}
+
+
+
+
+
+ {t('DeleteConfirmation')}
+
+
+
+ {t('DeleteAccount')}
+
+
+ onClose()}>
+
+ {' '}
+ {t('Cancel')}
+
+
+
+
+
+ )
+}
+export default Settings
diff --git a/enatega-multivendor-app/src/screens/Settings/styles.js b/enatega-multivendor-app/src/screens/Settings/styles.js
new file mode 100644
index 0000000..8f4f94a
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Settings/styles.js
@@ -0,0 +1,130 @@
+import { verticalScale, scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ width85: {
+ width: '85%'
+ },
+ shadow: {
+ shadowOffset: { width: 0, height: scale(2) },
+ shadowColor: theme.Pink.black,
+ shadowOpacity: 0.3,
+ shadowRadius: scale(1),
+ elevation: 5,
+ borderWidth: 0.4,
+ borderColor: '#e1e1e1'
+ },
+ backButton: {
+ backgroundColor: theme.Pink.white,
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ mainContainerArea: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ borderRadius: scale(30),
+ shadowOffset: { width: 0 },
+ shadowColor: theme.Pink.black,
+ shadowOpacity: 0.1,
+ marginTop: scale(20)
+ },
+ mainContainer: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.PxSmall
+ },
+ languageContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.cartContainer : '#FFF',
+ borderRadius: scale(12),
+ ...alignment.PRmedium,
+ ...alignment.PTlarge,
+ ...alignment.PBlarge,
+ ...alignment.PLmedium
+ },
+ changeLanguage: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ width: '100%',
+ ...alignment.MBsmall
+ },
+ button: {
+ width: '15%',
+ alignItems: 'flex-end'
+ },
+ notificationContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ ...alignment.PTmedium,
+ ...alignment.PBmedium,
+ ...alignment.PRsmall,
+ ...alignment.PLsmall,
+ ...alignment.MTxSmall
+ },
+ notificationChekboxContainer: {
+ flexDirection: 'row',
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'space-between'
+ },
+
+ buttonContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ deleteButton: {
+ display: 'flex',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: scale(10),
+ borderRadius: scale(6),
+ backgroundColor: theme.Pink.deleteButton
+ },
+ deleteButtonText: {
+ color: 'white',
+ fontSize: scale(18),
+ fontWeight: '600'
+ },
+ versionContainer: {
+ width: '100%',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: 'transparent',
+ ...alignment.MTlarge
+ },
+ modalContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.themeBackground : '#FFF',
+ borderRadius: verticalScale(4),
+ ...alignment.Plarge
+ },
+ radioContainer: {
+ width: '100%',
+ backgroundColor: props !== null ? props.themeBackground : '#FFF',
+ flexDirection: 'row',
+ alignItems: 'center',
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ },
+ modalButtonsContainer: {
+ flexDirection: 'row',
+ justifyContent: 'flex-end'
+ },
+ modalButtons: {
+ ...alignment.Msmall,
+ marginBottom: 0,
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-app/src/screens/Stripe/StripeCheckout.js b/enatega-multivendor-app/src/screens/Stripe/StripeCheckout.js
new file mode 100644
index 0000000..65aa3d2
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Stripe/StripeCheckout.js
@@ -0,0 +1,97 @@
+import React, { useContext, useEffect, useLayoutEffect, useState } from 'react'
+import { ActivityIndicator, View } from 'react-native'
+import { WebView } from 'react-native-webview'
+import { myOrders } from '../../apollo/queries'
+import gql from 'graphql-tag'
+import useEnvVars from '../../../environment'
+import { useApolloClient } from '@apollo/client'
+import UserContext from '../../context/User'
+import analytics from '../../utils/analytics'
+
+import { useTranslation } from 'react-i18next'
+
+const MYORDERS = gql`
+ ${myOrders}
+`
+
+function StripeCheckout(props) {
+ const Analytics = analytics()
+
+ const { SERVER_URL } = useEnvVars()
+ console.log('SERVER_URL', SERVER_URL)
+ const { t } = useTranslation()
+ const [loading, loadingSetter] = useState(true)
+ const { clearCart } = useContext(UserContext)
+ const client = useApolloClient()
+ const { _id } = props.route.params
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('stripeCheckout')
+ })
+ }, [props.navigation])
+
+ function onClose(flag) {
+ // showMessage here
+ props.navigation.goBack()
+ }
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_STRIPE)
+ }
+ Track()
+ }, [])
+
+ async function handleResponse(data) {
+ if (data.url.includes('stripe/success')) {
+ const result = await client.query({
+ query: MYORDERS,
+ fetchPolicy: 'network-only'
+ })
+ const order = result.data.orders.find(order => order.orderId === _id)
+ await clearCart()
+ console.log('cart clear')
+ props.navigation.reset({
+ routes: [
+ { name: 'Main' },
+ {
+ name: 'OrderDetail',
+ params: { _id: order._id }
+ }
+ ]
+ })
+ } else if (data.url.includes('stripe/cancel')) {
+ props.navigation.goBack()
+ // goBack on Payment Screen
+ }
+ }
+
+ return (
+
+ {
+ loadingSetter(false)
+ console.log(loading)
+ }}
+ source={{
+ uri: `${SERVER_URL}stripe/create-checkout-session?id=${_id}`
+ }}
+ scalesPageToFit={true}
+ onNavigationStateChange={data => {
+ handleResponse(data)
+ }}
+ />
+ {loading ? (
+
+ ) : null}
+
+ )
+}
+
+export default StripeCheckout
diff --git a/enatega-multivendor-app/src/screens/Tip/Tip.js b/enatega-multivendor-app/src/screens/Tip/Tip.js
new file mode 100644
index 0000000..19861ca
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Tip/Tip.js
@@ -0,0 +1,126 @@
+import React, { useContext, useEffect, useLayoutEffect, useRef } from 'react'
+import { View, TouchableOpacity, Keyboard } from 'react-native'
+import { TextField, OutlinedTextField } from 'react-native-material-textfield'
+import { scale } from '../../utils/scaling'
+import ThemeContext from '../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utils/alignment'
+import { FlashMessage } from '../../ui/FlashMessage/FlashMessage'
+import styles from './styles'
+import { useNavigation } from '@react-navigation/native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import analytics from '../../utils/analytics'
+import { HeaderBackButton } from '@react-navigation/elements'
+import navigationService from '../../routes/navigationService'
+import { Entypo } from '@expo/vector-icons'
+import { useTranslation } from 'react-i18next'
+
+function Tip(props) {
+ const Analytics = analytics()
+
+ const { t } = useTranslation()
+ const navigation = useNavigation()
+ const inset = useSafeAreaInsets()
+ const tipRef = useRef(null)
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ useLayoutEffect(() => {
+ props.navigation.setOptions({
+ headerRight: null,
+ title: t('titleTipping'),
+ headerTitleAlign: 'center',
+ headerTitleContainerStyle: {
+ marginTop: '1%',
+ paddingLeft: scale(25),
+ paddingRight: scale(25),
+ height: '75%',
+ borderRadius: scale(10),
+ borderWidth: 1,
+ borderColor: currentTheme.white,
+ backgroundColor: currentTheme.black,
+ marginLeft: 0
+ },
+ headerStyle: {
+ backgroundColor: currentTheme.headerColor,
+ shadowColor: 'transparent',
+ shadowRadius: 0
+ },
+ headerLeft: () => (
+ (
+
+
+
+ )}
+ onPress={() => {
+ navigationService.goBack()
+ }}
+ />
+ )
+ })
+ }, [navigation])
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_TIPS)
+ }
+ Track()
+ }, [])
+ function onTipping() {
+ const tipAmount = tipRef.current.value()
+ if (isNaN(tipAmount)) FlashMessage({ message: t('invalidAmount') })
+ else if (Number(tipAmount) <= 0) {
+ FlashMessage({ message: t('amountMustBe') })
+ } else navigation.navigate('Cart', { tipAmount: Number(tipAmount) })
+ }
+
+ const HeaderLine = props => {}
+ return (
+ <>
+
+
+
+
+
+
+
+
+ {t('apply')}
+
+
+
+
+
+ >
+ )
+}
+
+export default Tip
diff --git a/enatega-multivendor-app/src/screens/Tip/styles.js b/enatega-multivendor-app/src/screens/Tip/styles.js
new file mode 100644
index 0000000..d10ab84
--- /dev/null
+++ b/enatega-multivendor-app/src/screens/Tip/styles.js
@@ -0,0 +1,64 @@
+import { scale, verticalScale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utils/alignment'
+import { theme } from '../../utils/themeColors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mB10: {
+ ...alignment.MBsmall
+ },
+ mainContainer: {
+ backgroundColor: props !== null ? props.themeBackground : 'transparent',
+ ...alignment.PRsmall,
+ ...alignment.PLsmall
+ },
+ headerlineContainer: {
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ ...alignment.PTsmall,
+ ...alignment.PBsmall
+ },
+ headerLine: {
+ borderBottomWidth: 1,
+ borderColor: props !== null ? props.horizontalLine : 'grey'
+ },
+ upperContainer: {
+ width: '95%',
+ height: verticalScale(80),
+ alignSelf: 'center',
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: props !== null ? props.radioOuterColor : 'white',
+ justifyContent: 'space-between',
+ paddingLeft: scale(10),
+ paddingRight: scale(10),
+ borderRadius: scale(6),
+ marginTop: scale(30)
+ },
+ bacKButton: {
+ backgroundColor: theme.Pink.white,
+ borderRadius: scale(50),
+ marginLeft: scale(10),
+ width: scale(55),
+ alignItems: 'center'
+ },
+ innerContainer: {
+ width: '70%',
+ paddingTop: scale(10),
+ },
+ buttonContainer: {
+ width: '25%',
+ height: '55%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: scale(6),
+ backgroundColor: props !== null ? props.buttonBackground : 'pink'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/ui/FdCheckbox/CheckboxBtn.js b/enatega-multivendor-app/src/ui/FdCheckbox/CheckboxBtn.js
new file mode 100644
index 0000000..b4af266
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdCheckbox/CheckboxBtn.js
@@ -0,0 +1,31 @@
+import React, { useContext } from 'react'
+import { TouchableOpacity } from 'react-native'
+import { AntDesign } from '@expo/vector-icons'
+import styles from './styles'
+import { scale } from '../../utils/scaling'
+import ThemeContext from '../ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+
+function CheckboxBtn(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+ {props.checked ? (
+
+ ) : null}
+
+ )
+}
+export default CheckboxBtn
diff --git a/enatega-multivendor-app/src/ui/FdCheckbox/styles.js b/enatega-multivendor-app/src/ui/FdCheckbox/styles.js
new file mode 100644
index 0000000..105a898
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdCheckbox/styles.js
@@ -0,0 +1,14 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+const styles = (props = null) =>
+ StyleSheet.create({
+ mainContainer: {
+ borderColor: props !== null ? props.horizontalLine : 'grey',
+ borderWidth: StyleSheet.hairlineWidth,
+ width: scale(20),
+ height: scale(20),
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/ui/FdRadioBtn/RadioBtn.js b/enatega-multivendor-app/src/ui/FdRadioBtn/RadioBtn.js
new file mode 100644
index 0000000..f1d6986
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdRadioBtn/RadioBtn.js
@@ -0,0 +1,52 @@
+import React, { useContext } from 'react'
+import { TouchableOpacity, View } from 'react-native'
+import PropTypes from 'prop-types'
+import styles from './styles'
+import ThemeContext from '../ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+
+const DEFAULT_SIZE_MULTIPLIER = 0.7
+
+function RadioButton(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+
+ const {
+ size = 16,
+ innerColor = currentTheme.radioColor,
+ outerColor = currentTheme.radioOuterColor,
+ isSelected = false,
+ onPress = () => null
+ } = props
+
+ const outerStyle = {
+ borderColor: isSelected ? innerColor : outerColor,
+ width: size + size * DEFAULT_SIZE_MULTIPLIER,
+ height: size + size * DEFAULT_SIZE_MULTIPLIER,
+ borderRadius: (size + size * DEFAULT_SIZE_MULTIPLIER) / 2,
+ borderWidth: 1
+ }
+
+ const innerStyle = {
+ width: size,
+ height: size,
+ borderRadius: size / 2,
+ backgroundColor: innerColor
+ }
+
+ return (
+
+ {isSelected ? : null}
+
+ )
+}
+
+RadioButton.prototype = {
+ size: PropTypes.number,
+ innerColor: PropTypes.string,
+ outerColor: PropTypes.string,
+ isSelected: PropTypes.bool,
+ onPress: PropTypes.func
+}
+
+export default RadioButton
diff --git a/enatega-multivendor-app/src/ui/FdRadioBtn/styles.js b/enatega-multivendor-app/src/ui/FdRadioBtn/styles.js
new file mode 100644
index 0000000..8c46fa6
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdRadioBtn/styles.js
@@ -0,0 +1,7 @@
+export default {
+ radio: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center'
+ }
+}
diff --git a/enatega-multivendor-app/src/ui/FdSocialBtn/FdEmailBtn/FdEmailBtn.js b/enatega-multivendor-app/src/ui/FdSocialBtn/FdEmailBtn/FdEmailBtn.js
new file mode 100644
index 0000000..325808e
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdSocialBtn/FdEmailBtn/FdEmailBtn.js
@@ -0,0 +1,45 @@
+import React, { useContext } from 'react'
+import { TouchableOpacity } from 'react-native'
+import { MaterialIcons } from '@expo/vector-icons'
+import styles from './styles'
+import { scale } from '../../../utils/scaling'
+import Spinner from '../../../components/Spinner/Spinner'
+import { theme } from '../../../utils/themeColors'
+import ThemeContext from '../../ThemeContext/ThemeContext'
+import { alignment } from '../../../utils/alignment'
+import TextDefault from '../../../components/Text/TextDefault/TextDefault'
+import {useTranslation} from 'react-i18next'
+
+const FdEmailBtn = props => {
+ const {t} = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+ {props.loadingIcon ? (
+
+ ) : (
+ <>
+
+
+ {t('ContinueWithEmail')}
+
+ >
+ )}
+
+ )
+}
+
+export default FdEmailBtn
diff --git a/enatega-multivendor-app/src/ui/FdSocialBtn/FdEmailBtn/styles.js b/enatega-multivendor-app/src/ui/FdSocialBtn/FdEmailBtn/styles.js
new file mode 100644
index 0000000..f73136f
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdSocialBtn/FdEmailBtn/styles.js
@@ -0,0 +1,22 @@
+import { Dimensions, StyleSheet } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+const { height } = Dimensions.get('window')
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ mainContainer: {
+ height: height * 0.07,
+ backgroundColor: props !== null ? props.buttonBackgroundPink : '#000000',
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderRadius: 10,
+ ...alignment.PLsmall
+ },
+ marginLeft5: {
+ ...alignment.MLsmall
+ },
+ marginLeft10: {
+ ...alignment.MLmedium
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/ui/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js b/enatega-multivendor-app/src/ui/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js
new file mode 100644
index 0000000..21ff0c4
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js
@@ -0,0 +1,46 @@
+import React, { useContext } from 'react'
+import { TouchableOpacity } from 'react-native'
+import { FontAwesome } from '@expo/vector-icons'
+import styles from './styles'
+import { scale } from '../../../utils/scaling'
+import Spinner from '../../../components/Spinner/Spinner'
+import { theme } from '../../../utils/themeColors'
+import ThemeContext from '../../ThemeContext/ThemeContext'
+import TextDefault from '../../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../../utils/alignment'
+import { useTranslation } from 'react-i18next'
+
+const FdGoogleBtn = props => {
+ const { t } = useTranslation()
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+ {props.loadingIcon ? (
+
+ ) : (
+ <>
+
+
+ {t('ContinueWithGoogle')}
+
+ >
+ )}
+
+ )
+}
+
+export default FdGoogleBtn
diff --git a/enatega-multivendor-app/src/ui/FdSocialBtn/FdGoogleBtn/styles.js b/enatega-multivendor-app/src/ui/FdSocialBtn/FdGoogleBtn/styles.js
new file mode 100644
index 0000000..e92104f
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FdSocialBtn/FdGoogleBtn/styles.js
@@ -0,0 +1,27 @@
+import { Dimensions } from 'react-native'
+import { alignment } from '../../../utils/alignment'
+import { textStyles } from '../../../utils/textStyles'
+const { height } = Dimensions.get('window')
+
+export default {
+ mainContainer: {
+ width: '100%',
+ height: height * 0.07,
+ backgroundColor: '#b71c1c',
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderRadius: 10,
+ ...alignment.PRlarge
+ },
+ marginLeft5: {
+ ...alignment.MLsmall
+ },
+ marginLeft10: {
+ ...alignment.MLmedium
+ },
+ textStyle: {
+ ...textStyles.Bold,
+ ...textStyles.Normal,
+ color: '#FFF'
+ }
+}
diff --git a/enatega-multivendor-app/src/ui/FlashMessage/FlashMessage.js b/enatega-multivendor-app/src/ui/FlashMessage/FlashMessage.js
new file mode 100644
index 0000000..40c01e2
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/FlashMessage/FlashMessage.js
@@ -0,0 +1,14 @@
+import { showMessage } from 'react-native-flash-message'
+import PropTypes from 'prop-types'
+
+export const FlashMessage = props => {
+ showMessage({
+ message: props.message,
+ hideOnPress: false,
+ onPress: props.onPress,
+ duration: 1500
+ })
+}
+FlashMessage.propTypes = {
+ message: PropTypes.string.isRequired
+}
diff --git a/enatega-multivendor-app/src/ui/ThemeContext/ThemeContext.js b/enatega-multivendor-app/src/ui/ThemeContext/ThemeContext.js
new file mode 100644
index 0000000..9ab2530
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/ThemeContext/ThemeContext.js
@@ -0,0 +1,5 @@
+import React from 'react'
+
+const ThemeContext = React.createContext('Pink')
+
+export default ThemeContext
diff --git a/enatega-multivendor-app/src/ui/ThemeReducer/ThemeReducer.js b/enatega-multivendor-app/src/ui/ThemeReducer/ThemeReducer.js
new file mode 100644
index 0000000..ea40e93
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/ThemeReducer/ThemeReducer.js
@@ -0,0 +1,16 @@
+import AsyncStorage from '@react-native-async-storage/async-storage'
+
+const ThemeReducer = (state, action) => {
+ switch (action.type) {
+ case 'Pink':
+ AsyncStorage.setItem('theme', 'Pink')
+ return 'Pink'
+ case 'Dark':
+ AsyncStorage.setItem('theme', 'Dark')
+ return 'Dark'
+ default:
+ AsyncStorage.setItem('theme', 'Pink')
+ return 'Pink'
+ }
+}
+export default ThemeReducer
diff --git a/enatega-multivendor-app/src/ui/Triangle/Triangle.js b/enatega-multivendor-app/src/ui/Triangle/Triangle.js
new file mode 100644
index 0000000..66f671b
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/Triangle/Triangle.js
@@ -0,0 +1,13 @@
+import React, { useContext } from 'react'
+import { View } from 'react-native'
+import styles from './styles'
+import ThemeContext from '../ThemeContext/ThemeContext'
+import { theme } from '../../utils/themeColors'
+
+const Triangle = props => {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return
+}
+
+export default Triangle
diff --git a/enatega-multivendor-app/src/ui/Triangle/styles.js b/enatega-multivendor-app/src/ui/Triangle/styles.js
new file mode 100644
index 0000000..10af482
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/Triangle/styles.js
@@ -0,0 +1,18 @@
+import { scale } from '../../utils/scaling'
+import { StyleSheet } from 'react-native'
+const styles = (props = null) =>
+ StyleSheet.create({
+ triangle: {
+ width: 0,
+ height: 0,
+ backgroundColor: 'transparent',
+ borderStyle: 'solid',
+ borderLeftWidth: scale(7),
+ borderRightWidth: scale(7),
+ borderBottomWidth: scale(8),
+ borderLeftColor: 'transparent',
+ borderRightColor: 'transparent',
+ borderBottomColor: props !== null ? props.themeBackground : 'black'
+ }
+ })
+export default styles
diff --git a/enatega-multivendor-app/src/ui/hooks/index.js b/enatega-multivendor-app/src/ui/hooks/index.js
new file mode 100644
index 0000000..92afc7a
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/hooks/index.js
@@ -0,0 +1,3 @@
+import useLocation from './useLocation'
+import useRestaurant from './useRestaurant'
+export { useLocation, useRestaurant }
diff --git a/enatega-multivendor-app/src/ui/hooks/useLocation.js b/enatega-multivendor-app/src/ui/hooks/useLocation.js
new file mode 100644
index 0000000..8b6b771
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/hooks/useLocation.js
@@ -0,0 +1,54 @@
+import * as Location from 'expo-location'
+
+export default function useLocation() {
+ const getLocationPermission = async() => {
+ const {
+ status,
+ canAskAgain
+ } = await Location.getForegroundPermissionsAsync()
+ return { status, canAskAgain }
+ }
+
+ const askLocationPermission = async() => {
+ let finalStatus = null
+ let finalCanAskAgain = null
+ const {
+ status: currentStatus,
+ canAskAgain: currentCanAskAgain
+ } = await Location.getForegroundPermissionsAsync()
+ finalStatus = currentStatus === 'granted' ? 'granted' : 'denied'
+ finalCanAskAgain = currentCanAskAgain
+ if (currentStatus === 'granted') {
+ return { status: finalStatus, canAskAgain: finalCanAskAgain }
+ }
+ if (currentCanAskAgain) {
+ const {
+ status,
+ canAskAgain
+ } = await Location.requestForegroundPermissionsAsync()
+ finalStatus = status === 'granted' ? 'granted' : 'denied'
+ finalCanAskAgain = canAskAgain
+ if (status === 'granted') {
+ return { status: finalStatus, canAskAgain: finalCanAskAgain }
+ }
+ }
+ return { status: finalStatus, canAskAgain: finalCanAskAgain }
+ }
+
+ const getCurrentLocation = async() => {
+ const { status } = await askLocationPermission()
+ if (status === 'granted') {
+ try {
+ const location = await Location.getCurrentPositionAsync({
+ enableHighAccuracy: true
+ })
+ return { ...location, error: false }
+ } catch (e) {
+ return { error: true, message: e.message }
+ }
+ }
+ return { error: true, message: 'Location permission was not granted' }
+ }
+
+ return { getCurrentLocation, getLocationPermission }
+}
diff --git a/enatega-multivendor-app/src/ui/hooks/useRestaurant.js b/enatega-multivendor-app/src/ui/hooks/useRestaurant.js
new file mode 100644
index 0000000..6a6c0ce
--- /dev/null
+++ b/enatega-multivendor-app/src/ui/hooks/useRestaurant.js
@@ -0,0 +1,15 @@
+import { useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+import { restaurant } from '../../apollo/queries'
+
+const RESTAURANT = gql`
+ ${restaurant}
+`
+
+export default function useRestaurant(id) {
+ const { data, refetch, networkStatus, loading, error } = useQuery(
+ RESTAURANT,
+ { variables: { id }, fetchPolicy: 'network-only' }
+ )
+ return { data, refetch, networkStatus, loading, error }
+}
diff --git a/enatega-multivendor-app/src/utils/alignment.js b/enatega-multivendor-app/src/utils/alignment.js
new file mode 100644
index 0000000..4f3b737
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/alignment.js
@@ -0,0 +1,138 @@
+import { scale } from './scaling'
+
+const XSMALL = 5
+const SMALL = 10
+const MEDIUM = 15
+const LARGE = 20
+const XLARGE = 50
+export const alignment = {
+ MxSmall: {
+ margin: scale(XSMALL)
+ },
+ MBxSmall: {
+ marginBottom: scale(XSMALL)
+ },
+ MTxSmall: {
+ marginTop: scale(XSMALL)
+ },
+ MRxSmall: {
+ marginRight: scale(XSMALL)
+ },
+ MLxSmall: {
+ marginLeft: scale(XSMALL)
+ },
+
+ Msmall: {
+ margin: scale(SMALL)
+ },
+ MBsmall: {
+ marginBottom: scale(SMALL)
+ },
+ MTsmall: {
+ marginTop: scale(SMALL)
+ },
+ MRsmall: {
+ marginRight: scale(SMALL)
+ },
+ MLsmall: {
+ marginLeft: scale(SMALL)
+ },
+
+ Mmedium: {
+ margin: scale(MEDIUM)
+ },
+ MBmedium: {
+ marginBottom: scale(MEDIUM)
+ },
+ MTmedium: {
+ marginTop: scale(MEDIUM)
+ },
+ MRmedium: {
+ marginRight: scale(MEDIUM)
+ },
+ MLmedium: {
+ marginLeft: scale(MEDIUM)
+ },
+ Mlarge: {
+ margin: scale(LARGE)
+ },
+ MBlarge: {
+ marginBottom: scale(LARGE)
+ },
+ MTlarge: {
+ marginTop: scale(LARGE)
+ },
+ MRlarge: {
+ marginRight: scale(LARGE)
+ },
+ MLlarge: {
+ marginLeft: scale(LARGE)
+ },
+ MBxLarge:{
+ marginBottom: scale(XLARGE)
+ },
+ // Padding
+ PxSmall: {
+ padding: scale(XSMALL)
+ },
+ PBxSmall: {
+ paddingBottom: scale(XSMALL)
+ },
+ PTxSmall: {
+ paddingTop: scale(XSMALL)
+ },
+ PRxSmall: {
+ paddingRight: scale(XSMALL)
+ },
+ PLxSmall: {
+ paddingLeft: scale(XSMALL)
+ },
+
+ Psmall: {
+ padding: scale(SMALL)
+ },
+ PBsmall: {
+ paddingBottom: scale(SMALL)
+ },
+ PTsmall: {
+ paddingTop: scale(SMALL)
+ },
+ PRsmall: {
+ paddingRight: scale(SMALL)
+ },
+ PLsmall: {
+ paddingLeft: scale(SMALL)
+ },
+
+ Pmedium: {
+ padding: scale(MEDIUM)
+ },
+ PBmedium: {
+ paddingBottom: scale(MEDIUM)
+ },
+ PTmedium: {
+ paddingTop: scale(MEDIUM)
+ },
+ PRmedium: {
+ paddingRight: scale(MEDIUM)
+ },
+ PLmedium: {
+ paddingLeft: scale(MEDIUM)
+ },
+
+ Plarge: {
+ padding: scale(LARGE)
+ },
+ PBlarge: {
+ paddingBottom: scale(LARGE)
+ },
+ PTlarge: {
+ paddingTop: scale(LARGE)
+ },
+ PRlarge: {
+ paddingRight: scale(LARGE)
+ },
+ PLlarge: {
+ paddingLeft: scale(LARGE)
+ }
+}
diff --git a/enatega-multivendor-app/src/utils/analytics.js b/enatega-multivendor-app/src/utils/analytics.js
new file mode 100644
index 0000000..df51aef
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/analytics.js
@@ -0,0 +1,103 @@
+import { useEffect } from 'react'
+import useEnvVars from '../../environment'
+import * as amplitude from '@amplitude/analytics-react-native'
+import { getTrackingPermissions } from './useAppTrackingTrasparency'
+
+const Analytics = () => {
+ const { AMPLITUDE_API_KEY } = useEnvVars()
+ let isInitialized = false
+ const apiKey = AMPLITUDE_API_KEY
+
+ const events = {
+ USER_LOGGED_IN: 'USER_LOGGED_IN',
+ USER_CREATED_ACCOUNT: 'USER_CREATED_ACCOUNT',
+ USER_LOGGED_OUT: 'USER_LOGGED_OUT',
+ USER_RECONNECTED: 'USER_RECONNECTED',
+ ADD_TO_CART: 'ADD_TO_CART',
+ NAVIGATE_TO_CART: 'NAVIGATE_TO_CART',
+ OPENED_RESTAURANT_ITEM: 'OPENED_RESATURANT_ITEM',
+ NAVIGATE_TO_ORDER_DETAIL: 'NAVIGATE_TO_ORDER_DETAIL',
+ ORDER_PLACED: 'ORDER_PLACED',
+ NAVIGATE_TO_MAIN: 'NAVIGATE_TO_MAIN',
+ NAVIGATE_TO_ABOUT: 'NAVIGATE_TO_ABOUT',
+ NAVIGATE_TO_ADDRESS: 'NAVIGATE_TO_ADDRESS',
+ NAVIGATE_TO_CARTADDRESS: 'NAVIGATE_TO_CARTADDRESS',
+ NAVIGATE_TO_CHAT: 'NAVIGATE_TO_CHAT',
+ NAVIGATE_TO_COUPON: 'NAVIGATE_TO_COUPON',
+ NAVIGATE_TO_CURRENTLOCATION: 'NAVIGATE_TO_CURRENTLOCATION',
+ NAVIGATE_TO_EDITADDRESS: 'NAVIGATE_TO_EDITADDRESS',
+ NAVIGATE_TO_FAVOURITES: 'NAVIGATE_TO_FAVOURITES',
+ NAVIGATE_TO_FORGOTPASSWORD: 'NAVIGATE_TO_FORGOTPASSWORD',
+ NAVIGATE_TO_FULLMAP: 'NAVIGATE_TO_FULLMAP',
+ NAVIGATE_TO_HELP: 'NAVIGATE_TO_HELP',
+ NAVIGATE_TO_HELPBROWSER: 'NAVIGATE_TO_HELPBROWSER',
+ NAVIGATE_TO_MYORDERS: 'NAVIGATE_TO_MYORDERS',
+ NAVIGATE_TO_NEWADDRESS: 'NAVIGATE_TO_NEWADDRESS',
+ NAVIGATE_TO_PAYMENT: 'NAVIGATE_TO_PAYMENT',
+ NAVIGATE_TO_PAYPAL: 'NAVIGATE_TO_PAYPAL',
+ NAVIGATE_TO_PROFILE: 'NAVIGATE_TO_PROFILE',
+ NAVIGATE_TO_RATEANDREVIEW: 'NAVIGATE_TO_RATEANDREVIEW',
+ NAVIGATE_TO_REORDER: 'NAVIGATE_TO_REORDER',
+ NAVIGATE_TO_RESTAURANTS: 'NAVIGATE_TO_RESTAURANTS',
+ NAVIGATE_TO_SELECTLOCATION: 'NAVIGATE_TO_SELECTLOCATION',
+ NAVIGATE_TO_SETTINGS: 'NAVIGATE_TO_SETTINGS',
+ NAVIGATE_TO_STRIPE: 'NAVIGATE_TO_STRIPE',
+ NAVIGATE_TO_TIPS: 'NAVIGATE_TO_TIPS'
+ }
+
+ const initialize = async () => {
+ const trackingStatus = await getTrackingPermissions()
+ if (isInitialized || !apiKey || trackingStatus !== 'granted') {
+ return
+ }
+ await amplitude.init(apiKey)
+ isInitialized = true
+ }
+
+ const identify = async (options, userId) => {
+ await initialize()
+ if (!isInitialized) return
+
+ const properties = options
+
+ if (!apiKey) return
+ if (userId) {
+ amplitude.setUserId(userId)
+ }
+ if (properties) {
+ amplitude.Identify(properties)
+ } else {
+ const identifyObj = new amplitude.Identify()
+ identifyObj.remove(properties)
+ amplitude.Identify(identifyObj)
+ }
+ }
+
+ const track = async (event, options) => {
+ await initialize()
+ if (!isInitialized) return
+
+ const properties = options
+
+ if (!apiKey) return
+
+ if (properties) {
+ await amplitude.track(event, properties)
+ } else {
+ await amplitude.track(event)
+ }
+ }
+
+ useEffect(() => {
+ initialize()
+ }, [])
+
+ return {
+ events,
+ initialize,
+ identify,
+ track
+ }
+}
+
+export default Analytics
diff --git a/enatega-multivendor-app/src/utils/androidBackButton.js b/enatega-multivendor-app/src/utils/androidBackButton.js
new file mode 100644
index 0000000..ba67644
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/androidBackButton.js
@@ -0,0 +1,34 @@
+// packages
+import { BackHandler, Alert } from 'react-native'
+/**
+ * Attaches an event listener that handles the android-only hardware
+ * back button
+ * @param {Function} callback The function to call on click
+ */
+const handleAndroidBackButton = callback => {
+ BackHandler.addEventListener('hardwareBackPress', () => {
+ callback()
+ return true
+ })
+}
+/**
+ * Removes the event listener in order not to add a new one
+ * every time the view component re-mounts
+ */
+const removeAndroidBackButtonHandler = () => {
+ BackHandler.removeEventListener('hardwareBackPress')
+}
+const exitAlert = () => {
+ Alert.alert('Confirm exit', 'Do you want to quit the app?', [
+ { text: 'CANCEL', style: 'cancel' },
+ {
+ text: 'OK',
+ onPress: () => {
+ BackHandler.exitApp()
+ }
+ }
+ ])
+ return true
+}
+
+export { handleAndroidBackButton, removeAndroidBackButtonHandler, exitAlert }
diff --git a/enatega-multivendor-app/src/utils/callNumber.js b/enatega-multivendor-app/src/utils/callNumber.js
new file mode 100644
index 0000000..b38cf8b
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/callNumber.js
@@ -0,0 +1,19 @@
+import { Linking, Alert, Platform } from 'react-native'
+
+export const callNumber = phone => {
+ let phoneNumber = phone
+ if (Platform.OS !== 'android') {
+ phoneNumber = `telprompt:${phone}`
+ } else {
+ phoneNumber = `tel:${phone}`
+ }
+ Linking.canOpenURL(phoneNumber)
+ .then(supported => {
+ if (!supported) {
+ Alert.alert('Phone number is not available')
+ } else {
+ return Linking.openURL(phoneNumber)
+ }
+ })
+ .catch(err => console.log(err))
+}
diff --git a/enatega-multivendor-app/src/utils/country_codes.js b/enatega-multivendor-app/src/utils/country_codes.js
new file mode 100644
index 0000000..8ba005b
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/country_codes.js
@@ -0,0 +1,2554 @@
+const data = [
+ {
+ iso_country_code: 'AF',
+ country: 'Afghanistan',
+ timezone: 'Asia/Kabul',
+ country_code: '93'
+ },
+ {
+ iso_country_code: 'AX',
+ country: 'Aland Islands',
+ timezone: 'Europe/Mariehamn',
+ country_code: '355'
+ },
+ {
+ iso_country_code: 'AL',
+ country: 'Albania',
+ timezone: 'Europe/Tirane',
+ country_code: '355'
+ },
+ {
+ iso_country_code: 'DZ',
+ country: 'Algeria',
+ timezone: 'Africa/Algiers',
+ country_code: '213'
+ },
+ {
+ iso_country_code: 'AS',
+ country: 'American Samoa',
+ timezone: 'Pacific/Pago_Pago',
+ country_code: '1-684'
+ },
+ {
+ iso_country_code: 'AD',
+ country: 'Andorra',
+ timezone: 'Europe/Andorra',
+ country_code: '376'
+ },
+ {
+ iso_country_code: 'AO',
+ country: 'Angola',
+ timezone: 'Africa/Luanda',
+ country_code: '244'
+ },
+ {
+ iso_country_code: 'AI',
+ country: 'Anguilla',
+ timezone: 'America/Anguilla',
+ country_code: '1-264'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Casey',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Davis',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/DumontDUrville',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Mawson',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/McMurdo',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Palmer',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Rothera',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Syowa',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Troll',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AQ',
+ country: 'Antarctica',
+ timezone: 'Antarctica/Vostok',
+ country_code: '672'
+ },
+ {
+ iso_country_code: 'AG',
+ country: 'Antigua and Barbuda',
+ timezone: 'America/Antigua',
+ country_code: '1-268'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Buenos_Aires',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Catamarca',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Cordoba',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Jujuy',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/La_Rioja',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Mendoza',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Rio_Gallegos',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Salta',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/San_Juan',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/San_Luis',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Tucuman',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AR',
+ country: 'Argentina',
+ timezone: 'America/Argentina/Ushuaia',
+ country_code: '54'
+ },
+ {
+ iso_country_code: 'AM',
+ country: 'Armenia',
+ timezone: 'Asia/Yerevan',
+ country_code: '374'
+ },
+ {
+ iso_country_code: 'AW',
+ country: 'Aruba',
+ timezone: 'America/Aruba',
+ country_code: '297'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Antarctica/Macquarie',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Adelaide',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Brisbane',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Broken_Hill',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Currie',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Darwin',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Eucla',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Hobart',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Lindeman',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Lord_Howe',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Melbourne',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Perth',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AU',
+ country: 'Australia',
+ timezone: 'Australia/Sydney',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'AT',
+ country: 'Austria',
+ timezone: 'Europe/Vienna',
+ country_code: '43'
+ },
+ {
+ iso_country_code: 'AZ',
+ country: 'Azerbaijan',
+ timezone: 'Asia/Baku',
+ country_code: '994'
+ },
+ {
+ iso_country_code: 'BS',
+ country: 'Bahamas',
+ timezone: 'America/Nassau',
+ country_code: '1-242'
+ },
+ {
+ iso_country_code: 'BH',
+ country: 'Bahrain',
+ timezone: 'Asia/Bahrain',
+ country_code: '973'
+ },
+ {
+ iso_country_code: 'BD',
+ country: 'Bangladesh',
+ timezone: 'Asia/Dhaka',
+ country_code: '880'
+ },
+ {
+ iso_country_code: 'BB',
+ country: 'Barbados',
+ timezone: 'America/Barbados',
+ country_code: '1-246'
+ },
+ {
+ iso_country_code: 'BY',
+ country: 'Belarus',
+ timezone: 'Europe/Minsk',
+ country_code: '375'
+ },
+ {
+ iso_country_code: 'BE',
+ country: 'Belgium',
+ timezone: 'Europe/Brussels',
+ country_code: '32'
+ },
+ {
+ iso_country_code: 'BZ',
+ country: 'Belize',
+ timezone: 'America/Belize',
+ country_code: '501'
+ },
+ {
+ iso_country_code: 'BJ',
+ country: 'Benin',
+ timezone: 'Africa/Porto-Novo',
+ country_code: '229'
+ },
+ {
+ iso_country_code: 'BM',
+ country: 'Bermuda',
+ timezone: 'Atlantic/Bermuda',
+ country_code: '1-441'
+ },
+ {
+ iso_country_code: 'BT',
+ country: 'Bhutan',
+ timezone: 'Asia/Thimphu',
+ country_code: '975'
+ },
+ {
+ iso_country_code: 'BO',
+ country: 'Bolivia',
+ timezone: 'America/La_Paz',
+ country_code: '591'
+ },
+ {
+ iso_country_code: 'BQ',
+ country: 'Bonaire, Saint Eustatius and Saba ',
+ timezone: 'America/Kralendijk',
+ country_code: '591'
+ },
+ {
+ iso_country_code: 'BA',
+ country: 'Bosnia and Herzegovina',
+ timezone: 'Europe/Sarajevo',
+ country_code: '387'
+ },
+ {
+ iso_country_code: 'BW',
+ country: 'Botswana',
+ timezone: 'Africa/Gaborone',
+ country_code: '267'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Araguaina',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Bahia',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Belem',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Boa_Vista',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Campo_Grande',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Cuiaba',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Eirunepe',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Fortaleza',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Maceio',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Manaus',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Noronha',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Porto_Velho',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Recife',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Rio_Branco',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Santarem',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'BR',
+ country: 'Brazil',
+ timezone: 'America/Sao_Paulo',
+ country_code: '55'
+ },
+ {
+ iso_country_code: 'IO',
+ country: 'British Indian Ocean Territory',
+ timezone: 'Indian/Chagos',
+ country_code: '246'
+ },
+ {
+ iso_country_code: 'VG',
+ country: 'British Virgin Islands',
+ timezone: 'America/Tortola',
+ country_code: '1-284'
+ },
+ {
+ iso_country_code: 'BN',
+ country: 'Brunei',
+ timezone: 'Asia/Brunei',
+ country_code: '673'
+ },
+ {
+ iso_country_code: 'BG',
+ country: 'Bulgaria',
+ timezone: 'Europe/Sofia',
+ country_code: '359'
+ },
+ {
+ iso_country_code: 'BF',
+ country: 'Burkina Faso',
+ timezone: 'Africa/Ouagadougou',
+ country_code: '226'
+ },
+ {
+ iso_country_code: 'BI',
+ country: 'Burundi',
+ timezone: 'Africa/Bujumbura',
+ country_code: '257'
+ },
+ {
+ iso_country_code: 'KH',
+ country: 'Cambodia',
+ timezone: 'Asia/Phnom_Penh',
+ country_code: '855'
+ },
+ {
+ iso_country_code: 'CM',
+ country: 'Cameroon',
+ timezone: 'Africa/Douala',
+ country_code: '237'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Atikokan',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Blanc-Sablon',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Cambridge_Bay',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Creston',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Dawson',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Dawson_Creek',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Edmonton',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Fort_Nelson',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Glace_Bay',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Goose_Bay',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Halifax',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Inuvik',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Iqaluit',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Moncton',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Nipigon',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Pangnirtung',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Rainy_River',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Rankin_Inlet',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Regina',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Resolute',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/St_Johns',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Swift_Current',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Thunder_Bay',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Toronto',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Vancouver',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Whitehorse',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Winnipeg',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CA',
+ country: 'Canada',
+ timezone: 'America/Yellowknife',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'CV',
+ country: 'Cape Verde',
+ timezone: 'Atlantic/Cape_Verde',
+ country_code: '238'
+ },
+ {
+ iso_country_code: 'KY',
+ country: 'Cayman Islands',
+ timezone: 'America/Cayman',
+ country_code: '1-345'
+ },
+ {
+ iso_country_code: 'CF',
+ country: 'Central African Republic',
+ timezone: 'Africa/Bangui',
+ country_code: '236'
+ },
+ {
+ iso_country_code: 'TD',
+ country: 'Chad',
+ timezone: 'Africa/Ndjamena',
+ country_code: '235'
+ },
+ {
+ iso_country_code: 'CL',
+ country: 'Chile',
+ timezone: 'America/Punta_Arenas',
+ country_code: '56'
+ },
+ {
+ iso_country_code: 'CL',
+ country: 'Chile',
+ timezone: 'America/Santiago',
+ country_code: '56'
+ },
+ {
+ iso_country_code: 'CL',
+ country: 'Chile',
+ timezone: 'Pacific/Easter',
+ country_code: '56'
+ },
+ {
+ iso_country_code: 'CN',
+ country: 'China',
+ timezone: 'Asia/Shanghai',
+ country_code: '86'
+ },
+ {
+ iso_country_code: 'CN',
+ country: 'China',
+ timezone: 'Asia/Urumqi',
+ country_code: '86'
+ },
+ {
+ iso_country_code: 'CX',
+ country: 'Christmas Island',
+ timezone: 'Indian/Christmas',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'CC',
+ country: 'Cocos Islands',
+ timezone: 'Indian/Cocos',
+ country_code: '61'
+ },
+ {
+ iso_country_code: 'CO',
+ country: 'Colombia',
+ timezone: 'America/Bogota',
+ country_code: '57'
+ },
+ {
+ iso_country_code: 'KM',
+ country: 'Comoros',
+ timezone: 'Indian/Comoro',
+ country_code: '269'
+ },
+ {
+ iso_country_code: 'CK',
+ country: 'Cook Islands',
+ timezone: 'Pacific/Rarotonga',
+ country_code: '682'
+ },
+ {
+ iso_country_code: 'CR',
+ country: 'Costa Rica',
+ timezone: 'America/Costa_Rica',
+ country_code: '506'
+ },
+ {
+ iso_country_code: 'HR',
+ country: 'Croatia',
+ timezone: 'Europe/Zagreb',
+ country_code: '385'
+ },
+ {
+ iso_country_code: 'CU',
+ country: 'Cuba',
+ timezone: 'America/Havana',
+ country_code: '53'
+ },
+ {
+ iso_country_code: 'CW',
+ country: 'Curaçao',
+ timezone: 'America/Curacao',
+ country_code: '599'
+ },
+ {
+ iso_country_code: 'CY',
+ country: 'Cyprus',
+ timezone: 'Asia/Famagusta',
+ country_code: '357'
+ },
+ {
+ iso_country_code: 'CY',
+ country: 'Cyprus',
+ timezone: 'Asia/Nicosia',
+ country_code: '357'
+ },
+ {
+ iso_country_code: 'CZ',
+ country: 'Czech Republic',
+ timezone: 'Europe/Prague',
+ country_code: '420'
+ },
+ {
+ iso_country_code: 'CD',
+ country: 'Democratic Republic of the Congo',
+ timezone: 'Africa/Kinshasa',
+ country_code: '243'
+ },
+ {
+ iso_country_code: 'CD',
+ country: 'Democratic Republic of the Congo',
+ timezone: 'Africa/Lubumbashi',
+ country_code: '243'
+ },
+ {
+ iso_country_code: 'DK',
+ country: 'Denmark',
+ timezone: 'Europe/Copenhagen',
+ country_code: '45'
+ },
+ {
+ iso_country_code: 'DJ',
+ country: 'Djibouti',
+ timezone: 'Africa/Djibouti',
+ country_code: '253'
+ },
+ {
+ iso_country_code: 'DM',
+ country: 'Dominica',
+ timezone: 'America/Dominica',
+ country_code: '1-767'
+ },
+ {
+ iso_country_code: 'DO',
+ country: 'Dominican Republic',
+ timezone: 'America/Santo_Domingo',
+ country_code: '1-809, 1-829, 1-849'
+ },
+ {
+ iso_country_code: 'TL',
+ country: 'East Timor',
+ timezone: 'Asia/Dili',
+ country_code: '670'
+ },
+ {
+ iso_country_code: 'EC',
+ country: 'Ecuador',
+ timezone: 'America/Guayaquil',
+ country_code: '593'
+ },
+ {
+ iso_country_code: 'EC',
+ country: 'Ecuador',
+ timezone: 'Pacific/Galapagos',
+ country_code: '593'
+ },
+ {
+ iso_country_code: 'EG',
+ country: 'Egypt',
+ timezone: 'Africa/Cairo',
+ country_code: '20'
+ },
+ {
+ iso_country_code: 'SV',
+ country: 'El Salvador',
+ timezone: 'America/El_Salvador',
+ country_code: '503'
+ },
+ {
+ iso_country_code: 'GQ',
+ country: 'Equatorial Guinea',
+ timezone: 'Africa/Malabo',
+ country_code: '240'
+ },
+ {
+ iso_country_code: 'ER',
+ country: 'Eritrea',
+ timezone: 'Africa/Asmara',
+ country_code: '291'
+ },
+ {
+ iso_country_code: 'EE',
+ country: 'Estonia',
+ timezone: 'Europe/Tallinn',
+ country_code: '372'
+ },
+ {
+ iso_country_code: 'ET',
+ country: 'Ethiopia',
+ timezone: 'Africa/Addis_Ababa',
+ country_code: '251'
+ },
+ {
+ iso_country_code: 'FK',
+ country: 'Falkland Islands',
+ timezone: 'Atlantic/Stanley',
+ country_code: '500'
+ },
+ {
+ iso_country_code: 'FO',
+ country: 'Faroe Islands',
+ timezone: 'Atlantic/Faroe',
+ country_code: '298'
+ },
+ {
+ iso_country_code: 'FJ',
+ country: 'Fiji',
+ timezone: 'Pacific/Fiji',
+ country_code: '679'
+ },
+ {
+ iso_country_code: 'FI',
+ country: 'Finland',
+ timezone: 'Europe/Helsinki',
+ country_code: '358'
+ },
+ {
+ iso_country_code: 'FR',
+ country: 'France',
+ timezone: 'Europe/Paris',
+ country_code: '33'
+ },
+ {
+ iso_country_code: 'GF',
+ country: 'French Guiana',
+ timezone: 'America/Cayenne',
+ country_code: '689'
+ },
+ {
+ iso_country_code: 'PF',
+ country: 'French Polynesia',
+ timezone: 'Pacific/Gambier',
+ country_code: '689'
+ },
+ {
+ iso_country_code: 'PF',
+ country: 'French Polynesia',
+ timezone: 'Pacific/Marquesas',
+ country_code: '689'
+ },
+ {
+ iso_country_code: 'PF',
+ country: 'French Polynesia',
+ timezone: 'Pacific/Tahiti',
+ country_code: '689'
+ },
+ {
+ iso_country_code: 'TF',
+ country: 'French Southern Territories',
+ timezone: 'Indian/Kerguelen',
+ country_code: '689'
+ },
+ {
+ iso_country_code: 'GA',
+ country: 'Gabon',
+ timezone: 'Africa/Libreville',
+ country_code: '241'
+ },
+ {
+ iso_country_code: 'GM',
+ country: 'Gambia',
+ timezone: 'Africa/Banjul',
+ country_code: '220'
+ },
+ {
+ iso_country_code: 'GE',
+ country: 'Georgia',
+ timezone: 'Asia/Tbilisi',
+ country_code: '995'
+ },
+ {
+ iso_country_code: 'DE',
+ country: 'Germany',
+ timezone: 'Europe/Berlin',
+ country_code: '49'
+ },
+ {
+ iso_country_code: 'DE',
+ country: 'Germany',
+ timezone: 'Europe/Busingen',
+ country_code: '49'
+ },
+ {
+ iso_country_code: 'GH',
+ country: 'Ghana',
+ timezone: 'Africa/Accra',
+ country_code: '233'
+ },
+ {
+ iso_country_code: 'GI',
+ country: 'Gibraltar',
+ timezone: 'Europe/Gibraltar',
+ country_code: '350'
+ },
+ {
+ iso_country_code: 'GR',
+ country: 'Greece',
+ timezone: 'Europe/Athens',
+ country_code: '30'
+ },
+ {
+ iso_country_code: 'GL',
+ country: 'Greenland',
+ timezone: 'America/Danmarkshavn',
+ country_code: '299'
+ },
+ {
+ iso_country_code: 'GL',
+ country: 'Greenland',
+ timezone: 'America/Godthab',
+ country_code: '299'
+ },
+ {
+ iso_country_code: 'GL',
+ country: 'Greenland',
+ timezone: 'America/Scoresbysund',
+ country_code: '299'
+ },
+ {
+ iso_country_code: 'GL',
+ country: 'Greenland',
+ timezone: 'America/Thule',
+ country_code: '299'
+ },
+ {
+ iso_country_code: 'GD',
+ country: 'Grenada',
+ timezone: 'America/Grenada',
+ country_code: '1-473'
+ },
+ {
+ iso_country_code: 'GP',
+ country: 'Guadeloupe',
+ timezone: 'America/Guadeloupe',
+ country_code: '1-473'
+ },
+ {
+ iso_country_code: 'GU',
+ country: 'Guam',
+ timezone: 'Pacific/Guam',
+ country_code: '1-671'
+ },
+ {
+ iso_country_code: 'GT',
+ country: 'Guatemala',
+ timezone: 'America/Guatemala',
+ country_code: '502'
+ },
+ {
+ iso_country_code: 'GG',
+ country: 'Guernsey',
+ timezone: 'Europe/Guernsey',
+ country_code: '44-1481'
+ },
+ {
+ iso_country_code: 'GN',
+ country: 'Guinea',
+ timezone: 'Africa/Conakry',
+ country_code: '224'
+ },
+ {
+ iso_country_code: 'GW',
+ country: 'Guinea-Bissau',
+ timezone: 'Africa/Bissau',
+ country_code: '245'
+ },
+ {
+ iso_country_code: 'GY',
+ country: 'Guyana',
+ timezone: 'America/Guyana',
+ country_code: '592'
+ },
+ {
+ iso_country_code: 'HT',
+ country: 'Haiti',
+ timezone: 'America/Port-au-Prince',
+ country_code: '509'
+ },
+ {
+ iso_country_code: 'HN',
+ country: 'Honduras',
+ timezone: 'America/Tegucigalpa',
+ country_code: '504'
+ },
+ {
+ iso_country_code: 'HK',
+ country: 'Hong Kong',
+ timezone: 'Asia/Hong_Kong',
+ country_code: '852'
+ },
+ {
+ iso_country_code: 'HU',
+ country: 'Hungary',
+ timezone: 'Europe/Budapest',
+ country_code: '36'
+ },
+ {
+ iso_country_code: 'IS',
+ country: 'Iceland',
+ timezone: 'Atlantic/Reykjavik',
+ country_code: '354'
+ },
+ {
+ iso_country_code: 'IN',
+ country: 'India',
+ timezone: 'Asia/Kolkata',
+ country_code: '91'
+ },
+ {
+ iso_country_code: 'ID',
+ country: 'Indonesia',
+ timezone: 'Asia/Jakarta',
+ country_code: '62'
+ },
+ {
+ iso_country_code: 'ID',
+ country: 'Indonesia',
+ timezone: 'Asia/Jayapura',
+ country_code: '62'
+ },
+ {
+ iso_country_code: 'ID',
+ country: 'Indonesia',
+ timezone: 'Asia/Makassar',
+ country_code: '62'
+ },
+ {
+ iso_country_code: 'ID',
+ country: 'Indonesia',
+ timezone: 'Asia/Pontianak',
+ country_code: '62'
+ },
+ {
+ iso_country_code: 'IR',
+ country: 'Iran',
+ timezone: 'Asia/Tehran',
+ country_code: '98'
+ },
+ {
+ iso_country_code: 'IQ',
+ country: 'Iraq',
+ timezone: 'Asia/Baghdad',
+ country_code: '964'
+ },
+ {
+ iso_country_code: 'IE',
+ country: 'Ireland',
+ timezone: 'Europe/Dublin',
+ country_code: '353'
+ },
+ {
+ iso_country_code: 'IM',
+ country: 'Isle of Man',
+ timezone: 'Europe/Isle_of_Man',
+ country_code: '44-1624'
+ },
+ {
+ iso_country_code: 'IL',
+ country: 'Israel',
+ timezone: 'Asia/Jerusalem',
+ country_code: '972'
+ },
+ {
+ iso_country_code: 'IT',
+ country: 'Italy',
+ timezone: 'Europe/Rome',
+ country_code: '39'
+ },
+ {
+ iso_country_code: 'CI',
+ country: 'Ivory Coast',
+ timezone: 'Africa/Abidjan',
+ country_code: '225'
+ },
+ {
+ iso_country_code: 'JM',
+ country: 'Jamaica',
+ timezone: 'America/Jamaica',
+ country_code: '1-876'
+ },
+ {
+ iso_country_code: 'JP',
+ country: 'Japan',
+ timezone: 'Asia/Tokyo',
+ country_code: '81'
+ },
+ {
+ iso_country_code: 'JE',
+ country: 'Jersey',
+ timezone: 'Europe/Jersey',
+ country_code: '44-1534'
+ },
+ {
+ iso_country_code: 'JO',
+ country: 'Jordan',
+ timezone: 'Asia/Amman',
+ country_code: '962'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Almaty',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Aqtau',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Aqtobe',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Atyrau',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Oral',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Qostanay',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KZ',
+ country: 'Kazakhstan',
+ timezone: 'Asia/Qyzylorda',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'KE',
+ country: 'Kenya',
+ timezone: 'Africa/Nairobi',
+ country_code: '254'
+ },
+ {
+ iso_country_code: 'KI',
+ country: 'Kiribati',
+ timezone: 'Pacific/Enderbury',
+ country_code: '686'
+ },
+ {
+ iso_country_code: 'KI',
+ country: 'Kiribati',
+ timezone: 'Pacific/Kiritimati',
+ country_code: '686'
+ },
+ {
+ iso_country_code: 'KI',
+ country: 'Kiribati',
+ timezone: 'Pacific/Tarawa',
+ country_code: '686'
+ },
+ {
+ iso_country_code: 'KW',
+ country: 'Kuwait',
+ timezone: 'Asia/Kuwait',
+ country_code: '965'
+ },
+ {
+ iso_country_code: 'KG',
+ country: 'Kyrgyzstan',
+ timezone: 'Asia/Bishkek',
+ country_code: '996'
+ },
+ {
+ iso_country_code: 'LA',
+ country: 'Laos',
+ timezone: 'Asia/Vientiane',
+ country_code: '856'
+ },
+ {
+ iso_country_code: 'LV',
+ country: 'Latvia',
+ timezone: 'Europe/Riga',
+ country_code: '371'
+ },
+ {
+ iso_country_code: 'LB',
+ country: 'Lebanon',
+ timezone: 'Asia/Beirut',
+ country_code: '961'
+ },
+ {
+ iso_country_code: 'LS',
+ country: 'Lesotho',
+ timezone: 'Africa/Maseru',
+ country_code: '266'
+ },
+ {
+ iso_country_code: 'LR',
+ country: 'Liberia',
+ timezone: 'Africa/Monrovia',
+ country_code: '231'
+ },
+ {
+ iso_country_code: 'LY',
+ country: 'Libya',
+ timezone: 'Africa/Tripoli',
+ country_code: '218'
+ },
+ {
+ iso_country_code: 'LI',
+ country: 'Liechtenstein',
+ timezone: 'Europe/Vaduz',
+ country_code: '423'
+ },
+ {
+ iso_country_code: 'LT',
+ country: 'Lithuania',
+ timezone: 'Europe/Vilnius',
+ country_code: '370'
+ },
+ {
+ iso_country_code: 'LU',
+ country: 'Luxembourg',
+ timezone: 'Europe/Luxembourg',
+ country_code: '352'
+ },
+ {
+ iso_country_code: 'MO',
+ country: 'Macao',
+ timezone: 'Asia/Macau',
+ country_code: '853'
+ },
+ {
+ iso_country_code: 'MK',
+ country: 'Macedonia',
+ timezone: 'Europe/Skopje',
+ country_code: '389'
+ },
+ {
+ iso_country_code: 'MG',
+ country: 'Madagascar',
+ timezone: 'Indian/Antananarivo',
+ country_code: '261'
+ },
+ {
+ iso_country_code: 'MW',
+ country: 'Malawi',
+ timezone: 'Africa/Blantyre',
+ country_code: '265'
+ },
+ {
+ iso_country_code: 'MY',
+ country: 'Malaysia',
+ timezone: 'Asia/Kuala_Lumpur',
+ country_code: '60'
+ },
+ {
+ iso_country_code: 'MY',
+ country: 'Malaysia',
+ timezone: 'Asia/Kuching',
+ country_code: '60'
+ },
+ {
+ iso_country_code: 'MV',
+ country: 'Maldives',
+ timezone: 'Indian/Maldives',
+ country_code: '960'
+ },
+ {
+ iso_country_code: 'ML',
+ country: 'Mali',
+ timezone: 'Africa/Bamako',
+ country_code: '223'
+ },
+ {
+ iso_country_code: 'MT',
+ country: 'Malta',
+ timezone: 'Europe/Malta',
+ country_code: '356'
+ },
+ {
+ iso_country_code: 'MH',
+ country: 'Marshall Islands',
+ timezone: 'Pacific/Kwajalein',
+ country_code: '692'
+ },
+ {
+ iso_country_code: 'MH',
+ country: 'Marshall Islands',
+ timezone: 'Pacific/Majuro',
+ country_code: '692'
+ },
+ {
+ iso_country_code: 'MQ',
+ country: 'Martinique',
+ timezone: 'America/Martinique',
+ country_code: '222'
+ },
+ {
+ iso_country_code: 'MR',
+ country: 'Mauritania',
+ timezone: 'Africa/Nouakchott',
+ country_code: '222'
+ },
+ {
+ iso_country_code: 'MU',
+ country: 'Mauritius',
+ timezone: 'Indian/Mauritius',
+ country_code: '230'
+ },
+ {
+ iso_country_code: 'YT',
+ country: 'Mayotte',
+ timezone: 'Indian/Mayotte',
+ country_code: '262'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Bahia_Banderas',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Cancun',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Chihuahua',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Hermosillo',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Matamoros',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Mazatlan',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Merida',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Mexico_City',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Monterrey',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Ojinaga',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'MX',
+ country: 'Mexico',
+ timezone: 'America/Tijuana',
+ country_code: '52'
+ },
+ {
+ iso_country_code: 'FM',
+ country: 'Micronesia',
+ timezone: 'Pacific/Chuuk',
+ country_code: '691'
+ },
+ {
+ iso_country_code: 'FM',
+ country: 'Micronesia',
+ timezone: 'Pacific/Kosrae',
+ country_code: '691'
+ },
+ {
+ iso_country_code: 'FM',
+ country: 'Micronesia',
+ timezone: 'Pacific/Pohnpei',
+ country_code: '691'
+ },
+ {
+ iso_country_code: 'MD',
+ country: 'Moldova',
+ timezone: 'Europe/Chisinau',
+ country_code: '373'
+ },
+ {
+ iso_country_code: 'MC',
+ country: 'Monaco',
+ timezone: 'Europe/Monaco',
+ country_code: '377'
+ },
+ {
+ iso_country_code: 'MN',
+ country: 'Mongolia',
+ timezone: 'Asia/Choibalsan',
+ country_code: '976'
+ },
+ {
+ iso_country_code: 'MN',
+ country: 'Mongolia',
+ timezone: 'Asia/Hovd',
+ country_code: '976'
+ },
+ {
+ iso_country_code: 'MN',
+ country: 'Mongolia',
+ timezone: 'Asia/Ulaanbaatar',
+ country_code: '976'
+ },
+ {
+ iso_country_code: 'ME',
+ country: 'Montenegro',
+ timezone: 'Europe/Podgorica',
+ country_code: '382'
+ },
+ {
+ iso_country_code: 'MS',
+ country: 'Montserrat',
+ timezone: 'America/Montserrat',
+ country_code: '1-664'
+ },
+ {
+ iso_country_code: 'MA',
+ country: 'Morocco',
+ timezone: 'Africa/Casablanca',
+ country_code: '212'
+ },
+ {
+ iso_country_code: 'MZ',
+ country: 'Mozambique',
+ timezone: 'Africa/Maputo',
+ country_code: '258'
+ },
+ {
+ iso_country_code: 'MM',
+ country: 'Myanmar',
+ timezone: 'Asia/Yangon',
+ country_code: '95'
+ },
+ {
+ iso_country_code: 'NA',
+ country: 'Namibia',
+ timezone: 'Africa/Windhoek',
+ country_code: '264'
+ },
+ {
+ iso_country_code: 'NR',
+ country: 'Nauru',
+ timezone: 'Pacific/Nauru',
+ country_code: '674'
+ },
+ {
+ iso_country_code: 'NP',
+ country: 'Nepal',
+ timezone: 'Asia/Kathmandu',
+ country_code: '977'
+ },
+ {
+ iso_country_code: 'NL',
+ country: 'Netherlands',
+ timezone: 'Europe/Amsterdam',
+ country_code: '31'
+ },
+ {
+ iso_country_code: 'NC',
+ country: 'New Caledonia',
+ timezone: 'Pacific/Noumea',
+ country_code: '687'
+ },
+ {
+ iso_country_code: 'NZ',
+ country: 'New Zealand',
+ timezone: 'Pacific/Auckland',
+ country_code: '64'
+ },
+ {
+ iso_country_code: 'NZ',
+ country: 'New Zealand',
+ timezone: 'Pacific/Chatham',
+ country_code: '64'
+ },
+ {
+ iso_country_code: 'NI',
+ country: 'Nicaragua',
+ timezone: 'America/Managua',
+ country_code: '505'
+ },
+ {
+ iso_country_code: 'NE',
+ country: 'Niger',
+ timezone: 'Africa/Niamey',
+ country_code: '227'
+ },
+ {
+ iso_country_code: 'NG',
+ country: 'Nigeria',
+ timezone: 'Africa/Lagos',
+ country_code: '234'
+ },
+ {
+ iso_country_code: 'NU',
+ country: 'Niue',
+ timezone: 'Pacific/Niue',
+ country_code: '683'
+ },
+ {
+ iso_country_code: 'NF',
+ country: 'Norfolk Island',
+ timezone: 'Pacific/Norfolk',
+ country_code: '683'
+ },
+ {
+ iso_country_code: 'KP',
+ country: 'North Korea',
+ timezone: 'Asia/Pyongyang',
+ country_code: '850'
+ },
+ {
+ iso_country_code: 'MP',
+ country: 'Northern Mariana Islands',
+ timezone: 'Pacific/Saipan',
+ country_code: '1-670'
+ },
+ {
+ iso_country_code: 'NO',
+ country: 'Norway',
+ timezone: 'Europe/Oslo',
+ country_code: '47'
+ },
+ {
+ iso_country_code: 'OM',
+ country: 'Oman',
+ timezone: 'Asia/Muscat',
+ country_code: '968'
+ },
+ {
+ iso_country_code: 'PK',
+ country: 'Pakistan',
+ timezone: 'Asia/Karachi',
+ country_code: '92'
+ },
+ {
+ iso_country_code: 'PW',
+ country: 'Palau',
+ timezone: 'Pacific/Palau',
+ country_code: '680'
+ },
+ {
+ iso_country_code: 'PS',
+ country: 'Palestinian Territory',
+ timezone: 'Asia/Gaza',
+ country_code: '970'
+ },
+ {
+ iso_country_code: 'PS',
+ country: 'Palestinian Territory',
+ timezone: 'Asia/Hebron',
+ country_code: '970'
+ },
+ {
+ iso_country_code: 'PA',
+ country: 'Panama',
+ timezone: 'America/Panama',
+ country_code: '507'
+ },
+ {
+ iso_country_code: 'PG',
+ country: 'Papua New Guinea',
+ timezone: 'Pacific/Bougainville',
+ country_code: '675'
+ },
+ {
+ iso_country_code: 'PG',
+ country: 'Papua New Guinea',
+ timezone: 'Pacific/Port_Moresby',
+ country_code: '675'
+ },
+ {
+ iso_country_code: 'PY',
+ country: 'Paraguay',
+ timezone: 'America/Asuncion',
+ country_code: '595'
+ },
+ {
+ iso_country_code: 'PE',
+ country: 'Peru',
+ timezone: 'America/Lima',
+ country_code: '51'
+ },
+ {
+ iso_country_code: 'PH',
+ country: 'Philippines',
+ timezone: 'Asia/Manila',
+ country_code: '63'
+ },
+ {
+ iso_country_code: 'PN',
+ country: 'Pitcairn',
+ timezone: 'Pacific/Pitcairn',
+ country_code: '64'
+ },
+ {
+ iso_country_code: 'PL',
+ country: 'Poland',
+ timezone: 'Europe/Warsaw',
+ country_code: '48'
+ },
+ {
+ iso_country_code: 'PT',
+ country: 'Portugal',
+ timezone: 'Atlantic/Azores',
+ country_code: '351'
+ },
+ {
+ iso_country_code: 'PT',
+ country: 'Portugal',
+ timezone: 'Atlantic/Madeira',
+ country_code: '351'
+ },
+ {
+ iso_country_code: 'PT',
+ country: 'Portugal',
+ timezone: 'Europe/Lisbon',
+ country_code: '351'
+ },
+ {
+ iso_country_code: 'PR',
+ country: 'Puerto Rico',
+ timezone: 'America/Puerto_Rico',
+ country_code: '1-787, 1-939'
+ },
+ {
+ iso_country_code: 'QA',
+ country: 'Qatar',
+ timezone: 'Asia/Qatar',
+ country_code: '974'
+ },
+ {
+ iso_country_code: 'CG',
+ country: 'Republic of the Congo',
+ timezone: 'Africa/Brazzaville',
+ country_code: '242'
+ },
+ {
+ iso_country_code: 'RE',
+ country: 'Reunion',
+ timezone: 'Indian/Reunion',
+ country_code: '262'
+ },
+ {
+ iso_country_code: 'RO',
+ country: 'Romania',
+ timezone: 'Europe/Bucharest',
+ country_code: '40'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Anadyr',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Barnaul',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Chita',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Irkutsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Kamchatka',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Khandyga',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Krasnoyarsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Magadan',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Novokuznetsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Novosibirsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Omsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Sakhalin',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Srednekolymsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Tomsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Ust-Nera',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Vladivostok',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Yakutsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Asia/Yekaterinburg',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Astrakhan',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Kaliningrad',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Kirov',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Moscow',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Samara',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Saratov',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Ulyanovsk',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RU',
+ country: 'Russia',
+ timezone: 'Europe/Volgograd',
+ country_code: '7'
+ },
+ {
+ iso_country_code: 'RW',
+ country: 'Rwanda',
+ timezone: 'Africa/Kigali',
+ country_code: '250'
+ },
+ {
+ iso_country_code: 'BL',
+ country: 'Saint Barthélemy',
+ timezone: 'America/St_Barthelemy',
+ country_code: '590'
+ },
+ {
+ iso_country_code: 'SH',
+ country: 'Saint Helena',
+ timezone: 'Atlantic/St_Helena',
+ country_code: '290'
+ },
+ {
+ iso_country_code: 'KN',
+ country: 'Saint Kitts and Nevis',
+ timezone: 'America/St_Kitts',
+ country_code: '1-869'
+ },
+ {
+ iso_country_code: 'LC',
+ country: 'Saint Lucia',
+ timezone: 'America/St_Lucia',
+ country_code: '1-758'
+ },
+ {
+ iso_country_code: 'MF',
+ country: 'Saint Martin',
+ timezone: 'America/Marigot',
+ country_code: '590'
+ },
+ {
+ iso_country_code: 'PM',
+ country: 'Saint Pierre and Miquelon',
+ timezone: 'America/Miquelon',
+ country_code: '508'
+ },
+ {
+ iso_country_code: 'VC',
+ country: 'Saint Vincent and the Grenadines',
+ timezone: 'America/St_Vincent',
+ country_code: '1-784'
+ },
+ {
+ iso_country_code: 'WS',
+ country: 'Samoa',
+ timezone: 'Pacific/Apia',
+ country_code: '685'
+ },
+ {
+ iso_country_code: 'SM',
+ country: 'San Marino',
+ timezone: 'Europe/San_Marino',
+ country_code: '378'
+ },
+ {
+ iso_country_code: 'ST',
+ country: 'Sao Tome and Principe',
+ timezone: 'Africa/Sao_Tome',
+ country_code: '239'
+ },
+ {
+ iso_country_code: 'SA',
+ country: 'Saudi Arabia',
+ timezone: 'Asia/Riyadh',
+ country_code: '966'
+ },
+ {
+ iso_country_code: 'SN',
+ country: 'Senegal',
+ timezone: 'Africa/Dakar',
+ country_code: '221'
+ },
+ {
+ iso_country_code: 'RS',
+ country: 'Serbia',
+ timezone: 'Europe/Belgrade',
+ country_code: '381'
+ },
+ {
+ iso_country_code: 'SC',
+ country: 'Seychelles',
+ timezone: 'Indian/Mahe',
+ country_code: '248'
+ },
+ {
+ iso_country_code: 'SL',
+ country: 'Sierra Leone',
+ timezone: 'Africa/Freetown',
+ country_code: '232'
+ },
+ {
+ iso_country_code: 'SG',
+ country: 'Singapore',
+ timezone: 'Asia/Singapore',
+ country_code: '65'
+ },
+ {
+ iso_country_code: 'SX',
+ country: 'Sint Maarten',
+ timezone: 'America/Lower_Princes',
+ country_code: '1-721'
+ },
+ {
+ iso_country_code: 'SK',
+ country: 'Slovakia',
+ timezone: 'Europe/Bratislava',
+ country_code: '421'
+ },
+ {
+ iso_country_code: 'SI',
+ country: 'Slovenia',
+ timezone: 'Europe/Ljubljana',
+ country_code: '386'
+ },
+ {
+ iso_country_code: 'SB',
+ country: 'Solomon Islands',
+ timezone: 'Pacific/Guadalcanal',
+ country_code: '677'
+ },
+ {
+ iso_country_code: 'SO',
+ country: 'Somalia',
+ timezone: 'Africa/Mogadishu',
+ country_code: '252'
+ },
+ {
+ iso_country_code: 'ZA',
+ country: 'South Africa',
+ timezone: 'Africa/Johannesburg',
+ country_code: '27'
+ },
+ {
+ iso_country_code: 'GS',
+ country: 'South Georgia and the South Sandwich Islands',
+ timezone: 'Atlantic/South_Georgia',
+ country_code: '27'
+ },
+ {
+ iso_country_code: 'KR',
+ country: 'South Korea',
+ timezone: 'Asia/Seoul',
+ country_code: '82'
+ },
+ {
+ iso_country_code: 'SS',
+ country: 'South Sudan',
+ timezone: 'Africa/Juba',
+ country_code: '211'
+ },
+ {
+ iso_country_code: 'ES',
+ country: 'Spain',
+ timezone: 'Africa/Ceuta',
+ country_code: '34'
+ },
+ {
+ iso_country_code: 'ES',
+ country: 'Spain',
+ timezone: 'Atlantic/Canary',
+ country_code: '34'
+ },
+ {
+ iso_country_code: 'ES',
+ country: 'Spain',
+ timezone: 'Europe/Madrid',
+ country_code: '34'
+ },
+ {
+ iso_country_code: 'LK',
+ country: 'Sri Lanka',
+ timezone: 'Asia/Colombo',
+ country_code: '94'
+ },
+ {
+ iso_country_code: 'SD',
+ country: 'Sudan',
+ timezone: 'Africa/Khartoum',
+ country_code: '249'
+ },
+ {
+ iso_country_code: 'SR',
+ country: 'Suriname',
+ timezone: 'America/Paramaribo',
+ country_code: '597'
+ },
+ {
+ iso_country_code: 'SJ',
+ country: 'Svalbard and Jan Mayen',
+ timezone: 'Arctic/Longyearbyen',
+ country_code: '47'
+ },
+ {
+ iso_country_code: 'SZ',
+ country: 'Swaziland',
+ timezone: 'Africa/Mbabane',
+ country_code: '268'
+ },
+ {
+ iso_country_code: 'SE',
+ country: 'Sweden',
+ timezone: 'Europe/Stockholm',
+ country_code: '46'
+ },
+ {
+ iso_country_code: 'CH',
+ country: 'Switzerland',
+ timezone: 'Europe/Zurich',
+ country_code: '41'
+ },
+ {
+ iso_country_code: 'SY',
+ country: 'Syria',
+ timezone: 'Asia/Damascus',
+ country_code: '963'
+ },
+ {
+ iso_country_code: 'TW',
+ country: 'Taiwan',
+ timezone: 'Asia/Taipei',
+ country_code: '886'
+ },
+ {
+ iso_country_code: 'TJ',
+ country: 'Tajikistan',
+ timezone: 'Asia/Dushanbe',
+ country_code: '992'
+ },
+ {
+ iso_country_code: 'TZ',
+ country: 'Tanzania',
+ timezone: 'Africa/Dar_es_Salaam',
+ country_code: '255'
+ },
+ {
+ iso_country_code: 'TH',
+ country: 'Thailand',
+ timezone: 'Asia/Bangkok',
+ country_code: '66'
+ },
+ {
+ iso_country_code: 'TG',
+ country: 'Togo',
+ timezone: 'Africa/Lome',
+ country_code: '228'
+ },
+ {
+ iso_country_code: 'TK',
+ country: 'Tokelau',
+ timezone: 'Pacific/Fakaofo',
+ country_code: '690'
+ },
+ {
+ iso_country_code: 'TO',
+ country: 'Tonga',
+ timezone: 'Pacific/Tongatapu',
+ country_code: '676'
+ },
+ {
+ iso_country_code: 'TT',
+ country: 'Trinidad and Tobago',
+ timezone: 'America/Port_of_Spain',
+ country_code: '1-868'
+ },
+ {
+ iso_country_code: 'TN',
+ country: 'Tunisia',
+ timezone: 'Africa/Tunis',
+ country_code: '216'
+ },
+ {
+ iso_country_code: 'TR',
+ country: 'Turkey',
+ timezone: 'Europe/Istanbul',
+ country_code: '90'
+ },
+ {
+ iso_country_code: 'TM',
+ country: 'Turkmenistan',
+ timezone: 'Asia/Ashgabat',
+ country_code: '993'
+ },
+ {
+ iso_country_code: 'TC',
+ country: 'Turks and Caicos Islands',
+ timezone: 'America/Grand_Turk',
+ country_code: '1-649'
+ },
+ {
+ iso_country_code: 'TV',
+ country: 'Tuvalu',
+ timezone: 'Pacific/Funafuti',
+ country_code: '688'
+ },
+ {
+ iso_country_code: 'VI',
+ country: 'U.S. Virgin Islands',
+ timezone: 'America/St_Thomas',
+ country_code: '1-340'
+ },
+ {
+ iso_country_code: 'UG',
+ country: 'Uganda',
+ timezone: 'Africa/Kampala',
+ country_code: '256'
+ },
+ {
+ iso_country_code: 'UA',
+ country: 'Ukraine',
+ timezone: 'Europe/Kiev',
+ country_code: '380'
+ },
+ {
+ iso_country_code: 'UA',
+ country: 'Ukraine',
+ timezone: 'Europe/Simferopol',
+ country_code: '380'
+ },
+ {
+ iso_country_code: 'UA',
+ country: 'Ukraine',
+ timezone: 'Europe/Uzhgorod',
+ country_code: '380'
+ },
+ {
+ iso_country_code: 'UA',
+ country: 'Ukraine',
+ timezone: 'Europe/Zaporozhye',
+ country_code: '380'
+ },
+ {
+ iso_country_code: 'AE',
+ country: 'United Arab Emirates',
+ timezone: 'Asia/Dubai',
+ country_code: '971'
+ },
+ {
+ iso_country_code: 'GB',
+ country: 'United Kingdom',
+ timezone: 'Europe/London',
+ country_code: '44'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Adak',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Anchorage',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Boise',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Chicago',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Denver',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Detroit',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Indianapolis',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Knox',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Marengo',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Petersburg',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Tell_City',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Vevay',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Vincennes',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Indiana/Winamac',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Juneau',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Kentucky/Louisville',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Kentucky/Monticello',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Los_Angeles',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Menominee',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Metlakatla',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/New_York',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Nome',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/North_Dakota/Beulah',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/North_Dakota/Center',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/North_Dakota/New_Salem',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Phoenix',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Sitka',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'America/Yakutat',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'US',
+ country: 'United States',
+ timezone: 'Pacific/Honolulu',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'UM',
+ country: 'United States Minor Outlying Islands',
+ timezone: 'Pacific/Midway',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'UM',
+ country: 'United States Minor Outlying Islands',
+ timezone: 'Pacific/Wake',
+ country_code: '1'
+ },
+ {
+ iso_country_code: 'UY',
+ country: 'Uruguay',
+ timezone: 'America/Montevideo',
+ country_code: '598'
+ },
+ {
+ iso_country_code: 'UZ',
+ country: 'Uzbekistan',
+ timezone: 'Asia/Samarkand',
+ country_code: '998'
+ },
+ {
+ iso_country_code: 'UZ',
+ country: 'Uzbekistan',
+ timezone: 'Asia/Tashkent',
+ country_code: '998'
+ },
+ {
+ iso_country_code: 'VU',
+ country: 'Vanuatu',
+ timezone: 'Pacific/Efate',
+ country_code: '678'
+ },
+ {
+ iso_country_code: 'VA',
+ country: 'Vatican',
+ timezone: 'Europe/Vatican',
+ country_code: '379'
+ },
+ {
+ iso_country_code: 'VE',
+ country: 'Venezuela',
+ timezone: 'America/Caracas',
+ country_code: '58'
+ },
+ {
+ iso_country_code: 'VN',
+ country: 'Vietnam',
+ timezone: 'Asia/Ho_Chi_Minh',
+ country_code: '84'
+ },
+ {
+ iso_country_code: 'WF',
+ country: 'Wallis and Futuna',
+ timezone: 'Pacific/Wallis',
+ country_code: '681'
+ },
+ {
+ iso_country_code: 'EH',
+ country: 'Western Sahara',
+ timezone: 'Africa/El_Aaiun',
+ country_code: '212'
+ },
+ {
+ iso_country_code: 'YE',
+ country: 'Yemen',
+ timezone: 'Asia/Aden',
+ country_code: '967'
+ },
+ {
+ iso_country_code: 'ZM',
+ country: 'Zambia',
+ timezone: 'Africa/Lusaka',
+ country_code: '260'
+ },
+ {
+ iso_country_code: 'ZW',
+ country: 'Zimbabwe',
+ timezone: 'Africa/Harare',
+ country_code: '263'
+ }
+]
+
+export default data
diff --git a/enatega-multivendor-app/src/utils/currencies.js b/enatega-multivendor-app/src/utils/currencies.js
new file mode 100644
index 0000000..4dfb2c3
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/currencies.js
@@ -0,0 +1,165 @@
+export const stripeCurrencies = [
+ { currency: 'USD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AED', currencySymbol: 'د.إ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AFN', currencySymbol: '؋', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ALL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AMD', currencySymbol: '֏', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ANG', currencySymbol: 'ƒ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AOA', currencySymbol: 'Kz', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ARS', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AUD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AWG', currencySymbol: 'ƒ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AZN', currencySymbol: '₼', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BAM', currencySymbol: 'BAM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BBD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BDT', currencySymbol: '৳', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BGN', currencySymbol: 'лв', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BIF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'BMD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BND', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BOB', currencySymbol: 'Bs.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BRL', currencySymbol: 'R$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BSD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BWP', currencySymbol: 'P', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BZD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CAD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CDF', currencySymbol: 'Fr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CHF', currencySymbol: 'Fr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CLP', currencySymbol: '$', multiplier: 1, type: 'STRIPE' },
+ { currency: 'CNY', currencySymbol: '¥', multiplier: 100, type: 'STRIPE' },
+ { currency: 'COP', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CRC', currencySymbol: '₡', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CVE', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CZK', currencySymbol: 'Kč', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DJF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'DKK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DOP', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DZD', currencySymbol: 'د.ج', multiplier: 100, type: 'STRIPE' },
+ { currency: 'EGP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ETB', currencySymbol: 'Br', multiplier: 100, type: 'STRIPE' },
+ { currency: 'EUR', currencySymbol: '€', multiplier: 100, type: 'STRIPE' },
+ { currency: 'FJD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'FKP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GBP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GEL', currencySymbol: '₾', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GIP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GMD', currencySymbol: 'D', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GNF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'GTQ', currencySymbol: 'Q', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GYD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HKD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HNL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HRK', currencySymbol: 'kn', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HTG', currencySymbol: 'G', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HUF', currencySymbol: 'Ft', multiplier: 100, type: 'STRIPE' },
+ { currency: 'IDR', currencySymbol: 'Rp', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ILS', currencySymbol: 'ع.د', multiplier: 100, type: 'STRIPE' },
+ { currency: 'INR', currencySymbol: '₹', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ISK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'JMD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'JPY', currencySymbol: '¥', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KES', currencySymbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KGS', currencySymbol: 'с', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KHR', currencySymbol: '៛', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KMF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KRW', currencySymbol: '₩', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KYD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KZT', currencySymbol: '₸', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LAK', currencySymbol: '₭', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LBP', currencySymbol: 'ل.ل', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LKR', currencySymbol: 'Rs', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LRD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LSL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MAD', currencySymbol: 'د.م.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MDL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MGA', currencySymbol: 'Ar', multiplier: 1, type: 'STRIPE' },
+ { currency: 'MKD', currencySymbol: 'ден', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MMK', currencySymbol: 'Ks', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MNT', currencySymbol: '₮', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MOP', currencySymbol: 'P', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MRO', currencySymbol: 'UM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MUR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MVR', currencySymbol: '.ރ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MWK', currencySymbol: 'MK', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MXN', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MYR', currencySymbol: 'RM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MZN', currencySymbol: 'MT', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NAD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NGN', currencySymbol: '₦', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NIO', currencySymbol: 'C$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NOK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NPR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NZD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PAB', currencySymbol: 'B/.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PEN', currencySymbol: 'S/.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PGK', currencySymbol: 'K', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PHP', currencySymbol: '₱', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PKR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PLN', currencySymbol: 'zł', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PYG', currencySymbol: '₲', multiplier: 1, type: 'STRIPE' },
+ { currency: 'QAR', currencySymbol: 'ر.ق', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RON', currencySymbol: 'lei', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RSD', currencySymbol: 'дин', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RUB', currencySymbol: '₽', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RWF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'SAR', currencySymbol: 'ر.س', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SBD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SCR', currencySymbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SEK', currencySymbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SGD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SHP', currencySymbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SLL', currencySymbol: 'Le', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SOS', currencySymbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SRD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'STD', currencySymbol: 'Db', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SZL', currencySymbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'THB', currencySymbol: '฿', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TJS', currencySymbol: 'ЅМ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TOP', currencySymbol: 'T$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TRY', currencySymbol: '₺', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TTD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TWD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TZS', currencySymbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UAH', currencySymbol: '₴', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UGX', currencySymbol: 'Sh', multiplier: 1, type: 'STRIPE' },
+ { currency: 'UYU', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UZS', currencySymbol: 'сўм', multiplier: 100, type: 'STRIPE' },
+ { currency: 'VND', currencySymbol: '₫', multiplier: 1, type: 'STRIPE' },
+ { currency: 'VUV', currencySymbol: 'Vt', multiplier: 1, type: 'STRIPE' },
+ { currency: 'WST', currencySymbol: 'T', multiplier: 100, type: 'STRIPE' },
+ { currency: 'XAF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'XCD', currencySymbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'XOF', currencySymbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'XPF', currencySymbol: '₣', multiplier: 1, type: 'STRIPE' },
+ { currency: 'YER', currencySymbol: '﷼', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ZAR', currencySymbol: 'Rs', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ZMW', currencySymbol: 'ZK', multiplier: 100, type: 'STRIPE' }
+]
+
+export const paypalCurrencies = [
+ { currency: 'AUD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'BRL', currencySymbol: 'R$', type: 'PAYPAL' },
+ { currency: 'CAD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'CZK', currencySymbol: 'Kč', type: 'PAYPAL' },
+ { currency: 'DKK', currencySymbol: 'kr', type: 'PAYPAL' },
+ { currency: 'EUR', currencySymbol: '€', type: 'PAYPAL' },
+ { currency: 'HKD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'HUF', currencySymbol: 'Ft', type: 'PAYPAL' },
+ { currency: 'INR', currencySymbol: '₹', type: 'PAYPAL' },
+ { currency: 'ILS', currencySymbol: 'ع.د', type: 'PAYPAL' },
+ { currency: 'JPY', currencySymbol: '¥', type: 'PAYPAL' },
+ { currency: 'MYR', currencySymbol: 'RM', type: 'PAYPAL' },
+ { currency: 'MXN', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'TWD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'NZD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'NOK', currencySymbol: 'kr', type: 'PAYPAL' },
+ { currency: 'PHP', currencySymbol: '₱', type: 'PAYPAL' },
+ { currency: 'PLN', currencySymbol: 'zł', type: 'PAYPAL' },
+ { currency: 'GBP', currencySymbol: '£', type: 'PAYPAL' },
+ { currency: 'RUB', currencySymbol: '₽', type: 'PAYPAL' },
+ { currency: 'SGD', currencySymbol: '$', type: 'PAYPAL' },
+ { currency: 'SEK', currencySymbol: 'kr', type: 'PAYPAL' },
+ { currency: 'CHF', currencySymbol: 'Fr', type: 'PAYPAL' },
+ { currency: 'THB', currencySymbol: '฿', type: 'PAYPAL' },
+ { currency: 'USD', currencySymbol: '$', type: 'PAYPAL' }
+]
diff --git a/enatega-multivendor-app/src/utils/customFunctions.js b/enatega-multivendor-app/src/utils/customFunctions.js
new file mode 100644
index 0000000..20525f9
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/customFunctions.js
@@ -0,0 +1,21 @@
+function calculateDistance(latS, lonS, latD, lonD) {
+ var R = 6371 // km
+ var dLat = toRad(latD - latS)
+ var dLon = toRad(lonD - lonS)
+ var lat1 = toRad(latS)
+ var lat2 = toRad(latD)
+
+ var a =
+ Math.sin(dLat / 2) * Math.sin(dLat / 2) +
+ Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2)
+ var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))
+ var d = R * c
+ return d
+}
+
+// Converts numeric degrees to radians
+function toRad(Value) {
+ return (Value * Math.PI) / 180
+}
+
+export { calculateDistance }
diff --git a/enatega-multivendor-app/src/utils/enums.js b/enatega-multivendor-app/src/utils/enums.js
new file mode 100644
index 0000000..dc5be30
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/enums.js
@@ -0,0 +1 @@
+export const DAYS = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
diff --git a/enatega-multivendor-app/src/utils/fontStyles.js b/enatega-multivendor-app/src/utils/fontStyles.js
new file mode 100644
index 0000000..2730071
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/fontStyles.js
@@ -0,0 +1,5 @@
+export const fontStyles = {
+ MuseoSans300: 'MuseoSans300',
+ MuseoSans500: 'MuseoSans500',
+ MuseoSans700: 'MuseoSans700'
+}
diff --git a/enatega-multivendor-app/src/utils/links.js b/enatega-multivendor-app/src/utils/links.js
new file mode 100644
index 0000000..bdf3571
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/links.js
@@ -0,0 +1,13 @@
+import { Platform, Linking } from 'react-native'
+
+export function linkToMapsApp({ latitude, longitude }, label) {
+ const scheme = Platform.select({ ios: 'maps:0,0?q=', android: 'geo:0,0?q=' })
+ const latLng = `${latitude},${longitude}`
+ // const label = label;
+ const url = Platform.select({
+ ios: `${scheme}${label}@${latLng}`,
+ android: `${scheme}${latLng}(${label})`
+ })
+
+ Linking.openURL(url)
+}
diff --git a/enatega-multivendor-app/src/utils/mapStyle.js b/enatega-multivendor-app/src/utils/mapStyle.js
new file mode 100644
index 0000000..379c4a6
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/mapStyle.js
@@ -0,0 +1,347 @@
+export const mapStyle = [
+ {
+ featureType: 'all',
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#ffffff'
+ }
+ ]
+ },
+ {
+ featureType: 'all',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ gamma: 0.01
+ },
+ {
+ lightness: 20
+ }
+ ]
+ },
+ {
+ featureType: 'all',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ saturation: -31
+ },
+ {
+ lightness: -33
+ },
+ {
+ weight: 2
+ },
+ {
+ gamma: 0.8
+ }
+ ]
+ },
+ {
+ featureType: 'all',
+ elementType: 'labels.icon',
+ stylers: [
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.locality',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#050505'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.locality',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ color: '#fef3f3'
+ },
+ {
+ weight: '3.01'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.neighborhood',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#0a0a0a'
+ },
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'administrative.neighborhood',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ color: '#fffbfb'
+ },
+ {
+ weight: '3.01'
+ },
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'landscape',
+ elementType: 'geometry',
+ stylers: [
+ {
+ lightness: 30
+ },
+ {
+ saturation: 30
+ }
+ ]
+ },
+ {
+ featureType: 'poi',
+ elementType: 'geometry',
+ stylers: [
+ {
+ saturation: 20
+ }
+ ]
+ },
+ {
+ featureType: 'poi.attraction',
+ elementType: 'labels.icon',
+ stylers: [
+ {
+ visibility: 'off'
+ }
+ ]
+ },
+ {
+ featureType: 'poi.park',
+ elementType: 'geometry',
+ stylers: [
+ {
+ lightness: 20
+ },
+ {
+ saturation: -20
+ }
+ ]
+ },
+ {
+ featureType: 'road',
+ elementType: 'geometry',
+ stylers: [
+ {
+ lightness: 10
+ },
+ {
+ saturation: -30
+ }
+ ]
+ },
+ {
+ featureType: 'road',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ saturation: 25
+ },
+ {
+ lightness: 25
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#a1a1a1'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ color: '#292929'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#202020'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#ffffff'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'labels.icon',
+ stylers: [
+ {
+ visibility: 'simplified'
+ },
+ {
+ hue: '#0006ff'
+ },
+ {
+ saturation: '-100'
+ },
+ {
+ lightness: '13'
+ },
+ {
+ gamma: '0.00'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#686868'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ visibility: 'off'
+ },
+ {
+ color: '#8d8d8d'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#353535'
+ },
+ {
+ lightness: '6'
+ }
+ ]
+ },
+ {
+ featureType: 'road.arterial',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#ffffff'
+ },
+ {
+ weight: '3.45'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ color: '#d0d0d0'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ lightness: '2'
+ },
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#999898'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#383838'
+ }
+ ]
+ },
+ {
+ featureType: 'road.local',
+ elementType: 'labels.text.stroke',
+ stylers: [
+ {
+ color: '#faf8f8'
+ }
+ ]
+ },
+ {
+ featureType: 'transit.line',
+ elementType: 'geometry.fill',
+ stylers: [
+ {
+ visibility: 'on'
+ },
+ {
+ color: '#000000'
+ }
+ ]
+ },
+ {
+ featureType: 'water',
+ elementType: 'all',
+ stylers: [
+ {
+ lightness: -20
+ }
+ ]
+ }
+]
diff --git a/enatega-multivendor-app/src/utils/regex.js b/enatega-multivendor-app/src/utils/regex.js
new file mode 100644
index 0000000..82a827b
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/regex.js
@@ -0,0 +1,4 @@
+export const emailRegex = /^\w+([\\.-]?\w+)*@\w+([\\.-]?\w+)*(\.\w{2,3})+$/
+export const passRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/
+export const nameRegex = /^[a-zA-Z][a-zA-Z\s]+$/
+export const phoneRegex = /^\d{9,15}$/
diff --git a/enatega-multivendor-app/src/utils/scaling.js b/enatega-multivendor-app/src/utils/scaling.js
new file mode 100644
index 0000000..26f0f56
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/scaling.js
@@ -0,0 +1,12 @@
+import { Dimensions } from 'react-native'
+
+const { width, height } = Dimensions.get('window')
+// Guideline sizes are based on standard ~5" screen mobile device
+const guidelineBaseWidth = 350
+const guidelineBaseHeight = 680
+const scale = size => (width / guidelineBaseWidth) * size
+const verticalScale = size => (height / guidelineBaseHeight) * size
+const moderateScale = (size, factor = 0.5) =>
+ size + (scale(size) - size) * factor
+
+export { scale, verticalScale, moderateScale }
diff --git a/enatega-multivendor-app/src/utils/textStyles.js b/enatega-multivendor-app/src/utils/textStyles.js
new file mode 100644
index 0000000..a46edbe
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/textStyles.js
@@ -0,0 +1,53 @@
+import { scale } from './scaling'
+import { fontStyles } from './fontStyles'
+
+export const textStyles = {
+ H1: {
+ fontSize: scale(35)
+ },
+ H2: {
+ fontSize: scale(24)
+ },
+ H3: {
+ fontSize: scale(20)
+ },
+ H4: {
+ fontSize: scale(16)
+ },
+ H5: {
+ fontSize: scale(14)
+ },
+ Normal: {
+ fontSize: scale(12)
+ },
+ Small: {
+ fontSize: scale(10)
+ },
+ Smaller: {
+ fontSize: scale(8)
+ },
+ Regular: {
+ fontFamily: fontStyles.MuseoSans300
+ },
+ Bold: {
+ fontFamily: fontStyles.MuseoSans500
+ },
+ Bolder: {
+ fontFamily: fontStyles.MuseoSans700
+ },
+ Center: {
+ textAlign: 'center'
+ },
+ Right: {
+ textAlign: 'right'
+ },
+ UpperCase: {
+ textTransform: 'uppercase'
+ },
+ LineOver: {
+ textDecorationLine: 'line-through'
+ },
+ B700: {
+ fontWeight: '700'
+ }
+}
diff --git a/enatega-multivendor-app/src/utils/themeColors.js b/enatega-multivendor-app/src/utils/themeColors.js
new file mode 100644
index 0000000..86f0306
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/themeColors.js
@@ -0,0 +1,122 @@
+export const theme = {
+ Pink: {
+ black: '#000',
+ white: '#FFF',
+ radioOuterColor: '#FFF',
+ mustard: '#d8d8d874',
+ borderColor: '#efefef',
+ backgroundColor: 'transparent',
+ borderBottomColor: '#DAD6D6',
+ primery: '#3C8F7C',
+ themeBackground: '#FAFAFA',
+ menuBar: '#FFF',
+ iconColor: '#333333',
+ iconColorPink: '#6FCF97',
+ itemCardColor: '#FFF',
+ headerColor: '#6FCF97',
+ tagColor: '#6FCF97',
+ radioColor: '#6FCF97',
+ //radioOuterColor: '#949393',
+ startColor: '#6FCF97',
+ startOutlineColor: '#6FCF97',
+ spinnerColor: '#6FCF97',
+ orderComplete: '#1DB20D',
+ orderUncomplete: '#fe0000',
+ horizontalLine: '#949393',
+ lightHorizontalLine: '#f0f0f0',
+ firstHeaderBackground: '#F5F5F5',
+ buttonBackground: '#6FCF97',
+ buttonText: '#000',
+ buttonBackgroundPink: '#6FCF97',
+ buttonTextPink: '#FFF',
+ fontWhite: '#FFF',
+ shadowColor: '#2a2a2a',
+ cartContainer: '#FFF',
+ textErrorColor: '#FA7751',
+ headerBackground: '#6FCF97',
+ headerMenuBackground: '#FAFAFA',
+ headerText: '#FFF',
+ fontMainColor: '#212121',
+ fontSecondColor: '#949393',
+ titleComponentBackground: 'rgba(39,111,191,0.1)',
+ titleComponentText: 'rgba(39,111,191,0.8)',
+ titleTextError: '#FFF',
+ statusSecondColor: '#5A5858',
+ starColor: '#4165b9',
+ rippleColor: '#6FCF97',
+ backIcon: '#fff',
+ backIconBackground: '#000',
+ secondaryText: '#A3A0A0',
+ main: '#90EA93',
+ secondaryBackground: '#ECECEC',
+ shadow: '#707070',
+ starRating: '#E2C077',
+ errorInputBack: '#F7E7E5',
+ errorInputBorder: '#DB4A39',
+ starRating: '#E2C077',
+ inputPlaceHolder: '#F3F4F8',
+ transparent: '#00000000',
+ customizeOpacityBtn: 'rgba(0, 0, 0, 0.74)',
+ deleteButton: '#fe0000',
+ backgroundColor2: 'rgba(0, 0, 0, 0.5)',
+ backgroundColor3: 'rgba(256, 256, 256, 0.9)',
+ hex: '#b0afbc',
+ gray: 'grey',
+ darkBgFont: '#000',
+ btnText: '#000'
+
+ },
+ Dark: {
+ black: '#000',
+ white: '#FFF',
+ themeBackground: '#000',
+ menuBar: '#000',
+ iconColor: '#FCFCFC',
+ itemCardColor: '#000',
+ tagColor: '#6FCF97',
+ iconColorPink: '#6FCF97',
+ radioColor: '#6FCF97',
+ radioOuterColor: '#383737',
+ startColor: '#6FCF97',
+ startOutlineColor: '#6FCF97',
+ spinnerColor: '#6FCF97',
+ orderComplete: '#1DB20D',
+ orderUncomplete: '#fe0000',
+ horizontalLine: '#DFDCDC',
+ lightHorizontalLine: '#2D2929',
+ shadowColor: '#898989',
+ cartContainer: '#383737',
+ textErrorColor: '#FA7751',
+ buttonBackground: '#E8E8E8',
+ buttonText: '#000',
+ buttonBackgroundPink: '#6FCF97',
+ buttonTextPink: '#FFF',
+ fontWhite: '#FFF',
+ fontMainColor: '#F9F9F9',
+ fontSecondColor: '#7F7F7F',
+ headerBackground: '#000',
+ headerMenuBackground: '#000',
+ headerText: '#FFF',
+ colorPrimary300: '#333333',
+ titleComponentBackground: 'rgba(39,111,191,0.1)',
+ titleComponentText: 'rgba(39,111,191,0.8)',
+ titleTextError: '#FFF',
+ statusSecondColor: '#949393',
+ rippleColor: '#6FCF97',
+ backIcon: '#fff',
+ backIconBackground: '#000',
+ secondaryText: '#A3A0A0',
+ main: '#90EA93',
+ secondaryBackground: '#ECECEC',
+ shadow: '#707070',
+ errorInputBack: '#F7E7E5',
+ errorInputBorder: '#DB4A39',
+ inputPlaceHolder: '#F3F4F8',
+ transparent: '#ff000080',
+ customizeOpacityBtn: 'rgba(0, 0, 0, 0.74)',
+ backgroundColor3: 'rgba(0, 0, 0, 0.9)',
+ darkBgFont: '#FFF',
+ headerColor: '#000',
+ btnText: '#FFF'
+ }
+}
diff --git a/enatega-multivendor-app/src/utils/useAppTrackingTrasparency.js b/enatega-multivendor-app/src/utils/useAppTrackingTrasparency.js
new file mode 100644
index 0000000..9ee960d
--- /dev/null
+++ b/enatega-multivendor-app/src/utils/useAppTrackingTrasparency.js
@@ -0,0 +1,13 @@
+import {
+ requestTrackingPermissionsAsync,
+ getTrackingPermissionsAsync
+} from 'expo-tracking-transparency'
+
+export const requestTrackingPermissions = async() => {
+ const { status } = await requestTrackingPermissionsAsync()
+ return status
+}
+export const getTrackingPermissions = async() => {
+ const { status } = await getTrackingPermissionsAsync()
+ return status
+}
diff --git a/enatega-multivendor-app/translations/ar.js b/enatega-multivendor-app/translations/ar.js
new file mode 100644
index 0000000..1ac6b98
--- /dev/null
+++ b/enatega-multivendor-app/translations/ar.js
@@ -0,0 +1,367 @@
+export const ar = {
+ title0: 'اللغة المختارة',
+ subtitle0: 'الإنجليزية',
+ description0:
+ 'اختر أي لغة تفضلها لتغيير محتوى التطبيق إلى اللغة المطلوبة.',
+ title1: 'لذيذ',
+ subtitle1: 'وجبة الإفطار',
+ description1:
+ 'الإفطار هو كل شيء. البداية، الشيء الأول. إنها الحاجة التي تعبر عن التزامنا بيوم جديد، حياة مستمرة.',
+ title2: 'منعش',
+ subtitle2: 'مشروبات',
+ description2:
+ 'الصمت الحقيقي هو راحة العقل، وهو ما تعنيه للروح النوم للجسم، غذاء وانتعاش.',
+ title3: 'لذيذ',
+ subtitle3: 'الآيس كريم',
+ description3:
+ 'لا تقلل العمر من الإحباط الشديد لفقدان كرة الآيس كريم من الموزة.',
+ getStarted: 'ابدأ الآن!',
+ welcome:
+ 'مرحبًا بك في Enatega، في بعض الأحيان كل ما تحتاجه هو الحب. ولكن القليل من الطعام بين الحين والآخر لا يضر.',
+ loginBtn: 'تسجيل الدخول',
+ registerBtn: 'التسجيل',
+ name: 'الاسم',
+ phone: 'الهاتف',
+ email: 'البريد الإلكتروني',
+ emailphone: 'البريد الإلكتروني أو الهاتف',
+ password: 'كلمة المرور',
+ deliveryAddress: 'عنوان التوصيل',
+ fullDeliveryAddress: 'عنوان التوصيل الكامل',
+ deliveryDetails: 'التفاصيل المطلوبة - على سبيل المثال، الطابق/المبنى',
+ myAddresses: 'عناويني',
+ addAddress: 'إضافة عنوان جديد',
+ editAddress: 'تحرير العنوان',
+ registerText: 'أو سجل مع',
+ forgotPassword: 'نسيت كلمة المرور؟',
+ loginText: 'أو قم بتسجيل الدخول باستخدام',
+ deliveryLocation:
+ 'قم بتفعيل الموقع حتى نتمكن من إرسال لك مذاقًا لا ينتهي من الطعام اللذيذ.',
+ locationBtn: 'تفعيل الموقع',
+ locationPermissionDenied: 'تم رفض الإذن بالوصول إلى الموقع',
+ cameraRollPermissionDenied: 'تم رفض الإذن بالوصول إلى مكتبة الصور',
+ locationOff: 'قم بتشغيل الموقع وحاول مرة أخرى',
+ titleLanguage: 'تغيير اللغة',
+ titleMenu: 'القائمة',
+ titleOrders: 'طلباتي',
+ titleReorder: 'الطلب السابق',
+ titleNotifications: 'الإشعارات',
+ titleReviews: 'التقييمات',
+ titleProfile: 'الملف الشخصي',
+ titleSettings: 'الإعدادات',
+ titleHelp: 'المساعدة',
+ titleChat: 'الدردشة',
+ titleLogout: 'تسجيل الخروج',
+ titleCart: 'عربتي',
+ titlePayment: 'الدفع',
+ totalOrderAmount: 'إجمالي مبلغ الطلب',
+ reOrder: 'إعادة الطلب',
+ previous: 'الطلب السابق',
+ unReadNotifications: 'لا يوجد إشعارات غير مقروءة',
+ upload: 'تحميل',
+ saveBtn: 'حفظ',
+ saveContBtn: 'حفظ ومتابعة',
+ emailUs: 'راسلنا عبر البريد الإلكتروني على',
+ question1: 'أين يمكننا العثور على الطعام؟',
+ question2: 'كيف يمكننا التواصل؟',
+ question3: 'كيف يمكنني دفع مبلغ التوصيل؟',
+ question4: 'هل الخدمة متوفرة في مدينتي؟',
+ answer1:
+ 'يمكنك العثور على الطعام في أقرب متجر لديك دون دفع أي شيء لخدمة العملاء. تكاليفنا منخفضة للغاية مقارنة بالآخرين.',
+ answer2: 'يمكنك التواصل معنا من خلال البريد الإلكتروني، رقم الهاتف أو موقع الويب الخاص بنا.',
+ answer3:
+ 'يمكنك دفع مبلغ التوصيل للشخص المسؤول عن التوصيل شخصياً أو الدفع عبر الإنترنت أيضًا باستخدام بطاقة الائتمان أو الخصم.',
+ answer4:
+ 'حاليًا، هذه الخدمة متاحة في مدن إسلام آباد وكراتشي. يمكنك التواصل معنا للاستفادة من هذه الخدمة في مدينتك.',
+ add: 'إضافة',
+ quantity: 'الكمية',
+ size: 'الحجم',
+ addToCart: 'إضافة إلى السلة',
+ orderNow: 'اطلب الآن',
+ addToCartMessage: 'تمت الإضافة إلى السلة',
+ emptyCart: 'لا توجد عناصر في السلة',
+ itemTotal: 'إجمالي المنتجات',
+ delvieryCharges: 'رسوم التوصيل',
+ total: 'الإجمالي',
+ contactInfo: 'معلومات الاتصال',
+ deliveryAddressmessage: 'قم بتحديد عنوان التوصيل',
+ proceedCheckout: 'المتابعة للدفع',
+ paymentText: 'كيف ترغب في الدفع؟',
+ checkout: 'الدفع',
+ creditCart: 'بطاقة الائتمان/بطاقة الخصم',
+ paypal: 'باي بال',
+ cod: 'الدفع نقدًا عند التسليم',
+ thankYou: 'شكرًا لك!',
+ orderConfirmed: 'تم تأكيد طلبك',
+ orderId: 'رقم طلبك',
+ orderAmount: 'مبلغ الطلب',
+ orderDetail: 'تفاصيل الطلب',
+ paymentMethod: 'طريقة الدفع',
+ trackOrder: 'تتبع الطلب',
+ backToMenu: 'العودة إلى القائمة',
+ foodItem: 'عنصر الطعام',
+ deliveredTo: 'تم التوصيل إلى',
+ writeAReview: 'كتابة تقييم',
+ orderReceived: 'تم استلام الطلب',
+ orderPicked: 'طلبك في طريقه',
+ orderDelivered: 'تم التوصيل',
+ completed: 'تم الاكتمال',
+ cancelled: 'تم الإلغاء',
+ orderPreparing: 'جاري تحضير طلبك',
+ delivered: 'تم التوصيل',
+ rateAndReview: 'قيم وأكتب تقييمًا',
+ reviewPlaceholder: 'التقييمات المفصلة تحصل على مزيد من الرؤية...',
+ submit: 'إرسال',
+ noWorriesText: 'لا تقلق، دعنا نساعدك!',
+ yourEmail: 'بريدك الإلكتروني',
+ send: 'إرسال',
+ apply: 'تطبيق',
+ checkEmail: 'تحقق من بريدك الإلكتروني لرابط إعادة تعيين كلمة المرور',
+ languageText: 'الرجاء اختيار اللغة المطلوبة',
+ countryCodePickerTranslation: 'eng',
+ countryCodeSelect: 'اختر الرمز الدولي',
+ paymentNotSupported: 'هذا الطريقة للدفع غير مدعومة بالعملة المحددة',
+ loginOrCreateAccount: 'تسجيل الدخول / إنشاء حساب',
+ unReadReviews: 'لا توجد تقييمات بعد!',
+ unReadOrders: 'لا توجد طلبات بعد!',
+ error: 'خطأ',
+ noMoreItems: 'لا يوجد المزيد من العناصر في المخزون',
+ hungry: 'جائع',
+ emptyCartBtn: 'العودة إلى الطعام',
+ emptyFavBtn: 'لنجد بعض المفضلات',
+ subTotal: 'الإجمالي الفرعي',
+ deliveryFee: 'رسوم التوصيل',
+ haveVoucher: 'هل لديك قسيمة؟',
+ remove: 'إزالة',
+ change: 'تغيير',
+ condition1: 'من خلال إكمال هذا الطلب، أوافق على جميع الشروط والأحكام.',
+ condition2:
+ 'أوافق وأطالب بتنفيذ الخدمة المطلوبة قبل نهاية فترة الرجوع. أنا على علم بأن بعد الوفاء التام بالخدمة، أفقد حقي في الرجوع.',
+ orderBtn: 'تقديم الطلب',
+ coupanApply: 'تم تطبيق خصم القسيمة',
+ coupanFailed: 'القسيمة غير متاحة',
+ invalidCoupan: 'قسيمة غير صالحة',
+ validateItems: 'أضف عناصر إلى السلة قبل الدفع',
+ validateDelivery: 'قم بتحديد عنوان التوصيل قبل الدفع',
+ titleFavourite: 'المفضلة',
+ titleEmptyFav: 'لم يتم حفظ أي مفضلة',
+ emptyFavDesc: 'ستجد هنا جميع مفضلاتك لتسريع عملية الطلب.',
+ justLook: 'ابحث فقط عن',
+ taxFee: 'رسوم الضرائب',
+ viewCart: 'عرض السلة الخاصة بك',
+ featured: 'مميز',
+ allRestaurant: 'جميع المطاعم',
+ titleDeliveryDetails: 'تفاصيل التوصيل',
+ titlePickUpDetails: 'تفاصيل الاستلام',
+ tip: 'بقشيش',
+ reviewRegardingOrder: 'تقييم بخصوص طلبك؟',
+ anySuggestion: 'أي اقتراح؟',
+ newUser: 'مستخدم جديد؟ أنشئ حسابًا',
+ signUporSignIn: 'سجل الدخول أو سجّل',
+ or: 'أو',
+ termCondition1: 'من خلال المتابعة، أنت توافق على',
+ termConditions: 'الشروط والأحكام',
+ privacyPolicy: 'سياسة الخصوصية',
+ and: 'و',
+ whatsYourEmail: 'ما هو بريدك الإلكتروني؟',
+ checkAccount: 'سنتحقق مما إذا كان لديك حساب',
+ signInWithEmail: 'تسجيل الدخول باستخدام بريدك الإلكتروني',
+ continueBtn: 'متابعة',
+ emailErr1: 'البريد الإلكتروني مطلوب',
+ emailErr2: 'بريد إلكتروني غير صالح!',
+ passErr1: 'كلمة المرور مطلوبة',
+ passErr2:
+ 'كلمة المرور غير صالحة. يجب أن تحتوي كلمة المرور على حرف كبير وحرف صغير ورقم واحد على الأقل.',
+ letsGetStarted: 'لنبدأ!',
+ createAccount: 'أنشئ حسابك في إنتجا',
+ firstnameErr1: 'الاسم الأول مطلوب!',
+ firstnameErr2: 'اسم أول غير صالح!',
+ lastnameErr1: 'الاسم الأخير مطلوب!',
+ lastnameErr2: 'اسم أخير غير صالح!',
+ mobileErr1: 'رقم الهاتف مطلوب!',
+ mobileErr2: 'رقم الهاتف غير صالح',
+ verifyEmail: 'التحقق من بريدك الإلكتروني؟',
+ otpSentToEmail: 'الرجاء إدخال رمز OTP الذي أرسلناه إلى بريدك الإلكتروني.',
+ verifyPhone: 'التحقق من رقم هاتفك؟',
+ otpSentToPhone: 'الرجاء إدخال رمز OTP الذي أرسلناه إلى رقم هاتفك.',
+ wrongOtp: 'OTP خاطئ. يُرجى المحاولة مرة أخرى!',
+ resendBtn: 'إعادة الإرسال',
+ enterYourEmail: 'أدخل بريدك الإلكتروني وسنرسل لك رمز OTP لإعادة تعيين كلمة المرور.',
+ backToLogin: 'العودة إلى تسجيل الدخول',
+ setYourPassword: 'تعيين كلمة المرور الخاصة بك',
+ enterPass: 'الرجاء إدخال كلمة المرور',
+ confirmPassRequired: 'كلمة المرور التأكيدية مطلوبة!',
+ yourPhoneNumber: 'ما هو رقم هاتفك؟',
+ secureAccountWithPhone: 'نحتاج إلى ذلك لتأمين حسابك',
+ Home: 'المنزل',
+ Work: 'العمل',
+ Other: 'آخر',
+ addLabel: 'إضافة تصنيف',
+ profileDetail: 'تفاصيل شخصية',
+ update: 'تحديث',
+ mobile: 'رقم الجوال',
+ addPhone: 'إضافة رقم الجوال',
+ verified: 'متحقق',
+ verify: 'تحقق',
+ unverified: 'غير متحقق',
+ changePassword: 'تغيير كلمة المرور',
+ currentPassword: 'كلمة المرور الحالية',
+ newPassword: 'كلمة المرور الجديدة',
+ updatePassword: 'تم تحديث كلمة المرور',
+ searchAddress: 'البحث عن عنوان',
+ addToCart: 'أضف إلى السلة',
+ loading: 'جار التحميل...',
+ PENDING: 'قيد الانتظار',
+ ACCEPTED: 'تم قبوله',
+ ASSIGNED: 'تم تعيينه',
+ PICKED: 'تم الاختيار',
+ DELIVERED: 'تم التوصيل',
+ COMPLETED: 'تم الانتهاء',
+ pendingOrder: 'طلبك ما زال قيد الانتظار.',
+ acceptedOrder: 'المطعم يقوم بتحضير الطعام.',
+ assignedOrder: 'تم تعيين مندوب التوصيل.',
+ pickedOrder: 'المندوب في الطريق.',
+ deliveredOrder: 'تم توصيل الطلب.',
+ completedOrder: 'تم استلام الطلب.',
+ PENDINGStatusMessage: 'في انتظار قبول المطعم',
+ ACCEPTEDStatusMessage: 'يتم تحضير الطعام',
+ ASSIGNEDStatusMessage: 'تم تعيين مندوب التوصيل',
+ PICKEDStatusMessage: 'المندوب في الطريق',
+ DELIVEREDStatusMessage: 'شكرًا لك!',
+ CANCELLEDStatusMessage: 'نأسف، تم إلغاء طلبك.',
+ yourOrderIs: 'طلبك',
+ delivery: 'توصيل',
+ Min: 'دقيقة',
+ min: 'دقيقة',
+ Closed: 'مغلق',
+ PenddingText: 'نحن نسأل المطعم كم سيستغرق توصيل طعامك.',
+ PenddingText1: 'سيكون راكب المطعم في مكانك حوالي.',
+ OrderFrom: 'طلبك من:',
+ OrderNo: 'رقم طلبك',
+ ActiveOrder: 'الطلبات النشطة',
+ PastOrder: 'الطلبات السابقة',
+ ContinueWithGoogle: 'المتابعة مع جوجل',
+ ContinueWithEmail: 'المتابعة مع البريد الإلكتروني',
+ Cancel: 'إلغاء',
+ DeleteAccount: 'حذف الحساب',
+ DeleteConfirmation: 'هل أنت متأكد أنك تريد حذف الحساب؟',
+ chatWithRider: 'الدردشة مع السائق',
+ yourOrderIs: 'طلبك هو',
+ noItemsExists: 'لا توجد عناصر',
+ pickUpAddress: 'عنوان الاستلام',
+ selectedLocation: 'الموقع المحدد',
+ noReviewYet: 'لا توجد تقييمات بعد.',
+ Openingtimes: 'أوقات العمل',
+ ClosedAllDay: 'مغلق طوال اليوم',
+ About: 'حول',
+ Reviews: 'التقييمات',
+ emptyHere: "هنا فارغ.",
+ emptyHereDecs1: "لم تقم بحفظ أي عنوان حتى الآن.",
+ emptyHereDecs2: "انقر على إضافة عنوان جديد للبدء.",
+ changeAddress: 'تغيير العنوان',
+ pickUp: 'الاستلام',
+ Custom: 'مخصص',
+ save: 'حفظ',
+ SelectPickupDT: 'حدد تاريخ ووقت الاستلام',
+ SelectDeliveryDT: 'حدد تاريخ ووقت التسليم',
+ viewLess: 'عرض أقل',
+ viewAll: 'عرض الكل',
+ currentLocation: 'الموقع الحالي',
+ useCurrentLocation: 'استخدم الموقع الحالي',
+ locationPermissionMessage: 'اضغط على هذه الرسالة لفتح الإعدادات ثم اسمح للتطبيق باستخدام الموقع من الصلاحيات.',
+ enategaUseYourLocationMessage: 'تستخدم إناتيغا موقعك لعرض المطاعم القريبة منك!',
+ selectAnotherLocation: 'حدد موقعًا آخر',
+ setLocation: 'تعيين الموقع',
+ cartIsEmpty: 'السلة فارغة',
+ favouritelistUpdated: 'تم تحديث قائمة المفضلة',
+ minAmount: 'الحد الأدنى للمبلغ ',
+ forYourOrder: ' لطلبك لم يتم الوصول إليه.',
+ setPaymentMethod: 'قم بتعيين طريقة الدفع قبل الخروج',
+ numberVerificationAlert: 'رقم الهاتف غير متحقق. يرجى التحقق من رقم الهاتف.',
+ numberVerified: 'تم التحقق من رقم الهاتف بنجاح!.',
+ numberAddedAlert: 'تمت إضافة رقم الهاتف بنجاح!.',
+ itemNotAvailable: 'أحد المنتجات أو أكثر غير متوفرة',
+ accountDeactivated: 'تم تعطيل الحساب',
+ addressUpdated: 'تم تحديث العنوان',
+ errorOccured: 'حدث خطأ. يرجى المحاولة مرة أخرى ',
+ otpForResetPassword: 'تم إرسال رمز OTP لإعادة تعيين كلمة المرور إلى بريدك الإلكتروني.',
+ passwordResetSuccessfully: 'تمت إعادة تعيين كلمة المرور بنجاح!',
+ passwordMustMatch: 'يجب أن تتطابق كلمة المرور مع تأكيد كلمة المرور',
+ emailAssociatedWith: 'بريدك الإلكتروني مرتبط بـ ',
+ continueWith: '. يرجى الاستمرار مع ',
+ mailCheckingError: 'خطأ أثناء فحص البريد الإلكتروني. حاول مرة أخرى في وقت لاحق!',
+ errorInLoginError: 'خطأ في تسجيل الدخول',
+ errorWhileLogging: 'خطأ أثناء تسجيل الدخول. يرجى المحاولة مرة أخرى لاحقًا',
+ accountCreated: 'تم إنشاء حسابك.',
+ invalidPassword: 'كلمة مرور غير صالحة',
+ userInfoUpdated: 'تم تحديث معلومات المستخدم',
+ nameError: 'الاسم مطلوب',
+ notificationStatusUpdated: 'تم تحديث حالة الإشعار',
+ notificationNotWork: 'الإشعارات لا تعمل على المحاكي',
+ errorInProfile: 'خطأ في الملف الشخصي',
+ invalidAmount: 'مبلغ غير صالح',
+ amountMustBe: 'يجب أن يكون المبلغ أكبر من 0',
+ otherAmount: 'مبلغ آخر',
+ addOtherAmount: 'إضافة مبلغ آخر',
+ otpResentToEmail: 'تم إعادة إرسال رمز OTP إلى بريدك الإلكتروني.',
+ search: 'بحث',
+ searchRestaurant: 'البحث عن المطاعم',
+ message: 'رسالة',
+ aptFloor: 'شقة | طابق',
+ confirmPassword: 'تأكيد كلمة المرور',
+ specialInstructions: 'تعليمات خاصة',
+ anySpecificPreferences: 'هل هناك تفضيلات محددة؟',
+ optional: 'اختياري',
+ noMayo: 'على سبيل المثال، بدون مايونيز',
+ mobileNumber: 'رقم الهاتف المحمول',
+ firstNamePH: 'الاسم الأول',
+ lastNamePH: 'الاسم الأخير',
+ titleCustomize: 'تخصيص',
+ titleMyVouchers: 'قسائمي',
+ titleProductPage: 'صفحة المنتج',
+ titleDocs: 'المستندات',
+ titleBlog: 'المدونة',
+ titleAboutUs: 'من نحن',
+ paypalCheckout: 'دفع باي بال',
+ stripeCheckout: 'دفع باستخدام Stripe',
+ titleTipping: 'البقشيش',
+ statusOrderPalced: 'تم وضع الطلب',
+ statusAccepted: 'تم قبوله',
+ statusAssigned: 'تم تعيينه',
+ statusPicked: 'تم اختياره',
+ statusDelivered: 'تم التوصيل',
+ selectLocation: 'اختر الموقع',
+ languageSetting: 'إعدادات اللغة',
+ receiveSpecialOffers: 'استلام عروض خاصة',
+ getUpdates: 'الحصول على تحديثات حالة طلبك',
+ turnOnDarkTheme: 'تشغيل الوضع الليلي',
+ selectLanguage: 'اختر اللغة',
+ Select: 'تحديد',
+ DELETEACCOUNT: 'حذف الحساب',
+ ETA: 'وقت الوصول المتوقع',
+ contactYourRider: 'تواصل مع السائق الخاص بك',
+ selectCountry: 'اختر البلد',
+ MON: 'الاثنين',
+ TUE: 'الثلاثاء',
+ WED: 'الأربعاء',
+ THU: 'الخميس',
+ FRI: 'الجمعة',
+ SAT: 'السبت',
+ SUN: 'الأحد',
+ DeliveryAddressIsRequired: 'العنوان للتوصيل مطلوب',
+ SelectVariation: 'اختر التنوع',
+ SelectOne: 'اختر واحدة',
+ Required: 'مطلوب',
+ howWasMeal: 'كيف كانت وجبتك؟',
+ howWasMealP: 'هل كانت جيدة أم سيئة؟ دعونا نتحدث عنها',
+ RateYourOrder: 'قيم طلبك',
+ yourExperience: 'حدثنا عن تجربتك',
+ selectItems: 'اختر العناصر',
+ dontHaveAnyOrderYet: "ليس لديك أي طلب سابق حتى الآن. جرب أحد مطاعمنا الرائعة وقدم طلبك الأول!",
+ BrowseRESTAURANTS: 'تصفح المطاعم في منطقتك',
+ RateOrder: 'تقييم الطلب',
+ voucherCode: "أدخل رمز القسيمة الخاص بك",
+ networkError: "حدث خطأ ما. تحقق من شبكتك وحاول مرة أخرى.",
+ noRestaurants: "لا مطاعم",
+ clearCartText: 'عند مغادرة صفحة المطعم هذه، سيتم محو العناصر التي أضفتها إلى السلة',
+okText: 'موافق'
+}
diff --git a/enatega-multivendor-app/translations/de.js b/enatega-multivendor-app/translations/de.js
new file mode 100644
index 0000000..83ac8d1
--- /dev/null
+++ b/enatega-multivendor-app/translations/de.js
@@ -0,0 +1,365 @@
+export const de = {
+ title0: 'Ausgewählte Sprache',
+ subtitle0: 'Englisch',
+ description0:
+ 'Wählen Sie eine Sprache Ihrer Wahl, um den Inhalt der App in Ihre gewünschte Sprache zu ändern.',
+ title1: 'Lecker',
+ subtitle1: 'Frühstück',
+ description1:
+ 'Frühstück ist alles. Der Anfang, das Erste. Es ist der Bissen, der das Engagement für einen neuen Tag, ein fortwährendes Leben ist.',
+ title2: 'Erfrischend',
+ subtitle2: 'Getränke',
+ description2:
+ 'Wahre Stille ist die Ruhe des Geistes und entspricht dem, was Schlaf für den Körper ist: Nahrung und Erfrischung.',
+ title3: 'Lecker',
+ subtitle3: 'Eiscreme',
+ description3:
+ 'Das Alter mindert nicht die extreme Enttäuschung, wenn ein Kugel Eis vom Hörnchen fällt.',
+ getStarted: 'Los geht\'s!',
+ welcome:
+ 'Willkommen bei Enatega, manchmal braucht man nur Liebe. Aber ab und zu schadet etwas Essen nicht.',
+ loginBtn: 'Anmelden',
+ registerBtn: 'Registrieren',
+ name: 'Name',
+ phone: 'Telefon',
+ email: 'E-Mail',
+ emailphone: 'E-Mail oder Telefon',
+ password: 'Passwort',
+ deliveryAddress: 'Lieferadresse',
+ fullDeliveryAddress: 'Ihre vollständige Lieferadresse',
+ deliveryDetails: 'Erforderliche Details - z.B. Etage/Gebäude',
+ myAddresses: 'Meine Adressen',
+ addAddress: 'Neue Adresse hinzufügen',
+ editAddress: 'Adresse bearbeiten',
+ registerText: 'Oder registrieren Sie sich mit',
+ forgotPassword: 'Passwort vergessen?',
+ loginText: 'Oder anmelden mit',
+ deliveryLocation:
+ 'Aktivieren Sie den Standort, damit wir Ihnen endlose Geschmackserlebnisse von köstlichem Essen schicken können.',
+ locationBtn: 'Standort aktivieren',
+ locationPermissionDenied: 'Die Berechtigung zum Zugriff auf den Standort wurde verweigert',
+ cameraRollPermissionDenied: 'Die Berechtigung zum Zugriff auf die Kamerarolle wurde verweigert',
+ locationOff: 'Aktivieren Sie den Standort und versuchen Sie es erneut',
+ titleLanguage: 'Sprache ändern',
+ titleMenu: 'Menü',
+ titleOrders: 'Meine Bestellungen',
+ titleReorder: 'Vorherige Bestellung',
+ titleNotifications: 'Benachrichtigungen',
+ titleReviews: 'Bewertungen',
+ titleProfile: 'Profil',
+ titleSettings: 'Einstellungen',
+ titleHelp: 'Hilfe',
+ titleChat: 'Chat',
+ titleLogout: 'Abmelden',
+ titleCart: 'Mein Warenkorb',
+ titlePayment: 'Zahlung',
+ totalOrderAmount: 'Gesamtbetrag der Bestellung',
+ reOrder: 'Erneut bestellen',
+ previous: 'Vorherige Bestellung',
+ unReadNotifications: 'Keine ungelesenen Benachrichtigungen',
+ upload: 'Hochladen',
+ saveBtn: 'Speichern',
+ saveContBtn: 'SPEICHERN UND FORTSETZEN',
+ emailUs: 'Schreiben Sie uns eine E-Mail an',
+ question1: 'Wo finden wir das Essen?',
+ question2: 'Wie können wir Kontakt aufnehmen?',
+ question3: 'Wie kann ich den Lieferanten bezahlen?',
+ question4: 'Ist der Service in meiner Stadt verfügbar?',
+ answer1:
+ 'Sie können das Essen in Ihrem nächsten Geschäft finden, ohne etwas an den Kundenservice zu zahlen. Unsere Gebühren sind im Vergleich zu anderen extrem niedrig.',
+ answer2: 'Sie können uns per E-Mail, Telefon oder über unsere Website kontaktieren.',
+ answer3:
+ 'Sie können den Lieferanten persönlich bezahlen oder auch online mit Kreditkarte oder Debitkarte bezahlen.',
+ answer4:
+ 'Derzeit ist dieser Service in den Städten Islamabad und Karachi verfügbar. Sie können sich an uns wenden, um diesen Service in Ihrer Stadt in Anspruch zu nehmen.',
+ add: 'HINZUFÜGEN',
+ quantity: 'Menge',
+ size: 'Größe',
+ addToCart: 'In den Warenkorb legen',
+ orderNow: 'Jetzt bestellen',
+ addToCartMessage: 'In den Warenkorb gelegt',
+ emptyCart: 'Keine Artikel im Warenkorb',
+ itemTotal: 'Artikelsumme',
+ delvieryCharges: 'Liefergebühren',
+ total: 'Gesamt',
+ contactInfo: 'Kontaktinformation',
+ deliveryAddressmessage: 'Lieferadresse festlegen',
+ proceedCheckout: 'Weiter zur Kasse',
+ paymentText: 'Wie möchten Sie bezahlen?',
+ checkout: 'Zur Kasse',
+ creditCart: 'Kreditkarte/Debitkarte',
+ paypal: 'Paypal',
+ cod: 'Barzahlung bei Lieferung',
+ thankYou: 'Vielen Dank!',
+ orderConfirmed: 'Ihre Bestellung ist bestätigt',
+ orderId: 'Ihre Bestellnummer',
+ orderAmount: 'Ihr Bestellbetrag',
+ orderDetail: 'Bestelldetails',
+ paymentMethod: 'Zahlungsmethode',
+ trackOrder: 'Bestellung verfolgen',
+ backToMenu: 'Zurück zum Menü',
+ foodItem: 'Lebensmittel',
+ deliveredTo: 'Zugestellt an',
+ writeAReview: 'Eine Bewertung schreiben',
+ orderReceived: 'Bestellung erhalten',
+ orderPicked: 'Ihre Bestellung ist unterwegs',
+ orderDelivered: 'Zugestellt',
+ completed: 'Abgeschlossen',
+ cancelled: 'Abgebrochen',
+ orderPreparing: 'Ihre Bestellung wird vorbereitet',
+ delivered: 'Zugestellt',
+ rateAndReview: 'Bewerten und Rezension schreiben',
+ reviewPlaceholder: 'Detaillierte Bewertungen erhalten mehr Aufmerksamkeit...',
+ submit: 'Absenden',
+ noWorriesText: 'Keine Sorgen, lassen Sie uns Ihnen helfen!',
+ yourEmail: 'Ihre E-Mail',
+ send: 'Senden',
+ apply: 'Anwenden',
+ checkEmail: 'Überprüfen Sie Ihre E-Mail auf den Link zum Zurücksetzen des Passworts',
+ languageText: 'Bitte wählen Sie Ihre gewünschte Sprache',
+ countryCodePickerTranslation: 'deu',
+ countryCodeSelect: 'Ländercode auswählen',
+ paymentNotSupported: 'Diese Zahlungsmethode unterstützt diese Währung nicht',
+ loginOrCreateAccount: 'Anmelden/Konto erstellen',
+ unReadReviews: 'Keine Bewertungen vorhanden!',
+ unReadOrders: 'Keine Bestellungen vorhanden!',
+ error: 'Fehler',
+ noMoreItems: 'Keine Artikel mehr auf Lager',
+ hungry: 'Hungrig',
+ emptyCartBtn: 'Zurück zu den Lebensmitteln',
+ emptyFavBtn: 'Lass uns einige Favoriten finden',
+ subTotal: 'Zwischensumme',
+ deliveryFee: 'Liefergebühr',
+ haveVoucher: 'Haben Sie einen Gutschein?',
+ remove: 'Entfernen',
+ change: 'Ändern',
+ condition1: 'Durch Abschluss dieser Bestellung stimme ich allen Geschäftsbedingungen zu.',
+ condition2: 'Ich stimme zu und fordere, dass Sie die bestellte Leistung vor Ablauf der Widerrufsfrist ausführen. Mir ist bewusst, dass ich nach vollständiger Erfüllung der Leistung mein Widerrufsrecht verliere.',
+ orderBtn: 'Bestellen',
+ coupanApply: 'Gutscheinrabatt angewendet',
+ coupanFailed: 'Gutschein nicht verfügbar',
+ invalidCoupan: 'Ungültiger Gutschein',
+ validateItems: 'Fügen Sie Artikel zum Warenkorb hinzu, bevor Sie zur Kasse gehen',
+ validateDelivery: 'Legen Sie die Lieferadresse vor dem Auschecken fest',
+ titleFavourite: 'Favoriten',
+ titleEmptyFav: 'Keine Favoriten gespeichert',
+ emptyFavDesc: 'Sie werden hier alle Ihre Favoriten sehen, um die Bestellung noch schneller zu gestalten.',
+ justLook: 'Suchen Sie einfach nach dem',
+ taxFee: 'Steuergebühren',
+ viewCart: 'IHR WARENKORB ANSEHEN',
+ featured: 'Vorgestellt',
+ allRestaurant: 'Alle Restaurants',
+ titleDeliveryDetails: 'Lieferdetails',
+ titlePickUpDetails: 'Abholdetails',
+ tip: 'Trinkgeld',
+ reviewRegardingOrder: 'Bewertung Ihrer Bestellung?',
+ anySuggestion: 'Irgendwelche Vorschläge?',
+ newUser: 'Neuer Benutzer? Konto erstellen',
+ signUporSignIn: 'Registrieren oder Anmelden',
+ or: 'oder',
+ termCondition1: 'Durch die Fortsetzung stimmen Sie unseren',
+ temrConditions: 'Geschäftsbedingungen',
+ privacyPolicy: 'Datenschutzrichtlinie',
+ and: 'und',
+ whatsYourEmail: 'Was ist Ihre E-Mail?',
+ checkAccount: 'Wir überprüfen, ob Sie ein Konto haben',
+ signInWithEmail: 'Mit Ihrer E-Mail anmelden',
+ continueBtn: 'Fortsetzen',
+ emailErr1: 'E-Mail ist erforderlich',
+ emailErr2: 'Ungültige E-Mail!',
+ passErr1: 'Passwort ist erforderlich',
+ passErr2: 'Ungültiges Passwort. Das Passwort muss 1 Großbuchstaben, 1 Kleinbuchstaben und 1 Zahl enthalten.',
+ letsGetStarted: 'Lass uns anfangen!',
+ createAccount: 'Erstellen Sie Ihr Enatega-Konto',
+ firstnameErr1: 'Vorname ist erforderlich!',
+ firstnameErr2: 'Ungültiger Vorname!',
+ lastnameErr1: 'Nachname ist erforderlich!',
+ lastnameErr2: 'Ungültiger Nachname!',
+ mobileErr1: 'Telefonnummer ist erforderlich!',
+ mobileErr2: 'Ungültige Telefonnummer',
+ verifyEmail: 'Ihre E-Mail bestätigen?',
+ otpSentToEmail: 'Bitte geben Sie den OTP ein, den wir an Ihre E-Mail gesendet haben.',
+ verifyPhone: 'Ihre Telefonnummer bestätigen?',
+ otpSentToPhone: 'Bitte geben Sie den OTP ein, den wir an Ihre Telefonnummer gesendet haben.',
+ wrongOtp: 'Falscher OTP. Bitte versuchen Sie es erneut!',
+ resendBtn: 'Erneut senden',
+ enterYourEmail: 'Geben Sie Ihre E-Mail ein, und wir senden Ihnen einen OTP zum Zurücksetzen Ihres Passworts.',
+ backToLogin: 'Zurück zur Anmeldung',
+ setYourPassword: 'Legen Sie Ihr Passwort fest',
+ enterPass: 'Geben Sie bitte Ihr Passwort ein',
+ confirmPassRequired: 'Bestätigen Sie das Passwort!',
+ yourPhoneNumber: 'Wie lautet Ihre Telefonnummer?',
+ secureAccountWithPhone: 'Wir benötigen dies, um Ihr Konto zu sichern',
+ Home: 'Zuhause',
+ Work: 'Arbeit',
+ Other: 'Andere',
+ addLabel: 'Label hinzufügen',
+ profileDetail: 'Persönliche Details',
+ update: 'Aktualisieren',
+ mobile: 'Handy',
+ addPhone: 'Telefon hinzufügen',
+ verified: 'Verifiziert',
+ verify: 'Verifizieren',
+ unverified: 'Nicht verifiziert',
+ changePassword: 'Passwort ändern',
+ currentPassword: 'Aktuelles Passwort',
+ newPassword: 'Neues Passwort',
+ updatePassword: 'Passwort aktualisiert',
+ searchAddress: 'Adresse suchen',
+ addToCart: 'In den Warenkorb legen',
+ loading: 'Laden...',
+ PENDING: 'AUSSTEHEND',
+ ACCEPTED: 'AKZEPTIERT',
+ ASSIGNED: 'ZUGEWIESEN',
+ PICKED: 'ABGEHOLT',
+ DELIVERED: 'GELIEFERT',
+ COMPLETED: 'ABGESCHLOSSEN',
+ pendingOrder: 'Ihre Bestellung steht noch aus.',
+ acceptedOrder: 'Das Restaurant bereitet das Essen zu.',
+ assignedOrder: 'Ein Fahrer wurde zugewiesen.',
+ pickedOrder: 'Der Fahrer ist unterwegs.',
+ deliveredOrder: 'Die Bestellung wurde geliefert.',
+ completedOrder: 'Die Bestellung ist abgeschlossen.',
+ PENDINGStatusMessage: 'Warten auf die Akzeptanz des Restaurants',
+ ACCEPTEDStatusMessage: 'Das Essen wird zubereitet',
+ ASSIGNEDStatusMessage: 'Ein Fahrer wurde zugewiesen',
+ PICKEDStatusMessage: 'Der Fahrer ist auf dem Weg',
+ DELIVEREDStatusMessage: 'Vielen Dank!',
+ CANCELLEDStatusMessage: 'Entschuldigung, Ihre Bestellung wurde storniert.',
+ yourOrderAt: 'Ihre Bestellung bei',
+ delivery: 'Lieferung',
+ Min: 'Minute',
+ min: 'Min',
+ Closed: 'Geschlossen',
+ PenddingText: 'Wir fragen das Restaurant, wie lange es dauern wird, Ihr Essen zu liefern.',
+ PenddingText1: 'Der Fahrer des Restaurants wird in Ihrer Nähe sein.',
+ OrderFrom: 'Ihre Bestellung von:',
+ OrderNo: 'Ihre Bestellnummer:',
+ ActiveOrder: 'Aktive Bestellungen',
+ PastOrder: 'Vergangene Bestellungen',
+ ContinueWithGoogle: 'Weiter mit Google',
+ ContinueWithEmail: 'Weiter mit E-Mail',
+ Cancel: 'Abbrechen',
+ DeleteAccount: 'Konto löschen',
+ DeleteConfirmation: 'Sind Sie sicher, dass Sie Ihr Konto löschen möchten?',
+ chatWithRider: 'Mit dem Fahrer chatten',
+ yourOrderIs: 'Ihre Bestellung ist',
+ noItemsExists: 'Keine Artikel vorhanden',
+ pickUpAddress: 'Abholadresse',
+ selectedLocation: 'Ausgewählter Ort',
+ noReviewYet: 'Es gibt noch keine Bewertungen.',
+ Openingtimes: 'Öffnungszeiten',
+ ClosedAllDay: 'Den ganzen Tag geschlossen',
+ About: 'Über',
+ Reviews: 'Bewertungen',
+ emptyHere: 'Hier ist es leer.',
+ emptyHereDecs1: 'Sie haben noch keine Adresse gespeichert.',
+ emptyHereDecs2: 'Klicken Sie auf Neue Adresse hinzufügen, um zu beginnen.',
+ changeAddress: 'Adresse ändern',
+ pickUp: 'Abholung',
+ Custom: 'Benutzerdefiniert',
+ save: 'Speichern',
+ SelectPickupDT: 'Abholdatum und -uhrzeit auswählen',
+ SelectDeliveryDT: 'Lieferdatum und -uhrzeit auswählen',
+ viewLess: 'Weniger anzeigen',
+ viewAll: 'Alle anzeigen',
+ currentLocation: 'Aktueller Standort',
+ useCurrentLocation: 'aktuellen Standort verwenden',
+ locationPermissionMessage: 'Tippen Sie auf diese Nachricht, um die Einstellungen zu öffnen und der App die Verwendung des Standorts zu erlauben.',
+ enategaUseYourLocationMessage: 'Enatega verwendet Ihren Standort, um die Restaurants in Ihrer Nähe anzuzeigen!',
+ selectAnotherLocation: 'Wählen Sie einen anderen Ort aus',
+ setLocation: 'Standort festlegen',
+ cartIsEmpty: 'Der Warenkorb ist leer',
+ favouritelistUpdated: 'Favoritenliste aktualisiert',
+ minAmount: 'Der Mindestbetrag von ',
+ forYourOrder: ' für Ihre Bestellung wurde nicht erreicht.',
+ setPaymentMethod: 'Setzen Sie die Zahlungsmethode vor dem Auschecken',
+ numberVerificationAlert: 'Die Telefonnummer ist nicht verifiziert. Bitte überprüfen Sie die Telefonnummer.',
+ numberVerified: 'Die Telefonnummer wurde erfolgreich verifiziert!',
+ numberAddedAlert: 'Die Telefonnummer wurde erfolgreich hinzugefügt!',
+ itemNotAvailable: 'Ein oder mehrere Artikel sind nicht verfügbar',
+ accountDeactivated: 'Konto deaktiviert',
+ addressUpdated: 'Adresse aktualisiert',
+ errorOccured: 'Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut ',
+ otpForResetPassword: 'OTP für das Zurücksetzen des Passworts wurde an Ihre E-Mail gesendet.',
+ passwordResetSuccessfully: 'Passwort erfolgreich zurückgesetzt!',
+ passwordMustMatch: 'Das Passwort muss mit dem Bestätigungspasswort übereinstimmen',
+ emailAssociatedWith: 'Ihre E-Mail ist mit ',
+ continueWith: ' verbunden. Bitte fahren Sie fort mit ',
+ mailCheckingError: 'Fehler beim Überprüfen der E-Mail. Versuchen Sie es später erneut!',
+ errorInLoginError: 'Fehler beim Anmelden',
+ errorWhileLogging: 'Fehler beim Einloggen. Bitte versuchen Sie es später erneut',
+ accountCreated: 'Ihr Konto wurde erstellt.',
+ invalidPassword: 'Ungültiges Passwort',
+ userInfoUpdated: 'Benutzerinformationen aktualisiert',
+ nameError: 'Name ist erforderlich',
+ notificationStatusUpdated: 'Benachrichtigungsstatus aktualisiert',
+ notificationNotWork: 'Benachrichtigungen funktionieren nicht auf dem Simulator',
+ errorInProfile: 'Fehler im Profil',
+ invalidAmount: 'Ungültiger Betrag',
+ amountMustBe: 'Betrag muss größer als 0 sein',
+ otherAmount: 'Anderer Betrag',
+ addOtherAmount: 'Anderen Betrag hinzufügen',
+ otpResentToEmail: 'OTP erneut an Ihre E-Mail gesendet.',
+ search: 'Suche',
+ searchRestaurant: 'Nach Restaurants suchen',
+ message: 'Nachricht',
+ aptFloor: 'Apt | Etage',
+ confirmPassword: 'Passwort bestätigen',
+ specialInstructions: 'Besondere Anweisungen',
+ anySpecificPreferences: 'Irgendwelche speziellen Vorlieben?',
+ optional: 'Optional',
+ noMayo: 'Z.B. Kein Mayo',
+ mobileNumber: 'Handynummer',
+ firstNamePH: 'Vorname',
+ lastNamePH: 'Nachname',
+ titleCustomize: 'Anpassen',
+ titleMyVouchers: 'Meine Gutscheine',
+ titleProductPage: 'Produktseite',
+ titleDocs: 'Dokumente',
+ titleBlog: 'Blog',
+ titleAboutUs: 'Über Uns',
+ paypalCheckout: 'Paypal Kasse',
+ stripeCheckout: 'Stripe Kasse',
+ titleTipping: 'Trinkgeld',
+ statusOrderPalced: 'Bestellung aufgegeben',
+ statusAccepted: 'Akzeptiert',
+ statusAssigned: 'Zugewiesen',
+ statusPicked: 'Abgeholt',
+ statusDelivered: 'Geliefert',
+ selectLocation: 'Ort auswählen',
+ languageSetting: 'Spracheinstellung',
+ receiveSpecialOffers: 'Spezielle Angebote erhalten',
+ getUpdates: 'Aktualisierungen zum Bestellstatus erhalten',
+ turnOnDarkTheme: 'Dunkles Thema aktivieren',
+ selectLanguage: 'Sprache auswählen',
+ Select: 'Auswählen',
+ DELETEACCOUNT: 'ACCOUNT LÖSCHEN',
+ ETA: 'ETA',
+ contactYourRider: 'Kontaktiere deinen Fahrer',
+ selectCountry: 'Land auswählen',
+ MON: 'MO',
+ TUE: 'DI',
+ WED: 'MI',
+ THU: 'DO',
+ FRI: 'FR',
+ SAT: 'SA',
+ SUN: 'SO',
+ DeliveryAddressIsRequired: 'Lieferadresse ist erforderlich',
+ SelectVariation: 'Variante auswählen',
+ SelectOne: 'Eins auswählen',
+ Required: 'Erforderlich',
+ howWasMeal: 'Wie war dein Essen?',
+ howWasMealP: 'War es gut oder schlecht? Lass uns darüber sprechen',
+ RateYourOrder: 'Bewerte deine Bestellung',
+ yourExperience: 'Erzähle von deiner Erfahrung',
+ selectItems: 'Wähle Artikel aus',
+ dontHaveAnyOrderYet: 'Sie haben noch keine vergangenen Bestellungen. Probieren Sie eines unserer tollen Restaurants aus und geben Sie Ihre erste Bestellung auf!',
+ BrowseRESTAURANTS: 'Durchsuchen Sie RESTAURANTS IN IHRER REGION',
+ RateOrder: 'Bestellung bewerten',
+ voucherCode: "Geben Sie Ihren Gutscheincode ein",
+ networkError: "Etwas ist schiefgelaufen. Überprüfen Sie Ihr Netzwerk und versuchen Sie es erneut.",
+ noRestaurants:"Keine Restaurants",
+ clearCartText: 'Beim Verlassen dieser Restaurantseite werden die Artikel, die Sie zum Warenkorb hinzugefügt haben, gelöscht',
+okText: 'OK'
+}
diff --git a/enatega-multivendor-app/translations/en.js b/enatega-multivendor-app/translations/en.js
new file mode 100644
index 0000000..a496030
--- /dev/null
+++ b/enatega-multivendor-app/translations/en.js
@@ -0,0 +1,371 @@
+export const en = {
+ title0: 'Selected Language',
+ subtitle0: 'English',
+ description0:
+ 'Select any language of your choice to change the content of the app to your required language.',
+ title1: 'Tasty',
+ subtitle1: 'BreakFast',
+ description1:
+ 'Breakfast is everything. The beginning, the first thing. It is the mouthful that is the commitment to a new day, a continuing life.',
+ title2: 'Refreshing',
+ subtitle2: 'Drinks',
+ description2:
+ 'True silence is the rest of the mind, and is to the spirit what sleep is to the body, nourishment and refreshment.',
+ title3: 'Delicous',
+ subtitle3: 'Icecream',
+ description3:
+ 'Age does not diminish the extreme disappointment of having a scoop of ice cream fall from the cone',
+ getStarted: 'Get Started!',
+ welcome:
+ "Welcome to Enatega, sometimes all you need is love. But a little food now and then doesn't hurt.",
+ loginBtn: 'Login',
+ registerBtn: 'Register',
+ name: 'Name',
+ phone: 'Phone',
+ email: 'Email',
+ emailphone: 'Email or Phone',
+ password: 'Password',
+ deliveryAddress: 'Delivery Address',
+ fullDeliveryAddress: 'Your full delivery address',
+ deliveryDetails: 'Required details -e.g. floor/ building',
+ myAddresses: 'My Addresses',
+ addAddress: 'Add New Address',
+ editAddress: 'Edit Address',
+ registerText: 'Or Register With',
+ forgotPassword: 'Forgot Password?',
+ loginText: 'Or Login With',
+ deliveryLocation:
+ 'Turn on location so we could send you endless taste of delicious food.',
+ locationBtn: 'Turn on Location',
+ locationPermissionDenied: 'Permission to access location was denied',
+ cameraRollPermissionDenied: 'Permission to access Camera Roll was denied',
+ locationOff: 'Turn on location and try again',
+ titleLanguage: 'Change Language',
+ titleMenu: 'Menu',
+ titleOrders: 'My Orders',
+ titleReorder: 'Previous Order',
+ titleNotifications: 'Notifications',
+ titleReviews: 'Reviews',
+ titleProfile: 'Profile',
+ titleSettings: 'Settings',
+ titleHelp: 'Help',
+ titleChat: 'Chat',
+ titleLogout: 'Logout',
+ titleCart: 'My Cart',
+ titlePayment: 'Payment',
+ totalOrderAmount: 'Total Order Amount',
+ reOrder: 'Reorder',
+ previous: 'Previous Order',
+ unReadNotifications: 'No unread notifications',
+ upload: 'Upload',
+ saveBtn: 'Save',
+ saveContBtn: 'SAVE AND CONTINUE',
+ emailUs: 'Email us at',
+ question1: 'Where do we find the food?',
+ question2: 'How do we contact?',
+ question3: 'How can I pay the delivery person?',
+ question4: 'Is the service available in my city?',
+ answer1:
+ 'You can find the food at your nearest store without paying anything to customer service.Our charges are extremely low as compared to others.',
+ answer2: 'You can contact us through our email, phone number or our website.',
+ answer3:
+ 'You can pay the delivery person in person or pay online as well through credit or debit card.',
+ answer4:
+ 'Currently this service is available in cities Islamabad and Karachi you can contact us to avail this service in your city.',
+ add: 'ADD',
+ quantity: 'Quantity',
+ size: 'Size',
+ addToCart: 'Add to Cart',
+ orderNow: 'Order Now',
+ addToCartMessage: 'Added to cart',
+ emptyCart: 'No items in cart',
+ itemTotal: 'Item Total',
+ delvieryCharges: 'Delivery Charges',
+ total: 'Total',
+ contactInfo: 'Contact Info',
+ deliveryAddressmessage: 'Set delivery address',
+ proceedCheckout: 'Proceed to Checkout',
+ paymentText: 'How do you wish to pay?',
+ checkout: 'Checkout',
+ creditCart: 'Credit Card/Debit Card',
+ paypal: 'Paypal',
+ cod: 'Cash on delivery',
+ thankYou: 'Thank You!',
+ orderConfirmed: 'Your Order is confirmed',
+ orderId: 'Your Order Id',
+ orderAmount: 'Your Order Amount',
+ orderDetail: 'Order Detail',
+ paymentMethod: 'Payment Method',
+ trackOrder: 'Track Order',
+ backToMenu: 'Back To Menu',
+ foodItem: 'Food item',
+ deliveredTo: 'Delivered to',
+ writeAReview: 'Write a Review',
+ orderReceived: 'Order Received',
+ orderPicked: 'Your order is on its way',
+ orderDelivered: 'Delivered',
+ completed: 'Completed',
+ cancelled: 'Cancelled',
+ orderPreparing: 'Your order is being prepared',
+ delivered: 'Delivered',
+ rateAndReview: 'Rate and Review',
+ reviewPlaceholder: 'More detailed reviews get more visibility...',
+ submit: 'Submit',
+ noWorriesText: 'No worries, let us help you out!',
+ yourEmail: 'Your Email',
+ send: 'Send',
+ apply: 'Apply',
+ checkEmail: 'Check your email for reset password link',
+ languageText: 'Please select your required language',
+ countryCodePickerTranslation: 'eng',
+ countryCodeSelect: 'Select Country Code',
+ paymentNotSupported: 'This payment method does not support this Currency',
+ loginOrCreateAccount: 'Login/Create Account',
+ unReadReviews: 'No Reviews Yet!',
+ unReadOrders: 'No Orders Yet!',
+ error: 'Error',
+ noMoreItems: 'No more items in stock',
+ hungry: 'Hungry',
+ emptyCartBtn: 'Back to Food',
+ emptyFavBtn: "Let's find some favourites",
+ subTotal: 'SubTotal',
+ deliveryFee: 'Delivery Fee',
+ haveVoucher: 'Do you have a voucher ?',
+ remove: 'Remove',
+ change: 'Change',
+ condition1: 'By completing this order, I agree to all Terms & Conditions.',
+ condition2:
+ 'I agree and I demand that you execute the ordered service before the end of the revocation period. I am aware that after complete fulfillment of the service I lose my right of rescission.',
+ orderBtn: 'Place order',
+ coupanApply: 'Coupon discount applied',
+ coupanFailed: 'Coupon Unavailable',
+ invalidCoupan: 'Invalid Coupon',
+ validateItems: 'Add items to cart before checkout',
+ validateDelivery: 'Set delivery address before checkout',
+ titleFavourite: 'Favourites',
+ titleEmptyFav: 'No Favourites Saved',
+ emptyFavDesc:
+ "You'll see all your favourites here, to make ordering even faster.",
+ justLook: 'Just look for the',
+ taxFee: 'Tax Charges',
+ viewCart: 'VIEW YOUR CART',
+ featured: 'Featured',
+ allRestaurant: 'All Restaurants',
+ titleDeliveryDetails: 'Delivery Details',
+ titlePickUpDetails: 'Pickup Details',
+ tip: 'Tip',
+ reviewRegardingOrder: 'Review regarding your order?',
+ anySuggestion: 'Any suggestion?',
+ newUser: 'New User? Create an account',
+ signUporSignIn: 'Sign Up or Sign In',
+ or: 'or',
+ termCondition1: 'By continue, you agree to our',
+ temrConditions: 'Term & Conditions',
+ privacyPolicy: 'Privacy Policy',
+ and: 'and',
+ whatsYourEmail: "What's your Email?",
+ checkAccount: "We'll check if you've an account",
+ signInWithEmail: 'Sign in with your email',
+ continueBtn: 'Continue',
+ emailErr1: 'Email is required',
+ emailErr2: 'Invalid Email!',
+ passErr1: 'Password is required',
+ passErr2:
+ 'Invalid Password. Password must contain 1 capital letter, 1 small letter, 1 number.',
+ letsGetStarted: "Let's get started!",
+ createAccount: 'Create your Enatega Account',
+ firstnameErr1: 'Firstname is required!',
+ firstnameErr2: 'Invalid First Name!',
+ lastnameErr1: 'Lastname is required!',
+ lastnameErr2: 'Invalid Last Name!',
+ mobileErr1: 'Phone number is required!',
+ mobileErr2: 'Invalid Phone number',
+ verifyEmail: 'Verify your email?',
+ otpSentToEmail: 'Please enter OTP we sent to your email.',
+ verifyPhone: 'Verify your phone number?',
+ otpSentToPhone: 'Please enter OTP we sent to your phone number.',
+ wrongOtp: 'Wrong otp. Please try again!',
+ resendBtn: 'Resend',
+ enterYourEmail:
+ "Enter your email and we'll send you an OTP to reset your password.",
+ backToLogin: 'Back to login',
+ setYourPassword: 'Set your Password',
+ enterPass: 'Kindly enter your password',
+ confirmPassRequired: 'Confirm password is required!',
+ yourPhoneNumber: "What's your Phone Number?",
+ secureAccountWithPhone: 'We need this to secure your account',
+ Home: 'Home',
+ Work: 'Work',
+ Other: 'Other',
+ addLabel: 'Add Label',
+ profileDetail: 'Personal details',
+ update: 'Update',
+ mobile: 'Mobile',
+ addPhone: 'Add Phone',
+ verified: 'Verified',
+ verify: 'verify',
+ unverified: 'Unverified',
+ changePassword: 'Change password',
+ currentPassword: 'Current password',
+ newPassword: 'New Password',
+ updatePassword: 'Password Updated',
+ searchAddress: 'Search Address',
+ addToCart: 'Add To Cart',
+ loading: 'Loading...',
+ PENDING: 'PENDING',
+ ACCEPTED: 'ACCEPTED',
+ ASSIGNED: 'ASSIGNED',
+ PICKED: 'PICKED',
+ DELIVERED: 'DELIVERED',
+ COMPLETED: 'COMPLETED',
+ pendingOrder: 'Your order is still pending.',
+ acceptedOrder: 'Restaurant is preparing Food.',
+ assignedOrder: 'Assigned a rider.',
+ pickedOrder: 'Rider is on the way.',
+ deliveredOrder: 'Order is delivered.',
+ completedOrder: 'Order is completed.',
+ PENDINGStatusMessage: 'Waiting for restaurant to accept',
+ ACCEPTEDStatusMessage: 'Food is being prepared',
+ ASSIGNEDStatusMessage: 'Assigned a rider',
+ PICKEDStatusMessage: 'Rider on his way',
+ DELIVEREDStatusMessage: 'Thank you!',
+ CANCELLEDStatusMessage: "We're sorry, Your order was cancelled.",
+ yourOrderAt: 'Your order at',
+ delivery: 'Delivery',
+ Min: 'Minute',
+ min: 'Min',
+ Closed: 'Closed',
+ PenddingText:
+ "We're asking the restaurant how long it will take to deliver your food.",
+ PenddingText1: 'The restaurant rider will be at your place around.',
+ OrderFrom: 'Your order from:',
+ OrderNo: 'Your order no:',
+ ActiveOrder: 'Active Orders',
+ PastOrder: 'Past Orders',
+ ContinueWithGoogle: 'Continue with Google',
+ ContinueWithEmail: 'Continue with Email',
+ Cancel: 'Cancel',
+ DeleteAccount: 'Delete Account',
+ DeleteConfirmation: 'Are you Sure you want to delete Account?',
+ chatWithRider: 'Chat with rider',
+ yourOrderIs: 'Your order is',
+ noItemsExists: 'No items exists',
+ pickUpAddress: 'PickUp Address',
+ selectedLocation: 'Selected Location',
+ noReviewYet: 'There are no reviews yett.',
+ Openingtimes: 'Opening times',
+ ClosedAllDay: 'Closed all day',
+ About: 'About',
+ Reviews: 'Reviews',
+ emptyHere: "It's empty here.",
+ emptyHereDecs1: "You haven't saved any address yet.",
+ emptyHereDecs2: "Click Add New Address to get started.",
+ changeAddress: 'Change Address',
+ pickUp: 'Pick Up',
+ Custom: 'Custom',
+ save: 'Save',
+ SelectPickupDT: 'Select Pickup date and time',
+ SelectDeliveryDT: 'Select Delivery date and time',
+ viewLess: 'View Less',
+ viewAll: 'View All',
+ currentLocation: 'Current Location',
+ useCurrentLocation: 'use current location',
+ locationPermissionMessage: 'Tap on this message to open Settings then allow app to use location from permissions.',
+ enategaUseYourLocationMessage: 'Enatega uses your location to show the restaurants near you!',
+ selectAnotherLocation: 'Select another location',
+ setLocation: 'Set Location',
+ cartIsEmpty: 'Cart is empty',
+ favouritelistUpdated: 'Favourite list updated',
+ minAmount: 'The minimum amount of ',
+ forYourOrder: ' for your order has not been reached.',
+ setPaymentMethod: 'Set payment method before checkout',
+ numberVerificationAlert: 'Phone number is not verified. Kindly verify phone number.',
+ numberVerified: 'Phone number has been verified successfully!.',
+ numberAddedAlert: 'Phone number has been added successfully!.',
+ itemNotAvailable: 'One or more item is not available',
+ accountDeactivated: 'Account Deactivated',
+ addressUpdated: 'Address Updated',
+ errorOccured: 'An error occured. Please try again ',
+ otpForResetPassword: 'OTP for reset password has been sent to your email.',
+ passwordResetSuccessfully: 'Password Reset successfully!',
+ passwordMustMatch: 'Password must match with confirm password',
+ emailAssociatedWith: 'Your email is associated with ',
+ continueWith: '. Kindly continue with ',
+ mailCheckingError: 'Error while checking email. Try again later!',
+ errorInLoginError: 'Error in login Error',
+ errorWhileLogging: 'Error while logging in. Please try again later',
+ accountCreated: 'Your account has been created.',
+ invalidPassword: 'Invalid password',
+ userInfoUpdated: "User's Info Updated",
+ nameError: 'Name is required',
+ notificationStatusUpdated: 'Notification Status Updated',
+ notificationNotWork: 'Notification do not work on simulator',
+ errorInProfile: 'Error in profile',
+ invalidAmount: 'Invalid Amount',
+ amountMustBe: 'Amount must be greater than 0',
+ otherAmount: 'Other amount',
+ addOtherAmount: 'Add Other amount',
+ otpResentToEmail: 'OTP resent to your email.',
+ search: 'Search',
+ searchRestaurant: 'Search for restaurants',
+ message: 'Message',
+ aptFloor: 'Apt | Floor',
+ confirmPassword: 'Confirm Password',
+ specialInstructions: 'Special instructions',
+ anySpecificPreferences: 'Any specific preferences?',
+ optional: 'Optional',
+ noMayo: 'E .g No mayo',
+ mobileNumber: 'Mobile Number',
+ firstNamePH: 'First name',
+ lastNamePH: 'Last name',
+ titleCustomize: 'Customize',
+ titleMyVouchers: 'My Vouchers',
+ titleProductPage: 'Product Page',
+ titleDocs: 'Docs',
+ titleBlog: 'Blog',
+ titleAboutUs: 'About Us',
+ paypalCheckout: 'Paypal Checkout',
+ stripeCheckout: 'Stripe Checkout',
+ titleTipping: 'Tipping',
+ statusOrderPalced: 'Order palced',
+ statusAccepted: 'Accepted',
+ statusAssigned: 'Assigned',
+ statusPicked: 'Picked',
+ statusDelivered: 'Delivered',
+ ///
+ selectLocation: 'Select Location',
+ languageSetting: 'Language Setting',
+ receiveSpecialOffers: 'Receive Special Offers',
+ getUpdates: 'Get updates on your order status',
+ turnOnDarkTheme: 'Turn on Dark Theme',
+ selectLanguage: 'Select Language',
+ Select: 'Select',
+ DELETEACCOUNT: 'DELETE ACCOUNT',
+ ETA: 'ETA',
+ contactYourRider: 'Contact your Rider',
+ selectCountry: 'Select Country',
+ MON: 'MON',
+ TUE: 'TUE',
+ WED: 'WED',
+ THU: 'THU',
+ FRI: 'FRI',
+ SAT: 'SAT',
+ SUN: 'SUN',
+ DeliveryAddressIsRequired: 'Delivery address is required',
+ SelectVariation: 'Select Variation',
+ SelectOne: 'Select one',
+ Required: 'Required',
+ howWasMeal: 'How was your meal?',
+ howWasMealP: 'Was it nice or bad,Lets talk about it',
+ RateYourOrder: 'Rate Your Order',
+ yourExperience: 'Tell about your Experience',
+ selectItems: 'Select Items',
+ dontHaveAnyOrderYet: "You don't have any past order yet. Try one of our awesome restaurants and place your first order!",
+ BrowseRESTAURANTS: 'Browse RESTAURANTS IN YOUR AREA',
+ RateOrder: 'Rate Order',
+ voucherCode: 'Enter your voucher code',
+ networkError: 'Something went wrong. Check your network and try again.',
+ noRestaurants: 'No Restaurants',
+ clearCartText: 'By leaving this restaurant page, the items you`ve added to cart will be cleared',
+ okText: 'OK'
+}
diff --git a/enatega-multivendor-app/translations/fr.js b/enatega-multivendor-app/translations/fr.js
new file mode 100644
index 0000000..4689818
--- /dev/null
+++ b/enatega-multivendor-app/translations/fr.js
@@ -0,0 +1,369 @@
+export const fr = {
+ title0: "Langue sélectionnée",
+ subtitle0: "Anglais",
+ description0:
+ "Sélectionnez la langue de votre choix pour changer le contenu de l'application dans la langue de votre choix.",
+ title1: "Délicieux",
+ subtitle1: "Petit-déjeuner",
+ description1:
+ "Le petit-déjeuner, c'est tout. Le début, la première chose. C'est la bouchée qui est l'engagement envers un nouveau jour, une vie continue.",
+ title2: "Rafraîchissant",
+ subtitle2: "Boissons",
+ description2:
+ "Le vrai silence est le repos de l'esprit et est à l'esprit ce que le sommeil est au corps, nourriture et rafraîchissement.",
+ title3: "Délicieux",
+ subtitle3: "Glace",
+ description3:
+ "L'âge ne diminue pas la grande déception de voir une boule de glace tomber de la cornet.",
+ getStarted: "Commencer !",
+ welcome:
+ "Bienvenue chez Enatega, parfois tout ce dont vous avez besoin, c'est de l'amour. Mais un peu de nourriture de temps en temps ne fait pas de mal.",
+ loginBtn: "Se connecter",
+ registerBtn: "S'inscrire",
+ name: "Nom",
+ phone: "Téléphone",
+ email: "E-mail",
+ emailphone: "E-mail ou téléphone",
+ password: "Mot de passe",
+ deliveryAddress: "Adresse de livraison",
+ fullDeliveryAddress: "Votre adresse de livraison complète",
+ deliveryDetails: "Détails requis - par exemple, étage/bâtiment",
+ myAddresses: "Mes adresses",
+ addAddress: "Ajouter une nouvelle adresse",
+ editAddress: "Modifier l'adresse",
+ registerText: "Ou s'inscrire avec",
+ forgotPassword: "Mot de passe oublié ?",
+ loginText: "Ou se connecter avec",
+ deliveryLocation:
+ "Activez la localisation pour que nous puissions vous envoyer un goût infini de délicieuse nourriture.",
+ locationBtn: "Activer la localisation",
+ locationPermissionDenied: "Autorisation d'accès à la localisation refusée",
+ cameraRollPermissionDenied: "Autorisation d'accès à l'album photo refusée",
+ locationOff: "Activez la localisation et réessayez.",
+ titleLanguage: "Changer de langue",
+ titleMenu: "Menu",
+ titleOrders: "Mes commandes",
+ titleReorder: "Commande précédente",
+ titleNotifications: "Notifications",
+ titleReviews: "Avis",
+ titleProfile: "Profil",
+ titleSettings: "Paramètres",
+ titleHelp: "Aide",
+ titleChat: "Chat",
+ titleLogout: "Déconnexion",
+ titleCart: "Mon panier",
+ titlePayment: "Paiement",
+ totalOrderAmount: "Montant total de la commande",
+ reOrder: "Recommander",
+ previous: "Commande précédente",
+ unReadNotifications: "Aucune notification non lue",
+ upload: "Télécharger",
+ saveBtn: "Enregistrer",
+ saveContBtn: "ENREGISTRER ET CONTINUER",
+ emailUs: "Envoyez-nous un e-mail à",
+ question1: "Où trouvons-nous de la nourriture ?",
+ question2: "Comment pouvons-nous contacter ?",
+ question3: "Comment puis-je payer le livreur ?",
+ question4: "Le service est-il disponible dans ma ville ?",
+ answer1:
+ "Vous pouvez trouver de la nourriture dans votre magasin le plus proche sans rien payer au service client. Nos frais sont extrêmement bas par rapport aux autres.",
+ answer2: "Vous pouvez nous contacter par e-mail, numéro de téléphone ou sur notre site Web.",
+ answer3:
+ "Vous pouvez payer le livreur en personne ou en ligne avec une carte de crédit ou de débit.",
+ answer4:
+ "Actuellement, ce service est disponible dans les villes d'Islamabad et de Karachi. Vous pouvez nous contacter pour profiter de ce service dans votre ville.",
+ add: "AJOUTER",
+ quantity: "Quantité",
+ size: "Taille",
+ addToCart: "Ajouter au panier",
+ orderNow: "Commander maintenant",
+ addToCartMessage: "Ajouté au panier",
+ emptyCart: "Aucun article dans le panier",
+ itemTotal: "Total des articles",
+ delvieryCharges: "Frais de livraison",
+ total: "Total",
+ contactInfo: "Coordonnées",
+ deliveryAddressmessage: "Définir l'adresse de livraison",
+ proceedCheckout: "Passer à la caisse",
+ paymentText: "Comment souhaitez-vous payer ?",
+ checkout: "Caisse",
+ creditCart: "Carte de crédit / Carte de débit",
+ paypal: "Paypal",
+ cod: "Paiement à la livraison",
+ thankYou: "Merci !",
+ orderConfirmed: "Votre commande est confirmée",
+ orderId: "Votre numéro de commande",
+ orderAmount: "Montant de votre commande",
+ orderDetail: "Détails de la commande",
+ paymentMethod: "Moyen de paiement",
+ trackOrder: "Suivre la commande",
+ backToMenu: "Retour au menu",
+ foodItem: "Article alimentaire",
+ deliveredTo: "Livré à",
+ writeAReview: "Rédiger un avis",
+ orderReceived: "Commande reçue",
+ orderPicked: "Votre commande est en route",
+ orderDelivered: "Livré",
+ completed: "Terminé",
+ cancelled: "Annulé",
+ orderPreparing: "Votre commande est en préparation",
+ delivered: "Livré",
+ rateAndReview: "Noter et évaluer",
+ reviewPlaceholder: "Les avis détaillés ont plus de visibilité...",
+ submit: "Envoyer",
+ noWorriesText: "Pas de soucis, laissez-nous vous aider !",
+ yourEmail: "Votre e-mail",
+ send: "Envoyer",
+ apply: "Appliquer",
+ checkEmail: "Vérifiez votre e-mail pour le lien de réinitialisation du mot de passe",
+ languageText: "Veuillez sélectionner votre langue requise",
+ countryCodePickerTranslation: "fra",
+ countryCodeSelect: "Sélectionnez le code pays",
+ paymentNotSupported: "Cette méthode de paiement ne prend pas en charge cette devise",
+ loginOrCreateAccount: "Connexion/Créer un compte",
+ unReadReviews: "Aucun avis pour le moment !",
+ unReadOrders: "Aucune commande pour le moment !",
+ error: "Erreur",
+ noMoreItems: "Plus d'articles en stock",
+ hungry: "Affamé",
+ emptyCartBtn: "Retour à la nourriture",
+ emptyFavBtn: "Trouvons des favoris",
+ subTotal: "Sous-total",
+ deliveryFee: "Frais de livraison",
+ haveVoucher: "Avez-vous un bon ?",
+ remove: "Supprimer",
+ change: "Changer",
+ condition1: "En passant cette commande, j'accepte toutes les conditions générales.",
+ condition2:
+ "J'accepte et j'exige que vous exécutiez le service commandé avant la fin de la période de révocation. Je suis conscient que, après l'exécution complète du service, je perds mon droit de rétractation.",
+ orderBtn: "Passer la commande",
+ coupanApply: "Réduction du coupon appliquée",
+ coupanFailed: "Coupon non disponible",
+ invalidCoupan: "Coupon non valide",
+ validateItems: "Ajoutez des articles au panier avant de passer à la caisse",
+ validateDelivery: "Définissez l'adresse de livraison avant de passer à la caisse",
+ titleFavourite: "Favoris",
+ titleEmptyFav: "Aucun favori enregistré",
+ emptyFavDesc:
+ "Vous verrez tous vos favoris ici pour passer commande plus rapidement.",
+ justLook: "Cherchez simplement",
+ taxFee: "Frais de taxe",
+ viewCart: "VOIR VOTRE PANIER",
+ featured: "En vedette",
+ allRestaurant: "Tous les restaurants",
+ titleDeliveryDetails: "Détails de la livraison",
+ titlePickUpDetails: "Détails du retrait",
+ tip: "Pourboire",
+ reviewRegardingOrder: "Avis concernant votre commande ?",
+ anySuggestion: "Des suggestions ?",
+ newUser: "Nouvel utilisateur ? Créez un compte",
+ signUporSignIn: "Inscrivez-vous ou connectez-vous",
+ or: "ou",
+ termCondition1: "En continuant, vous acceptez nos",
+ temrConditions: "Conditions générales",
+ privacyPolicy: "Politique de confidentialité",
+ and: "et",
+ whatsYourEmail: "Quel est votre e-mail ?",
+ checkAccount: "Nous vérifierons si vous avez un compte",
+ signInWithEmail: "Connectez-vous avec votre e-mail",
+ continueBtn: "Continuer",
+ emailErr1: "L'e-mail est requis",
+ emailErr2: "E-mail non valide !",
+ passErr1: "Le mot de passe est requis",
+ passErr2:
+ "Mot de passe non valide. Le mot de passe doit contenir 1 lettre majuscule, 1 lettre minuscule, 1 chiffre.",
+ letsGetStarted: "Commençons !",
+ createAccount: "Créez votre compte Enatega",
+ firstnameErr1: "Le prénom est requis !",
+ firstnameErr2: "Prénom non valide !",
+ lastnameErr1: "Le nom de famille est requis !",
+ lastnameErr2: "Nom de famille non valide !",
+ mobileErr1: "Le numéro de téléphone est requis !",
+ mobileErr2: "Numéro de téléphone non valide",
+ verifyEmail: "Vérifiez votre e-mail ?",
+ otpSentToEmail: "Veuillez entrer l'OTP que nous avons envoyé à votre e-mail.",
+ verifyPhone: "Vérifiez votre numéro de téléphone ?",
+ otpSentToPhone: "Veuillez entrer l'OTP que nous avons envoyé à votre numéro de téléphone.",
+ wrongOtp: "Mauvais OTP. Veuillez réessayer !",
+ resendBtn: "Renvoyer",
+ enterYourEmail:
+ "Saisissez votre e-mail et nous vous enverrons un OTP pour réinitialiser votre mot de passe.",
+ backToLogin: "Retour à la connexion",
+ setYourPassword: "Définissez votre mot de passe",
+ enterPass: "Veuillez entrer votre mot de passe",
+ confirmPassRequired: "Confirmation du mot de passe requise !",
+ yourPhoneNumber: "Quel est votre numéro de téléphone ?",
+ secureAccountWithPhone: "Nous avons besoin de ceci pour sécuriser votre compte",
+ Home: "Accueil",
+ Work: "Travail",
+ Other: "Autre",
+ addLabel: "Ajouter une étiquette",
+ profileDetail: "Détails personnels",
+ update: "Mettre à jour",
+ mobile: "Mobile",
+ addPhone: "Ajouter un téléphone",
+ verified: "Vérifié",
+ verify: "Vérifier",
+ unverified: "Non vérifié",
+ changePassword: "Changer le mot de passe",
+ currentPassword: "Mot de passe actuel",
+ newPassword: "Nouveau mot de passe",
+ updatePassword: "Mot de passe mis à jour",
+ searchAddress: "Rechercher une adresse",
+ addToCart: "Ajouter au panier",
+ loading: "Chargement...",
+ PENDING: "EN ATTENTE",
+ ACCEPTED: "ACCEPTÉ",
+ ASSIGNED: "ATTRIBUÉ",
+ PICKED: "CHOISI",
+ DELIVERED: "LIVRÉ",
+ COMPLETED: "TERMINÉ",
+ pendingOrder: "Votre commande est toujours en attente.",
+ acceptedOrder: "Le restaurant prépare la nourriture.",
+ assignedOrder: "Un livreur a été attribué.",
+ pickedOrder: "Le livreur est en chemin.",
+ deliveredOrder: "La commande est livrée.",
+ completedOrder: "La commande est terminée.",
+ PENDINGStatusMessage: "En attente de l'acceptation du restaurant",
+ ACCEPTEDStatusMessage: "La nourriture est en préparation",
+ ASSIGNEDStatusMessage: "Un livreur a été attribué",
+ PICKEDStatusMessage: "Le livreur est en chemin",
+ DELIVEREDStatusMessage: "Merci !",
+ CANCELLEDStatusMessage: "Nous sommes désolés, votre commande a été annulée.",
+ yourOrderAt: "Votre commande chez",
+ delivery: "Livraison",
+ Min: "Minute",
+ min: "Min",
+ Closed: "Fermé",
+ PenddingText: "Nous demandons au restaurant combien de temps il faudra pour livrer votre nourriture.",
+ PenddingText1: "Le livreur du restaurant sera chez vous vers.",
+ OrderFrom: "Votre commande de :",
+ OrderNo: "Votre numéro de commande :",
+ ActiveOrder: "Commandes actives",
+ PastOrder: "Commandes passées",
+ ContinueWithGoogle: "Continuer avec Google",
+ ContinueWithEmail: "Continuer avec E-mail",
+ Cancel: "Annuler",
+ DeleteAccount: "Supprimer le compte",
+ DeleteConfirmation: "Êtes-vous sûr de vouloir supprimer le compte ?",
+ chatWithRider: "Discuter avec le livreur",
+ yourOrderIs: "Votre commande est",
+ noItemsExists: "Aucun article existe",
+ pickUpAddress: "Adresse de ramassage",
+ selectedLocation: "Emplacement sélectionné",
+ noReviewYet: "Il n'y a pas encore de critiques.",
+ Openingtimes: "Heures d'ouverture",
+ ClosedAllDay: "Fermé toute la journée",
+ About: "À propos de",
+ Reviews: "Avis",
+ emptyHere: "C'est vide ici.",
+ emptyHereDecs1: "Vous n'avez encore enregistré aucune adresse.",
+ emptyHereDecs2: "Cliquez sur Ajouter une nouvelle adresse pour commencer.",
+ changeAddress: "Changer l'adresse",
+ pickUp: "Ramasser",
+ Custom: "Personnalisé",
+ save: "Enregistrer",
+ SelectPickupDT: "Sélectionner la date et l'heure de ramassage",
+ SelectDeliveryDT: "Sélectionner la date et l'heure de livraison",
+ viewLess: "Voir moins",
+ viewAll: "Voir tout",
+ currentLocation: "Emplacement actuel",
+ useCurrentLocation: "Utiliser l'emplacement actuel",
+ locationPermissionMessage: "Appuyez sur ce message pour ouvrir les paramètres, puis autorisez l'application à utiliser l'emplacement depuis les autorisations.",
+ enategaUseYourLocationMessage: "Enatega utilise votre emplacement pour afficher les restaurants à proximité de chez vous !",
+ selectAnotherLocation: "Sélectionner un autre emplacement",
+ setLocation: "Définir l'emplacement",
+ cartIsEmpty: "Le panier est vide",
+ favouritelistUpdated: "Liste des favoris mise à jour",
+ minAmount: "Le montant minimum de ",
+ forYourOrder: " pour votre commande n'a pas été atteint.",
+ setPaymentMethod: "Définissez le mode de paiement avant de passer à la caisse",
+ numberVerificationAlert: "Le numéro de téléphone n'est pas vérifié. Veuillez vérifier le numéro de téléphone.",
+ numberVerified: "Le numéro de téléphone a été vérifié avec succès !",
+ numberAddedAlert: "Le numéro de téléphone a été ajouté avec succès !",
+ itemNotAvailable: "Un ou plusieurs articles ne sont pas disponibles",
+ accountDeactivated: "Compte désactivé",
+ addressUpdated: "Adresse mise à jour",
+ errorOccured: "Une erreur s'est produite. Veuillez réessayer ",
+ otpForResetPassword: "OTP pour réinitialiser le mot de passe a été envoyé à votre adresse e-mail.",
+ passwordResetSuccessfully: "Réinitialisation du mot de passe réussie !",
+ passwordMustMatch: "Le mot de passe doit correspondre au mot de passe de confirmation",
+ emailAssociatedWith: "Votre adresse e-mail est associée à ",
+ continueWith: ". Veuillez continuer avec ",
+ mailCheckingError: "Erreur lors de la vérification de l'e-mail. Réessayez plus tard !",
+ errorInLoginError: "Erreur de connexion",
+ errorWhileLogging: "Erreur de connexion. Veuillez réessayer plus tard",
+ accountCreated: "Votre compte a été créé.",
+ invalidPassword: "Mot de passe invalide",
+ userInfoUpdated: "Informations de l'utilisateur mises à jour",
+ nameError: "Le nom est requis",
+ notificationStatusUpdated: "Statut de la notification mis à jour",
+ notificationNotWork: "La notification ne fonctionne pas sur le simulateur",
+ errorInProfile: "Erreur dans le profil",
+ invalidAmount: "Montant invalide",
+ amountMustBe: "Le montant doit être supérieur à 0",
+ otherAmount: "Autre montant",
+ addOtherAmount: "Ajouter un autre montant",
+ otpResentToEmail: "OTP renvoyé à votre adresse e-mail.",
+ search: "Rechercher",
+ searchRestaurant: "Rechercher des restaurants",
+ message: "Message",
+ aptFloor: "Appartement | Étage",
+ confirmPassword: "Confirmez le mot de passe",
+ specialInstructions: "Instructions spéciales",
+ anySpecificPreferences: "Des préférences spécifiques ?",
+ optional: "Facultatif",
+ noMayo: "Par exemple, pas de mayonnaise",
+ mobileNumber: "Numéro de téléphone portable",
+ firstNamePH: "Prénom",
+ lastNamePH: "Nom de famille",
+ titleCustomize: "Personnaliser",
+ titleMyVouchers: "Mes bons",
+ titleProductPage: "Page de produit",
+ titleDocs: "Docs",
+ titleBlog: "Blog",
+ titleAboutUs: "À propos de nous",
+ paypalCheckout: "Paiement Paypal",
+ stripeCheckout: "Paiement Stripe",
+ titleTipping: "Pourboire",
+ statusOrderPalced: "Commande passée",
+ statusAccepted: "Acceptée",
+ statusAssigned: "Assignée",
+ statusPicked: "Prise en charge",
+ statusDelivered: "Livré",
+ selectLocation: "Sélectionner l'emplacement",
+ languageSetting: "Paramètres de langue",
+ receiveSpecialOffers: "Recevoir des offres spéciales",
+ getUpdates: "Recevoir des mises à jour sur le statut de votre commande",
+ turnOnDarkTheme: "Activer le thème sombre",
+ selectLanguage: "Sélectionner la langue",
+ Select: "Sélectionner",
+ DELETEACCOUNT: "SUPPRIMER LE COMPTE",
+ ETA: "ETA",
+ contactYourRider: "Contactez votre livreur",
+ selectCountry: "Sélectionnez le pays",
+ MON: "LUN",
+ TUE: "MAR",
+ WED: "MER",
+ THU: "JEU",
+ FRI: "VEN",
+ SAT: "SAM",
+ SUN: "DIM",
+ DeliveryAddressIsRequired: "L'adresse de livraison est requise",
+ SelectVariation: "Sélectionnez la variation",
+ SelectOne: "Sélectionnez un",
+ Required: "Obligatoire",
+ howWasMeal: "Comment était votre repas ?",
+ howWasMealP: "Était-ce bon ou mauvais, parlons-en",
+ RateYourOrder: "Évaluez votre commande",
+ yourExperience: "Parlez de votre expérience",
+ selectItems: "Sélectionnez des articles",
+ dontHaveAnyOrderYet: "Vous n'avez encore aucune commande passée. Essayez l'un de nos restaurants formidables et passez votre première commande !",
+ BrowseRESTAURANTS: "Parcourez LES RESTAURANTS DE VOTRE RÉGION",
+ RateOrder: "Noter la commande",
+ voucherCode: "Entrez votre code de réduction",
+ networkError: "Quelque chose s'est mal passé. Vérifiez votre réseau et réessayez.",
+ noRestaurants: "Pas de restaurants",
+ clearCartText: 'En quittant cette page du restaurant, les articles que vous avez ajoutés au panier seront effacés',
+okText: 'OK'
+}
diff --git a/enatega-multivendor-app/translations/km.js b/enatega-multivendor-app/translations/km.js
new file mode 100644
index 0000000..d7ccb8e
--- /dev/null
+++ b/enatega-multivendor-app/translations/km.js
@@ -0,0 +1,356 @@
+export const km = {
+ title0: 'ភាសាដែលបានជ្រើសរើស',
+ subtitle0: 'អង់គ្លេស',
+ description0: 'ជ្រើសប្រភេទភាសាបើអ្នកចង់ផ្លាស់ប្តូរមាតិការនៃកម្ពស់បើចង់',
+ title1: 'មុខម្ហូប',
+ subtitle1: 'ព្រហស្បត',
+ description1: 'មុខម្ហូបគឺជាមុខដ៏ចាកស្រេច ការចាប់ផ្តើមវា ជាវកមណ្ឌគឺជាកបសប្រចសំឡឺគឺជាការតួយសរិច ទីនៃថងេកមមាតិការកាតាខហៅជាវកមណវជាអស៍',
+ title2: 'មុខម្ហូប',
+ subtitle2: 'ទិញភ្លេច',
+ description2: 'សំនរភាគិវជាកមណ្ឌនៃងេក និងជាទីនៃឃ្នៅអ្វីសៅចាប់ផ្តើម និងសូវជាការរសេរសំខាដនិងមេកនិងម៉មាដូជាការបកស្រេច',
+ title3: 'មុខម្ហូប',
+ subtitle3: 'មេកន',
+ description3: 'អាយុមិនមូនធ្វើឡើងបានកក់តែការបកពីកមណ្ឌចង់ពរពសកមណវច។',
+ getStarted: 'ចាប់ផ្តើម!',
+ welcome: 'សូមស្វាគមន៍មកកាន់ Enatega, កន្លែងណា១ងតិះបន្ថរះគឺក្រុមចេតះជាលោងេះអចចៀ់ះ បើមងេកៅមាតិការខាជាជំពខឺៃ',
+ loginBtn: 'ចុះបញ្ជី',
+ registerBtn: 'ចុះបញ្ជី',
+ name: 'ឈ្មោះ',
+ phone: 'លេខទូរស័ព្ទ',
+ email: 'អ៊ីមែល',
+ emailphone: 'អ៊ីមែល ឬ លេខទូរស័ព្ទ',
+ password: 'លេខសោ',
+ deliveryAddress: 'អាសយដ្ឋានចែករំចុះ',
+ fullDeliveryAddress: 'អាសយដ្ឋានចែករំចុះពេញ',
+ deliveryDetails: 'សេចក្តីលម្មយត្ថិរ៏ - ឧ. មីខ្គូ/អធគ័រ',
+ myAddresses: 'អាសយដ្ឋានរបស់ខ្ញុំ',
+ addAddress: 'បន្ថែមអាសយដ្ឋានថ្មី',
+ editAddress: 'កែអាសយដ្ឋាន',
+ registerText: 'ឬចុះបញ្ជីជា',
+ forgotPassword: 'ភ្លេចលេខសោ?',
+ loginText: 'ឬ ចុះបញ្ជីជា',
+ deliveryLocation: 'បើកឧបករណ៍ដើរចេញដំឡើងដើរចេញហត័លចេញដើរអាចផ្ញផ្កាអាសយជាមជាមាតិកាដេនឃ្នៅេះេះ',
+ locationBtn: 'បើកកន់ជាឃ្នៅ',
+ locationPermissionDenied: 'ការអនុភាពធ្វើដើរនៅឃ្នៅត្រឺនិចិឆេលតើត្រឹករបដបកនោភាព',
+ cameraRollPermissionDenied: 'ការអនុភាពធ្វើដើរនៅឃ្នៅត្រឺនិចិឆេលត័តើត័នករបដបកភាព',
+ locationOff: 'បើកកន់ទៅឃ្នៅ និពត្រត្រននោភបដម្ភជានចើព',
+ titleLanguage: 'ប្ដូរភាសា',
+ titleMenu: 'ម៉ឺណូ',
+ titleOrders: 'ខាមិវគឺរ',
+ titleReorder: 'បងគឺជាសណ្ឌភាព',
+ titleNotifications: 'កាមិវអេតហ្វិស',
+ titleReviews: 'ពត្ថនភត្រ',
+ titleProfile: 'ប្ដូរបានភាញ',
+ titleSettings: 'កែហ្លិខណខាបនង',
+ titleHelp: 'ជំអុញ',
+ titleChat: 'ជូស',
+ titleLogout: 'ចេញ',
+ titleCart: 'កនឃាត',
+ titlePayment: 'ការទូទាត',
+ totalOrderAmount: 'ទំព័រសត្យបេកាងតូយ',
+ reOrder: 'បងការបោ',
+ previous: 'ទំព័រសត្យ',
+ unReadNotifications: 'រនជិងមិត',
+ upload: 'ផ្ទុក',
+ saveBtn: 'រកកន្ល',
+ saveContBtn: 'រកទានកកន្ល',
+ emailUs: 'ផ្ញេញរបនឃាបនភង',
+ question1: 'តតារជើអខាឃ្នៅត្រូ',
+ question2: 'តតារចងភរពងជើ',
+ question3: 'តតារតយដាឡខតយលសូន',
+ question4: 'តតារឃិសិអូថសឃ្នៅ',
+ answer1: 'អ្នកឃអខានឃូភងបចត្រររជើនះផណពណោបដំភិប្បរសាខ្ញបសជើដ៏ពសគចសឃសពឆៅ៕ពពសៅគពស់៕',
+ answer2: 'អ្នកឃភងយតយតរពសចសនខ្ញបពណទូសនត៏វំោសយត្រ៕',
+ answer3: 'អ្នកឃតតយដាឡភយអ្នកត្រអនមាតតយនអតត្រឃសដាលតពទមអកាងឃសឃសលកសនចន់ត្របនកជេះទលខោំយត្រ',
+ answer4: 'កាគសមគគនៅខ្ញឆៅសបឆ្ចគសតតាឃគពកជើចតយតយភជតយតំនយតរ៕',
+ add: 'បក',
+ quantity: 'បោបជ',
+ size: 'ទាំងទាក',
+ addToCart: 'បនកទាកកជ',
+ orderNow: 'បកសតប់',
+ addToCartMessage: 'បតោកទាបនកន់',
+ emptyCart: 'សសាជតតពទនតតតតត',
+ itemTotal: 'ទំព័រតសត',
+ delvieryCharges: 'ខបនរ',
+ total: 'ទំព័របតបត',
+ contactInfo: 'ទងកជនត',
+ deliveryAddressmessage: 'បោទំព័របត',
+ proceedCheckout: 'បនដកប៏',
+ paymentText: 'តតារតតតតពតបក',
+ checkout: 'ទបក',
+ creditCart: 'ជតចសឡពតពតពតត',
+ paypal: 'Paypal',
+ cod: 'បានជ៏',
+ thankYou: 'កតពកជ',
+ orderConfirmed: 'តតតតតប៏ប៏ត',
+ orderId: 'តបំទតទប',
+ orderAmount: 'តបរតត',
+ orderDetail: 'តតានត',
+ paymentMethod: 'ជចគត',
+ trackOrder: 'តតាត',
+ backToMenu: 'ថាចខតស',
+ foodItem: 'មុខគត',
+ deliveredTo: 'បោទតពបពបបបត',
+ writeAReview: 'បតរ',
+ orderReceived: 'ប៏ប',
+ orderPicked: 'តត',
+ orderDelivered: 'ប៏ប',
+ completed: 'ប៏',
+ cancelled: 'ប៏',
+ orderPreparing: 'ប៏ប',
+ delivered: 'ប៏ប',
+ rateAndReview: 'វៀតណូបបកមត',
+ reviewPlaceholder: 'វតតទមាមតាសតអភលន...',
+ submit: 'បន',
+ noWorriesText: 'មិត្តត្រតអចង្តតមោ',
+ yourEmail: 'អ៊ីមែលរបស',
+ send: 'បន',
+ apply: 'អត',
+ checkEmail: 'ពលត្រមចខតរនអតវោ',
+ languageText: 'សសាបនយលតតពកកន៏ត្រតត',
+ countryCodePickerTranslation: 'ភ',
+ countryCodeSelect: 'មិគឃាតរដរជ់',
+ paymentNotSupported: 'វរតតវ៏បនមិលតតយតមលត',
+ loginOrCreateAccount: 'ចចាតររ',
+ unReadReviews: 'វ៏បរបរវាពតពត',
+ unReadOrders: 'វ៏បរត',
+ error: 'មម៏',
+ noMoreItems: 'មតត្រតតត',
+ hungry: 'បតប',
+ emptyCartBtn: 'តទតពលតទត',
+ emptyFavBtn: 'សបទអត្រវ៏ស៏វ៏តជ៏ជ៏',
+ subTotal: 'តបជះត',
+ deliveryFee: 'តបវ៏វត',
+ haveVoucher: 'ពពតតគតពត',
+ remove: 'ត្រ',
+ change: 'ព៏ត',
+ condition1: 'សតាសតវ៏ជាតតកកត',
+ condition2: 'កតបពពនតយពបតទរវបតពត',
+ orderBtn: 'បៅបាត',
+ coupanApply: 'ពពតតពពតពបពប',
+ coupanFailed: 'ពពតពបពប',
+ invalidCoupan: 'ពពត',
+ validateItems: 'បរបត',
+ validateDelivery: 'តតទតតត',
+ titleFavourite: 'ពត',
+ titleEmptyFav: 'ពត',
+ emptyFavDesc: 'វត្រវតវ៏តវតវ',
+ justLook: 'ប៏បត',
+ taxFee: 'ពតពត',
+ viewCart: 'បកតលតល',
+ featured: 'ព',
+ allRestaurant: 'តត',
+ titleDeliveryDetails: 'តតវ៏តវ',
+ titlePickUpDetails: 'តតតត',
+ tip: 'ត',
+ reviewRegardingOrder: 'វ៏វតពបបរពពបត',
+ anySuggestion: 'បបត',
+ newUser: 'វប',
+ signUporSignIn: 'ររ',
+ or: 'បត',
+ termCondition1: 'ពបពត',
+ temrConditions: 'តបត',
+ privacyPolicy: 'តប',
+ and: 'ត',
+ whatsYourEmail: 'តតអ៏មែតរបន?',
+ checkAccount: 'តបពពនរតតបតពត',
+ signInWithEmail: 'តវ',
+ continueBtn: 'បន',
+ emailErr1: 'តនគតអ៏មែត',
+ emailErr2: 'អ៏មែត',
+ passErr1: 'តនតព',
+ passErr2: 'ព',
+ letsGetStarted: 'តនត',
+ createAccount: 'តវតន៏តត',
+ firstnameErr1: 'វតតអ៏ត',
+ firstnameErr2: 'វតត',
+ lastnameErr1: 'វតត',
+ lastnameErr2: 'វតត',
+ mobileErr1: 'តតអ៏ត',
+ mobileErr2: 'តត',
+ verifyEmail: 'តតតត?',
+ otpSentToEmail: 'តបតត',
+ verifyPhone: 'តតត?',
+ otpSentToPhone: 'តបតត',
+ wrongOtp: 'តបតត!',
+ resendBtn: 'តត',
+ enterYourEmail: 'តតតត',
+ backToLogin: 'ប៏បត',
+ setYourPassword: 'តប',
+ enterPass: 'តតត',
+ confirmPassRequired: 'តត',
+ yourPhoneNumber: 'តត',
+ secureAccountWithPhone: 'តន៏តត',
+ Home: 'ផ្ទះ',
+ Work: 'ការងារ',
+ Other: 'ផ្សេងៗ',
+ addLabel: 'បន្ថែមស្លាក',
+ profileDetail: 'ព័ត៌មានផ្ទាល់ខ្លួន',
+ update: 'ធ្វើបច្ចុប្បន្ន',
+ mobile: 'ទូរស័ព្ទ',
+ addPhone: 'បន្ថែមទូរស័ព្ទ',
+ verified: 'បានផ្ទៀងផ្ទាត់',
+ verify: 'ផ្ទៀងផ្ទាត់',
+ unverified: 'មិនបានផ្ទៀងផ្ទាត់',
+ changePassword: 'ប្ដូរពាក្យសម្ងាត់',
+ currentPassword: 'ពាក្យសម្ងាត់បច្ចុប្បន្ន',
+ newPassword: 'ពាក្យសម្ងាត់ថ្មី',
+ updatePassword: 'ពាក្យសម្ងាត់ត្រូវបានធ្វើបច្ចុប្បន្ន',
+ searchAddress: 'ស្វែងរកអាសយដ្ឋាន',
+ addToCart: 'បន្ថែមទៅកថដ',
+ loading: 'កំពុងផ្ទុក...',
+ PENDING: 'កំពុងរង់ចាំ',
+ ACCEPTED: 'បានទទួលយក',
+ ASSIGNED: 'បានថែទាំ',
+ PICKED: 'បានជ្រើស',
+ DELIVERED: 'បានដឹកជញ្ជូន',
+ COMPLETED: 'បានបញ្ចប់',
+ pendingOrder: 'ការកម្មង់របស់អ្នកមិនទាន់បានដាក់ស្នើទេ។',
+ acceptedOrder: 'ភោជនីការកម្មង់កំពុងរៀបចំអាហារ។',
+ assignedOrder: 'បានថែទាំដោយអ្នកជួប.',
+ pickedOrder: 'អ្នកដឹកជញ្ជូនកំពុងនឹងមកកន្លែងរបស់អ្នក។',
+ deliveredOrder: 'ការដឹកជញ្ជូនបានដឹកជញ្ជូន។',
+ completedOrder: 'ការកម្មង់ត្រូវបានបញ្ចប់។',
+ PENDINGStatusMessage: 'កំពុងរង់ចាំអះអាងពីភោជនីការកម្មង់',
+ ACCEPTEDStatusMessage: 'អាហារកំពុងរៀបចំ',
+ ASSIGNEDStatusMessage: 'បានថែទាំដោយអ្នកជួប',
+ PICKEDStatusMessage: 'អ្នកដឹកជញ្ជូនកំពុងនឹងមកកន្លែងរបស់អ្នក',
+ DELIVEREDStatusMessage: 'សូមអរគុណ!',
+ CANCELLEDStatusMessage: "សូមទោស, ការកម្មង់របស់អ្នកត្រូវបានលុប។",
+ yourOrderAt: 'ការកម្មង់របស់អ្នកនៅតំបន់',
+ delivery: 'ដឹកជញ្ជូន',
+ Min: 'នាទី',
+ min: 'នាទី',
+ Closed: 'បានបិទ',
+ PenddingText: "យើងសួរដូចម្តេចពីរបៀបកំពុងចាំទៅដល់ហាងដើម្បីដឹកជញ្ជូនអាហាររបស់អ្នក។",
+ PenddingText1: 'អ្នកដឹកជញ្ជូនរបស់ហាងនឹងមាននៅផ្ទះអ្នកនៅជួប។',
+ OrderFrom: 'ការកម្មង់របស់អ្នកពី៖',
+ OrderNo: 'លេខកូដការកម្មង់របស់អ្នក៖',
+ ActiveOrder: 'ការកម្មង់ដែលនៅសកម្ម',
+ PastOrder: 'ការកម្មង់សកម្ម',
+ ContinueWithGoogle: 'បន្តជាមួយ Google',
+ ContinueWithEmail: 'បន្តជាមួយអ៊ីមែល',
+ Cancel: 'បោះបង់',
+ DeleteAccount: 'លុបគណនី',
+ DeleteConfirmation: 'តើអ្នកប្រាកដឬអត់ចង់លុបគណនី?',
+ chatWithRider: 'សន្ទាន្ធជាមួយអ្នកដឹកជញ្ជូន',
+ yourOrderIs: 'ការកម្មង់របស់អ្នកគឺ',
+ noItemsExists: 'មិនមានទំនិញទេ',
+ pickUpAddress: 'អាសយដ្ឋានដែលអ្នកទទួលបាន',
+ selectedLocation: 'ទីតាំងដែលបានជ្រើសរើស',
+ noReviewYet: 'មិនទាន់មានការពិតប្រាកដទេ។',
+ Openingtimes: 'ម៉ោងបើកបរ',
+ ClosedAllDay: 'បានបិទសកម្ម',
+ About: 'អំពី',
+ Reviews: 'ពិតពិត',
+ emptyHere: "នេះគឺទទេ។",
+ emptyHereDecs1: "អ្នកមិនទាន់បានរក្សាទំនាក់ទំនងទេ។",
+ emptyHereDecs2: "ចុចលើបន្ថែមអាសយដ្ឋានថ្មីដើម្បីចាប់ផ្តើម។",
+ changeAddress: 'ផ្លាស់ប្តូរអាសយដ្ឋាន',
+ pickUp: 'ទទួលបាន',
+ Custom: 'ផ្ទាល់ខ្លួន',
+ save: 'រក្សាទុក',
+ SelectPickupDT: 'ជ្រើសរើសថ្ងៃនិងម៉ោងទទួលបាន',
+ SelectDeliveryDT: 'ជ្រើសរើសថ្ងៃនិងម៉ោងដឹកជញ្ជូន',
+ viewLess: 'បង្ហាញតិច',
+ viewAll: 'បង្ហាញទាំងអស់',
+ currentLocation: 'ទីតាំងបច្ចុប្បន្ន',
+ useCurrentLocation: 'ប្រើទីតាំងបច្ចុប្បន្ន',
+ locationPermissionMessage: 'ចុចលើសារនេះដើម្បីបើកការកំណត់ប្រើទីតាំងរបស់អ្នក បន្ទាប់ពីនោះអនុញ្ញាតឱ្យកម្មវិធីប្រើទីតាំង។',
+ enategaUseYourLocationMessage: 'Enatega ប្រើទីតាំងរបស់អ្នកដើម្បីបង្ហាញរបាយទីតាំងដែលនៅជិតអ្នក!',
+ selectAnotherLocation: 'ជ្រើសរើសទីតាំងផ្សេងៗ',
+ setLocation: 'កំណត់ទីតាំង',
+ cartIsEmpty: 'កាតគឺទទេ',
+ favouritelistUpdated: 'បានធ្វើបច្ចុប្បន្នភាពសំខាន់',
+ minAmount: 'ចំនួនអប្បបរមារ ',
+ forYourOrder: ' សម្រាប់ការបញ្ជារបស់អ្នកមិនត្រូវបានដាក់តម្លៃទេ។',
+ setPaymentMethod: 'កំណត់វិធីសាស្រ្តទូទាត់មុនពេលទូទាត់',
+ numberVerificationAlert: 'លេខទូរស័ព្ទមិនបានបញ្ជាក់។ សូមបញ្ជាក់លេខទូរស័ព្ទរបស់អ្នក។',
+ numberVerified: 'បានបញ្ជាក់លេខទូរស័ព្ទបានសម្រាប់ជោគជ័យ!',
+ numberAddedAlert: 'បានបន្ថែមលេខទូរស័ព្ទបានសម្រាប់ជោគជ័យ!',
+ itemNotAvailable: 'មិនមានទេសចរណ៏មួយឬច្រើនគឺមានទេ',
+ accountDeactivated: 'គណនីត្រូវបានបិទប្រើ',
+ addressUpdated: 'បានធ្វើបច្ចុប្បន្នភាពអាសយដ្ឋាន',
+ errorOccured: 'មានកំហុស។ សូមព្យាយាមម្តងទៀត ',
+ otpForResetPassword: 'OTP សម្រាប់កំណត់ពាក្យសំងាត់ត្រូវបានផ្ញើទៅកាន់អ៊ីមែលរបស់អ្នក។',
+ passwordResetSuccessfully: 'កំណត់ពាក្យសំងាត់របស់អ្នកបានកំណត់ឡើងវិញជោគជ័យ!',
+ passwordMustMatch: 'តម្រូវឲ្យការកំណត់ពាក្យសំងាត់ត្រូវផ្គូផ្គងនឹងការបញ្ជាក់ពាក្យសំងាត់',
+ emailAssociatedWith: 'អ៊ីម៉ែលរបស់អ្នកបានភ្ជាប់ជាមួយ ',
+ continueWith: '។ សូមបន្តបន្ទាន់ជាមួយ ',
+ mailCheckingError: 'កំហុសនៅពេលពិនិត្យអ៊ីមែល។ សូមព្យាយាមម្តងទៀត!',
+ errorInLoginError: 'មានកំហុសក្នុងការចូលប្រើប្រាស់',
+ errorWhileLogging: 'មានកំហុសពេលចូលប្រើប្រាស់។ សូមព្យាយាមម្តងទៀត',
+ accountCreated: 'គណនីរបស់អ្នកត្រូវបានបង្កើត។',
+ invalidPassword: 'ពាក្យសំងាត់មិនត្រឹមត្រូវ',
+ userInfoUpdated: "ព័ត៌មានអ្នកបានធ្វើបច្ចុប្បន្នភាព",
+ nameError: 'ឈ្មោះត្រូវបានទាមទារ',
+ notificationStatusUpdated: 'បានធ្វើបច្ចុប្បន្នភាពស្ថានភាពការជូនដំណឹង',
+ notificationNotWork: 'ការជូនដំណឹងមិនធ្វើប្រើនៅលើឧបករណ៍រុករក',
+ errorInProfile: 'មានកំហុសក្នុងទិដ្ឋភាព',
+ invalidAmount: 'ចំនួនលេខមិនត្រឹមត្រូវ',
+ amountMustBe: 'ចំនួនត្រូវតែធំជាង 0',
+ otherAmount: 'ចំនួនផ្សេងៗ',
+ addOtherAmount: 'បន្ថែមចំនួនផ្សេងៗ',
+ otpResentToEmail: 'OTP បានផ្ញើទៅអ៊ីមែលរបស់អ្នកឡើងវិញ',
+ search: 'ស្វែងរក',
+ searchRestaurant: 'ស្វែងរកហាងនៅ',
+ message: 'សារ',
+ aptFloor: 'ខេត្ត | ជាន់',
+ confirmPassword: 'បញ្ជាក់ពាក្យសំងាត់',
+ specialInstructions: 'ការបញ្ជាក់ពិសេស',
+ anySpecificPreferences: 'មានបំណងសំខាន់មួយឬទេ?',
+ optional: 'ជ្រើសរើស',
+ noMayo: 'ឧ. ក្រៅទឹកម៉ាយ',
+ mobileNumber: 'លេខទូរស័ព្ទ',
+ firstNamePH: 'នាមខ្លួន',
+ lastNamePH: 'នាមត្រកូល',
+ titleCustomize: 'ផ្លាករត់',
+ titleMyVouchers: 'ប័ណ្ណឥតគិតថ្លៃរបស់ខ្ញុំ',
+ titleProductPage: 'ទំព័រផលិតផល',
+ titleDocs: 'ឯកសារ',
+ titleBlog: 'ប្លក់',
+ titleAboutUs: 'អំពីយើង',
+ paypalCheckout: 'ការដើម្បីទូទាត់តាម Paypal',
+ stripeCheckout: 'ការដើម្បីទូទាត់តាម Stripe',
+ titleTipping: 'ការទូទាត់ប្រាក់លើកន្ត្រី',
+ statusOrderPalced: 'បានកើតវិក្ក័យប័ត្រ',
+ statusAccepted: 'បានទទួលយក',
+ statusAssigned: 'បានជោគជ័យ',
+ statusPicked: 'បានជ្រើសរើស',
+ statusDelivered: 'បានដឹកជញ្ជូន',
+ selectLocation: 'ជ្រើសរើសទីតាំង',
+ languageSetting: 'ការកំណត់ភាសា',
+ receiveSpecialOffers: 'ទទួលបានការផ្តល់ជូនពិសេស',
+ getUpdates: 'ទទួលបានការធ្វើបច្ចុប្បន្នភាពអំពីស្ថានភាពបញ្ជាពិសេសរបស់អ្នក',
+ turnOnDarkTheme: 'បើកបង្អើជាមួយសំណើមចំណាំង',
+ selectLanguage: 'ជ្រើសរើសភាសា',
+ Select: 'ជ្រើសរើស',
+ DELETEACCOUNT: 'លុបគណនី',
+ ETA: 'ពេលវេលា',
+ contactYourRider: 'ទាក់ទងទៅនឹងអ្នកប្រើប្រាស់របស់អ្នក',
+ selectCountry: 'ជ្រើសរើសប្រទេស',
+ MON: 'ច.ម.',
+ TUE: 'អ.ង.',
+ WED: 'ព្រ.ក.',
+ THU: 'ព្រ.ព.',
+ FRI: 'សុក.ក.',
+ SAT: 'សៅ.រ.',
+ SUN: 'អាទ.រ.',
+ DeliveryAddressIsRequired: 'តួអក្សរអាស្រ័យលេខអាស្រ័យរបស់អ្នកត្រូវបានទាមទារ',
+ SelectVariation: 'ជ្រើសរើសផ្សេងទៀត',
+ SelectOne: 'ជ្រើសរើសមួយ',
+ Required: 'ត្រូវការ',
+ howWasMeal: 'រស់រាយមែនឬទេ?',
+ howWasMealP: 'តើវាស្រស់ដល់អ្វីឬទេ? នេះជាការនិយាយដែលអ្នកអាចលេងចោលបាន',
+ RateYourOrder: 'វាយតម្លៃបើកសិក្សា',
+ yourExperience: 'ប្រភេទរបស់អ្នក',
+ selectItems: 'ជ្រើសរើសទំនិញ',
+ dontHaveAnyOrderYet: "អ្នកមិនទាន់មានការបញ្ជាទិញណាមួយទេ។ សាកល្បងមួយរបស់យើងនឹងឲ្យលេងពិភពលោក ហើយដាក់បញ្ជាទិញដោយឡែកទៅ!",
+ BrowseRESTAURANTS: 'រកមើលភោជនីយដ្ឋានផ្ទះបាយដែលមានស្រុករបស់អ្នក',
+ RateOrder: 'វាយតម្លៃការបញ្ជាទិញ',
+ voucherCode: "បញ្ចូលលេខកូដប៉ាន់ស្សាររបស់អ្នក",
+ networkError: "មានបញ្ហាមួយណា។ ពិនិត្យមើលបណ្ដាញរបស់អ្នក ហើយព្យាយាមម្តងទៀត។",
+ noRestaurants: "មិនមានភោជនីយដ្ឋានបានទេ",
+ clearCartText: 'ដោយចេញពីទំព័រនេះនៃភោជនីយដ្ឋាននេះ វានឹងលុបចោលវារបស់អ្នកដែលបានបន្ថែមទៅការដឹកជញ្ជូន',
+okText: 'យល់ព្រម'
+}
diff --git a/enatega-multivendor-app/translations/zh.js b/enatega-multivendor-app/translations/zh.js
new file mode 100644
index 0000000..02d2691
--- /dev/null
+++ b/enatega-multivendor-app/translations/zh.js
@@ -0,0 +1,356 @@
+export const zh = {
+ title0: '选择语言',
+ subtitle0: '英语',
+ description0: '选择您喜欢的任何语言,将应用内容更改为您所需的语言。',
+ title1: '美味',
+ subtitle1: '早餐',
+ description1: '早餐是一切。开始,第一件事。它是对新一天、持续生活的承诺。',
+ title2: '清爽',
+ subtitle2: '饮料',
+ description2: '真正的宁静是心灵的休息,就像睡眠对身体的滋养和提神一样。',
+ title3: '美味',
+ subtitle3: '冰淇淋',
+ description3: '年龄不会减轻冰淇淋勺子从锥形杯中掉下时的极度失望。',
+ getStarted: '开始吧!',
+ welcome: '欢迎来到Enatega,有时候你所需要的只是爱。但偶尔吃点食物也不会有害。',
+ loginBtn: '登录',
+ registerBtn: '注册',
+ name: '姓名',
+ phone: '电话',
+ email: '电子邮件',
+ emailphone: '电子邮件或电话',
+ password: '密码',
+ deliveryAddress: '送货地址',
+ fullDeliveryAddress: '您的完整送货地址',
+ deliveryDetails: '必填详细信息 - 例如楼层/建筑物',
+ myAddresses: '我的地址',
+ addAddress: '添加新地址',
+ editAddress: '编辑地址',
+ registerText: '或使用以下方式注册',
+ forgotPassword: '忘记密码?',
+ loginText: '或使用以下方式登录',
+ deliveryLocation: '打开位置以便我们能向您发送无尽的美味食物。',
+ locationBtn: '打开定位',
+ locationPermissionDenied: '拒绝访问位置的权限',
+ cameraRollPermissionDenied: '拒绝访问相册的权限',
+ locationOff: '打开位置并重试',
+ titleLanguage: '切换语言',
+ titleMenu: '菜单',
+ titleOrders: '我的订单',
+ titleReorder: '以前的订单',
+ titleNotifications: '通知',
+ titleReviews: '评论',
+ titleProfile: '个人资料',
+ titleSettings: '设置',
+ titleHelp: '帮助',
+ titleChat: '聊天',
+ titleLogout: '登出',
+ titleCart: '我的购物车',
+ titlePayment: '支付',
+ totalOrderAmount: '总订单金额',
+ reOrder: '重新订购',
+ previous: '以前的订单',
+ unReadNotifications: '没有未读通知',
+ upload: '上传',
+ saveBtn: '保存',
+ saveContBtn: '保存并继续',
+ emailUs: '通过电子邮件与我们联系',
+ question1: '我们从哪里找到食物?',
+ question2: '我们如何联系?',
+ question3: '我如何支付送货员?',
+ question4: '我的城市是否提供此服务?',
+ answer1: '您可以在最近的商店找到食物,无需支付任何客户服务费用。我们的费用与其他人相比非常低。',
+ answer2: '您可以通过电子邮件、电话号码或我们的网站与我们联系。',
+ answer3: '您可以亲自支付送货员,也可以通过信用卡或借记卡在线支付。',
+ answer4: '目前此服务在伊斯兰堡和卡拉奇等城市提供,您可以联系我们以在您的城市使用此服务。',
+ add: '添加',
+ quantity: '数量',
+ size: '尺寸',
+ addToCart: '添加到购物车',
+ orderNow: '立即下单',
+ addToCartMessage: '已添加到购物车',
+ emptyCart: '购物车中没有物品',
+ itemTotal: '商品总计',
+ deliveryCharges: '配送费',
+ total: '总计',
+ contactInfo: '联系信息',
+ deliveryAddressmessage: '设置送货地址',
+ proceedCheckout: '继续结账',
+ paymentText: '您希望如何支付?',
+ checkout: '结账',
+ creditCart: '信用卡/借记卡',
+ paypal: 'Paypal',
+ cod: '货到付款',
+ thankYou: '谢谢!',
+ orderConfirmed: '您的订单已确认',
+ orderId: '您的订单号',
+ orderAmount: '您的订单金额',
+ orderDetail: '订单详情',
+ paymentMethod: '支付方式',
+ trackOrder: '跟踪订单',
+ backToMenu: '返回菜单',
+ foodItem: '食物项目',
+ deliveredTo: '已交付至',
+ writeAReview: '撰写评论',
+ orderReceived: '订单已接收',
+ orderPicked: '您的订单正在路上',
+ orderDelivered: '已交付',
+ completed: '已完成',
+ cancelled: '已取消',
+ orderPreparing: '您的订单正在准备中',
+ delivered: '已交付',
+ rateAndReview: '评分和评论',
+ reviewPlaceholder: '更详细的评论将获得更多可见度...',
+ submit: '提交',
+ noWorriesText: '别担心,让我们来帮助您!',
+ yourEmail: '您的电子邮件',
+ send: '发送',
+ apply: '应用',
+ checkEmail: '查看您的电子邮件以获取重置密码链接',
+ languageText: '请选择您所需的语言',
+ countryCodePickerTranslation: '英',
+ countryCodeSelect: '选择国家代码',
+ paymentNotSupported: '此付款方法不支持此货币',
+ loginOrCreateAccount: '登录/创建帐户',
+ unReadReviews: '还没有评论!',
+ unReadOrders: '还没有订单!',
+ error: '错误',
+ noMoreItems: '库存中没有更多物品',
+ hungry: '饥饿',
+ emptyCartBtn: '返回食物',
+ emptyFavBtn: '让我们找一些喜爱的物品',
+ subTotal: '小计',
+ deliveryFee: '送货费',
+ haveVoucher: '您有优惠券吗?',
+ remove: '移除',
+ change: '更改',
+ condition1: '通过完成此订单,我同意所有条款和条件。',
+ condition2: '我同意并要求您在撤销期结束之前执行已订购的服务。我知道在服务完全履行后,我失去了撤销权。',
+ orderBtn: '下订单',
+ coupanApply: '优惠券折扣已应用',
+ coupanFailed: '无法使用优惠券',
+ invalidCoupan: '无效的优惠券',
+ validateItems: '在结账前添加物品到购物车',
+ validateDelivery: '在结账前设置送货地址',
+ titleFavourite: '收藏',
+ titleEmptyFav: '没有保存的收藏',
+ emptyFavDesc: '您将在此处看到所有您的喜爱的物品,以使订购更加快速。',
+ justLook: '只需寻找',
+ taxFee: '税费',
+ viewCart: '查看您的购物车',
+ featured: '特色',
+ allRestaurant: '所有餐厅',
+ titleDeliveryDetails: '送货详情',
+ titlePickUpDetails: '取餐详情',
+ tip: '小费',
+ reviewRegardingOrder: '关于您的订单的评论?',
+ anySuggestion: '有任何建议吗?',
+ newUser: '新用户?创建帐户',
+ signUporSignIn: '注册或登录',
+ or: '或',
+ termCondition1: '继续,即表示您同意我们的',
+ temrConditions: '条款和条件',
+ privacyPolicy: '隐私政策',
+ and: '和',
+ whatsYourEmail: '您的电子邮件是什么?',
+ checkAccount: '我们将检查您是否有帐户',
+ signInWithEmail: '使用您的电子邮件登录',
+ continueBtn: '继续',
+ emailErr1: '电子邮件是必填项',
+ emailErr2: '无效的电子邮件!',
+ passErr1: '密码是必填项',
+ passErr2: '无效的密码。密码必须包含1个大写字母,1个小写字母,1个数字。',
+ letsGetStarted: '让我们开始吧!',
+ createAccount: '创建您的Enatega帐户',
+ firstnameErr1: '名字是必填项!',
+ firstnameErr2: '无效的名字!',
+ lastnameErr1: '姓氏是必填项!',
+ lastnameErr2: '无效的姓氏!',
+ mobileErr1: '电话号码是必填项!',
+ mobileErr2: '无效的电话号码',
+ verifyEmail: '验证您的电子邮件?',
+ otpSentToEmail: '请输入我们发送到您的电子邮件的OTP。',
+ verifyPhone: '验证您的电话号码?',
+ otpSentToPhone: '请输入我们发送到您的电话号码的OTP。',
+ wrongOtp: '错误的OTP。请重试!',
+ resendBtn: '重新发送',
+ enterYourEmail: '输入您的电子邮件,我们将向您发送一个重置密码的OTP。',
+ backToLogin: '返回登录',
+ setYourPassword: '设置您的密码',
+ enterPass: '请键入您的密码',
+ confirmPassRequired: '需要确认密码!',
+ yourPhoneNumber: '您的电话号码是多少?',
+ secureAccountWithPhone: '我们需要这样来保护您的帐户',
+ Home: '首页',
+ Work: '工作',
+ Other: '其他',
+ addLabel: '添加标签',
+ profileDetail: '个人详情',
+ update: '更新',
+ mobile: '手机',
+ addPhone: '添加手机',
+ verified: '已验证',
+ verify: '验证',
+ unverified: '未验证',
+ changePassword: '修改密码',
+ currentPassword: '当前密码',
+ newPassword: '新密码',
+ updatePassword: '密码已更新',
+ searchAddress: '搜索地址',
+ addToCart: '加入购物车',
+ loading: '加载中...',
+ PENDING: '等待中',
+ ACCEPTED: '已接受',
+ ASSIGNED: '已分配',
+ PICKED: '已取货',
+ DELIVERED: '已交付',
+ COMPLETED: '已完成',
+ pendingOrder: '您的订单仍在等待中。',
+ acceptedOrder: '餐厅正在准备食物。',
+ assignedOrder: '分配了一名骑手。',
+ pickedOrder: '骑手正在途中。',
+ deliveredOrder: '订单已交付。',
+ completedOrder: '订单已完成。',
+ PENDINGStatusMessage: '等待餐厅接受',
+ ACCEPTEDStatusMessage: '正在准备食物',
+ ASSIGNEDStatusMessage: '分配了一名骑手',
+ PICKEDStatusMessage: '骑手正在途中',
+ DELIVEREDStatusMessage: '谢谢!',
+ CANCELLEDStatusMessage: '很抱歉,您的订单已取消。',
+ yourOrderAt: '您的订单在',
+ delivery: '送货',
+ Min: '分钟',
+ min: '分',
+ Closed: '已关闭',
+ PenddingText: '我们正在询问餐厅送餐需要多长时间。',
+ PenddingText1: '餐厅骑手将在您的位置附近。',
+ OrderFrom: '您的订单来自:',
+ OrderNo: '您的订单号:',
+ ActiveOrder: '进行中的订单',
+ PastOrder: '历史订单',
+ ContinueWithGoogle: '使用Google继续',
+ ContinueWithEmail: '使用电子邮件继续',
+ Cancel: '取消',
+ DeleteAccount: '删除账户',
+ DeleteConfirmation: '您确定要删除账户吗?',
+ chatWithRider: '与骑手聊天',
+ yourOrderIs: '您的订单是',
+ noItemsExists: '没有物品存在',
+ pickUpAddress: '取货地址',
+ selectedLocation: '已选择的位置',
+ noReviewYet: '尚无评论。',
+ Openingtimes: '营业时间',
+ ClosedAllDay: '全天关闭',
+ About: '关于',
+ Reviews: '评论',
+ emptyHere: '这里是空的。',
+ emptyHereDecs1: '您还没有保存任何地址。',
+ emptyHereDecs2: '点击“添加新地址”以开始。',
+ changeAddress: '更改地址',
+ pickUp: '取货',
+ Custom: '自定义',
+ save: '保存',
+ SelectPickupDT: '选择取货日期和时间',
+ SelectDeliveryDT: '选择送货日期和时间',
+ viewLess: '查看更少',
+ viewAll: '查看全部',
+ currentLocation: '当前位置',
+ useCurrentLocation: '使用当前位置',
+ locationPermissionMessage: '点击此消息打开设置,然后允许应用程序使用位置权限。',
+ enategaUseYourLocationMessage: 'Enatega使用您的位置显示附近的餐馆!',
+ selectAnotherLocation: '选择其他位置',
+ setLocation: '设置位置',
+ cartIsEmpty: '购物车是空的',
+ favouritelistUpdated: '最爱列表已更新',
+ minAmount: '最小金额为',
+ forYourOrder: ' 未达到您的订单。',
+ setPaymentMethod: '在结账前设置付款方式',
+ numberVerificationAlert: '电话号码未经验证。请验证电话号码。',
+ numberVerified: '电话号码已成功验证!。',
+ numberAddedAlert: '电话号码已成功添加!。',
+ itemNotAvailable: '一个或多个项目不可用',
+ accountDeactivated: '帐户已停用',
+ addressUpdated: '地址已更新',
+ errorOccured: '发生错误。请重试',
+ otpForResetPassword: '已发送重置密码的OTP到您的电子邮件。',
+ passwordResetSuccessfully: '密码重置成功!',
+ passwordMustMatch: '密码必须与确认密码相匹配',
+ emailAssociatedWith: '您的电子邮件与',
+ continueWith: '相关联。请继续使用',
+ mailCheckingError: '检查电子邮件时出错。稍后再试!',
+ errorInLoginError: '登录错误',
+ errorWhileLogging: '登录时出错。请稍后再试',
+ accountCreated: '您的帐户已创建。',
+ invalidPassword: '无效的密码',
+ userInfoUpdated: '用户信息已更新',
+ nameError: '名字是必需的',
+ notificationStatusUpdated: '通知状态已更新',
+ notificationNotWork: '模拟器上通知无法工作',
+ errorInProfile: '个人资料错误',
+ invalidAmount: '无效金额',
+ amountMustBe: '金额必须大于0',
+ otherAmount: '其他金额',
+ addOtherAmount: '添加其他金额',
+ otpResentToEmail: 'OTP重新发送到您的电子邮件。',
+ search: '搜索',
+ searchRestaurant: '搜索餐馆',
+ message: '消息',
+ aptFloor: '公寓 | 楼层',
+ confirmPassword: '确认密码',
+ specialInstructions: '特殊说明',
+ anySpecificPreferences: '有任何特殊偏好吗?',
+ optional: '可选的',
+ noMayo: '例如,不要蛋黄酱',
+ mobileNumber: '手机号码',
+ firstNamePH: '名字',
+ lastNamePH: '姓',
+ titleCustomize: '定制',
+ titleMyVouchers: '我的优惠券',
+ titleProductPage: '产品页面',
+ titleDocs: '文档',
+ titleBlog: '博客',
+ titleAboutUs: '关于我们',
+ paypalCheckout: 'Paypal结帐',
+ stripeCheckout: 'Stripe结帐',
+ titleTipping: '小费',
+ statusOrderPalced: '订单已下单',
+ statusAccepted: '已接受',
+ statusAssigned: '已分配',
+ statusPicked: '已接单',
+ statusDelivered: '已送达',
+ selectLocation: '选择位置',
+ languageSetting: '语言设置',
+ receiveSpecialOffers: '接收特别优惠',
+ getUpdates: '获取订单状态更新',
+ turnOnDarkTheme: '开启深色主题',
+ selectLanguage: '选择语言',
+ Select: '选择',
+ DELETEACCOUNT: '删除账户',
+ ETA: '预计到达时间',
+ contactYourRider: '联系您的骑手',
+ selectCountry: '选择国家',
+ MON: '星期一',
+ TUE: '星期二',
+ WED: '星期三',
+ THU: '星期四',
+ FRI: '星期五',
+ SAT: '星期六',
+ SUN: '星期天',
+ DeliveryAddressIsRequired: '需要提供送货地址',
+ SelectVariation: '选择变体',
+ SelectOne: '选择一个',
+ Required: '必填',
+ howWasMeal: '你的餐点怎么样?',
+ howWasMealP: '好吃还是不好吃,让我们聊聊',
+ RateYourOrder: '给您的订单评分',
+ yourExperience: '分享您的体验',
+ selectItems: '选择商品',
+ dontHaveAnyOrderYet: '您还没有任何过去的订单。尝试我们一家令人敬畏的餐厅,下第一份订单吧!',
+ BrowseRESTAURANTS: '浏览您区域内的餐厅',
+ RateOrder: '评价订单',
+ voucherCode: "输入您的优惠码",
+ networkError: "出了点问题。请检查您的网络,然后重试。",
+ noRestaurants:"没有餐馆",
+ clearCartText: '离开此餐厅页面,您添加到购物车的物品将被清除',
+ okText: '确定'
+}
diff --git a/enatega-multivendor-restaurant/.eslintrc.json b/enatega-multivendor-restaurant/.eslintrc.json
new file mode 100644
index 0000000..8001245
--- /dev/null
+++ b/enatega-multivendor-restaurant/.eslintrc.json
@@ -0,0 +1,28 @@
+{
+ "env": {
+ "browser": true,
+ "es6": true
+ },
+ "extends": [
+ "plugin:react/recommended",
+ "standard"
+ ],
+ "globals": {
+ "Atomics": "readonly",
+ "SharedArrayBuffer": "readonly"
+ },
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 11,
+ "sourceType": "module"
+ },
+ "plugins": [
+ "react"
+ ],
+ "rules": {
+ "space-before-function-paren": ["off"],
+ "react/prop-types": 0
+ }
+}
diff --git a/enatega-multivendor-restaurant/.expo-shared/assets.json b/enatega-multivendor-restaurant/.expo-shared/assets.json
new file mode 100644
index 0000000..1e6decf
--- /dev/null
+++ b/enatega-multivendor-restaurant/.expo-shared/assets.json
@@ -0,0 +1,4 @@
+{
+ "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true,
+ "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true
+}
diff --git a/enatega-multivendor-restaurant/.gitignore b/enatega-multivendor-restaurant/.gitignore
new file mode 100644
index 0000000..73e9e94
--- /dev/null
+++ b/enatega-multivendor-restaurant/.gitignore
@@ -0,0 +1,13 @@
+node_modules/**/*
+.expo/*
+npm-debug.*
+*.jks
+*.p8
+*.p12
+*.key
+*.mobileprovision
+*.orig.*
+web-build/
+
+# macOS
+.DS_Store
diff --git a/enatega-multivendor-restaurant/.npmrc b/enatega-multivendor-restaurant/.npmrc
new file mode 100644
index 0000000..e9ee3cb
--- /dev/null
+++ b/enatega-multivendor-restaurant/.npmrc
@@ -0,0 +1 @@
+legacy-peer-deps=true
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/.prettierrc.js b/enatega-multivendor-restaurant/.prettierrc.js
new file mode 100644
index 0000000..2fc75e2
--- /dev/null
+++ b/enatega-multivendor-restaurant/.prettierrc.js
@@ -0,0 +1 @@
+module.exports = 'prettier-config-standard'
diff --git a/enatega-multivendor-restaurant/App.js b/enatega-multivendor-restaurant/App.js
new file mode 100644
index 0000000..7f6856a
--- /dev/null
+++ b/enatega-multivendor-restaurant/App.js
@@ -0,0 +1,136 @@
+import React, { useState, useEffect } from 'react'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import { SafeAreaProvider } from 'react-native-safe-area-context'
+import { ApolloProvider } from '@apollo/client'
+import { StatusBar } from 'expo-status-bar'
+import FlashMessage from 'react-native-flash-message'
+import { useFonts } from '@use-expo/font'
+import * as Updates from 'expo-updates'
+import { AuthContext, Configuration } from './src/ui/context'
+import AppContainer from './src/navigation'
+import setupApolloClient from './src/apollo/client'
+import { Spinner, TextDefault } from './src/components'
+import { colors } from './src/utilities'
+import { ActivityIndicator, StyleSheet, View, LogBox } from 'react-native'
+import * as Sentry from 'sentry-expo'
+import getEnvVars from './environment'
+import 'react-native-gesture-handler'
+import * as SecureStore from 'expo-secure-store'
+
+LogBox.ignoreLogs([
+ 'Warning: ...',
+ 'Sentry Logger ',
+ 'Constants.deviceYearClass'
+]) // Ignore log notification by message
+LogBox.ignoreAllLogs() // Ignore all log notifications
+
+export default function App() {
+ const [isAppReady, setIsAppReady] = useState(false)
+ const [token, setToken] = useState(null)
+ const [isUpdating, setIsUpdating] = useState(false)
+
+ const { SENTRY_DSN } = getEnvVars()
+ const client = setupApolloClient()
+
+ useEffect(() => {
+ if (SENTRY_DSN) {
+ Sentry.init({
+ dsn: SENTRY_DSN,
+ enableInExpoDevelopment: true,
+ debug: true,
+ tracesSampleRate: 1.0 // to be changed to 0.2 in production
+ })
+ }
+ }, [SENTRY_DSN])
+
+ useEffect(() => {
+ ;(async () => {
+ const token = await SecureStore.getItemAsync('token')
+ if (token) setToken(token)
+ setIsAppReady(true)
+ })()
+ }, [])
+
+ useEffect(() => {
+ // eslint-disable-next-line no-undef
+ if (__DEV__) return
+ ;(async () => {
+ const { isAvailable } = await Updates.checkForUpdateAsync()
+ if (isAvailable) {
+ try {
+ setIsUpdating(true)
+ const { isNew } = await Updates.fetchUpdateAsync()
+ if (isNew) {
+ await Updates.reloadAsync()
+ }
+ } catch (error) {
+ console.log('error while updating app', JSON.stringify(error))
+ } finally {
+ setIsUpdating(false)
+ }
+ }
+ })()
+ }, [])
+
+ const login = async (token, restaurantId) => {
+ await SecureStore.setItemAsync('token', token)
+ await AsyncStorage.setItem('restaurantId', restaurantId)
+ setToken(token)
+ }
+
+ const logout = async () => {
+ await SecureStore.deleteItemAsync('token')
+ await AsyncStorage.removeItem('restaurantId')
+ setToken(null)
+ }
+
+ const [fontLoaded] = useFonts({
+ MuseoSans300: require('./assets/font/MuseoSans/MuseoSans300.ttf'),
+ MuseoSans500: require('./assets/font/MuseoSans/MuseoSans500.ttf'),
+ MuseoSans700: require('./assets/font/MuseoSans/MuseoSans700.ttf')
+ })
+
+ if (isUpdating) {
+ return (
+
+
+ Please wait while app is updating
+
+
+
+ )
+ }
+
+ if (fontLoaded && isAppReady) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ )
+ } else {
+ return
+ }
+}
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
diff --git a/enatega-multivendor-restaurant/app.json b/enatega-multivendor-restaurant/app.json
new file mode 100644
index 0000000..6e3e79f
--- /dev/null
+++ b/enatega-multivendor-restaurant/app.json
@@ -0,0 +1,62 @@
+{
+ "expo": {
+ "name": "Enatega Multivendor Restaurant",
+ "slug": "enatega-multivendor-restaurant",
+ "version": "1.0.31",
+ "orientation": "portrait",
+ "icon": "./assets/icon.png",
+ "splash": {
+ "image": "./assets/splash.png",
+ "resizeMode": "cover",
+ "backgroundColor": "#6FCF97"
+ },
+ "assetBundlePatterns": [
+ "**/*"
+ ],
+ "ios": {
+ "supportsTablet": true,
+ "bundleIdentifier": "multivendor.enatega.restaurant",
+ "infoPlist": {
+ "UIBackgroundModes": [
+ "audio",
+ "remote-notification"
+ ]
+ }
+ },
+ "android": {
+ "versionCode": 40,
+ "package": "multivendor.enatega.restaurant",
+ "googleServicesFile": "./google-services.json",
+ "permissions": [
+ "ACCESS_COARSE_LOCATION",
+ "ACCESS_FINE_LOCATION"
+ ]
+ },
+ "hooks": {
+ "postPublish": [
+ {
+ "file": "sentry-expo/upload-sourcemaps",
+ "config": {
+ "organization": "ninjas-code",
+ "project": "enatega-multivendor-app",
+ "authToken": "744ed798e04a40a896b0269c25f945de0e166db8362e41969b64d5e07ca80e65"
+ }
+ }
+ ]
+ },
+ "web": {
+ "favicon": "./assets/favicon.png"
+ },
+ "extra": {
+ "eas": {
+ "projectId": "6a94161f-f21b-4ad9-8a04-c95b54ef0116"
+ }
+ },
+ "owner": "ninjas_code",
+ "plugins": [
+ "expo-localization",
+ "expo-secure-store",
+ "sentry-expo"
+ ]
+ }
+}
diff --git a/enatega-multivendor-restaurant/assets/favicon.png b/enatega-multivendor-restaurant/assets/favicon.png
new file mode 100644
index 0000000..e75f697
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/favicon.png differ
diff --git a/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans300.ttf b/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans300.ttf
new file mode 100644
index 0000000..9e1f7f7
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans300.ttf differ
diff --git a/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans500.ttf b/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans500.ttf
new file mode 100644
index 0000000..fc028ae
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans500.ttf differ
diff --git a/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans700.ttf b/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans700.ttf
new file mode 100644
index 0000000..dffdf46
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/font/MuseoSans/MuseoSans700.ttf differ
diff --git a/enatega-multivendor-restaurant/assets/icon.png b/enatega-multivendor-restaurant/assets/icon.png
new file mode 100644
index 0000000..279e650
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/icon.png differ
diff --git a/enatega-multivendor-restaurant/assets/images/transparent-icon.png b/enatega-multivendor-restaurant/assets/images/transparent-icon.png
new file mode 100644
index 0000000..b1f3b47
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/images/transparent-icon.png differ
diff --git a/enatega-multivendor-restaurant/assets/splash.png b/enatega-multivendor-restaurant/assets/splash.png
new file mode 100644
index 0000000..b5f8042
Binary files /dev/null and b/enatega-multivendor-restaurant/assets/splash.png differ
diff --git a/enatega-multivendor-restaurant/babel.config.js b/enatega-multivendor-restaurant/babel.config.js
new file mode 100644
index 0000000..41fa4a3
--- /dev/null
+++ b/enatega-multivendor-restaurant/babel.config.js
@@ -0,0 +1,7 @@
+module.exports = function (api) {
+ api.cache(true)
+ return {
+ presets: ['babel-preset-expo'],
+ plugins: ['react-native-reanimated/plugin']
+ }
+}
diff --git a/enatega-multivendor-restaurant/eas.json b/enatega-multivendor-restaurant/eas.json
new file mode 100644
index 0000000..080b668
--- /dev/null
+++ b/enatega-multivendor-restaurant/eas.json
@@ -0,0 +1,37 @@
+{
+ "build": {
+ "development":{
+ "developmentClient": false,
+ "releaseChannel": "development",
+ "distribution": "internal"
+ },
+ "staging": {
+ "developmentClient": false,
+ "releaseChannel": "staging",
+ "distribution": "internal"
+ },
+ "production": {
+ "channel": "production",
+ "android": {
+ "buildType": "apk"
+ }
+ }
+ },
+ "submit": {
+ "production": {
+ "android": {
+ "serviceAccountKeyPath": "./google-service-account.json",
+ "track": "production"
+ },
+ "ios": {
+ "appleId": "sharan.gohar@icloud.com",
+ "ascAppId": "1526672537",
+ "appleTeamId": "GDFK7MVY6P"
+ }
+ }
+ },
+ "cli": {
+ "version": ">= 0.43.0"
+ }
+ }
+
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/environment.js b/enatega-multivendor-restaurant/environment.js
new file mode 100644
index 0000000..fb27c41
--- /dev/null
+++ b/enatega-multivendor-restaurant/environment.js
@@ -0,0 +1,31 @@
+/*****************************
+ * environment.js
+ * path: '/environment.js' (root of your project)
+ ******************************/
+
+import * as Updates from 'expo-updates'
+import { useContext } from 'react'
+import Configuration from './src/ui/context/configuration'
+
+const getEnvVars = (env = Updates.releaseChannel) => {
+ const configuration = useContext(Configuration.Context)
+
+ console.log('configuration', configuration)
+
+ if (env === 'production' || env === 'staging') {
+ return {
+ GRAPHQL_URL: 'https://enatega-multivendor.up.railway.app/graphql',
+ WS_GRAPHQL_URL: 'wss://enatega-multivendor.up.railway.app/graphql',
+ SENTRY_DSN: configuration.restaurantAppSentryUrl
+ }
+ }
+ return {
+ GRAPHQL_URL: 'https://enatega-multivendor.up.railway.app/graphql',
+ WS_GRAPHQL_URL: 'wss://enatega-multivendor.up.railway.app/graphql',
+ SENTRY_DSN: configuration.restaurantAppSentryUrl
+ // SENTRY_DSN:
+ // 'https://91b55f514a2c4708845789d6e79abf10@o1103026.ingest.sentry.io/6131933'
+ }
+}
+
+export default getEnvVars
diff --git a/enatega-multivendor-restaurant/i18n.js b/enatega-multivendor-restaurant/i18n.js
new file mode 100644
index 0000000..beb384e
--- /dev/null
+++ b/enatega-multivendor-restaurant/i18n.js
@@ -0,0 +1,47 @@
+import i18next from 'i18next'
+import { initReactI18next } from 'react-i18next'
+import * as Localization from 'expo-localization'
+import { Platform } from 'react-native'
+import { en } from './translations/en'
+import { de } from './translations/de'
+import { fr } from './translations/fr'
+import { km } from './translations/km'
+import { zh } from './translations/zh'
+import { ar } from './translations/ar'
+import { sv } from './translations/sv'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+export const languageResources = {
+ en: { translation: en },
+ zh: { translation: zh },
+ de: { translation: de },
+ fr: { translation: fr },
+ km: { translation: km },
+ ar: { translation: ar },
+ sv: { translation: sv }
+}
+const getStoredLanguage = async () => {
+ const lng = await AsyncStorage.getItem('enatega-language')
+ console.log(lng)
+ i18next.use(initReactI18next).init({
+ compatibilityJSON: 'v3',
+ lng: lng,
+ fallbackLng: 'en',
+ resources: languageResources
+ })
+}
+// if (Platform.OS === 'android') {
+getStoredLanguage()
+
+if (Platform.OS === 'ios') {
+ i18next.locale = Localization.locale
+ i18next.use(initReactI18next).init({
+ compatibilityJSON: 'v3',
+ lng: i18next.locale,
+ fallbackLng: 'en',
+ resources: languageResources
+ })
+ console.log('language:', Localization.locale)
+ i18next.changeLanguage(i18next.locale)
+}
+
+export default i18next
diff --git a/enatega-multivendor-restaurant/index.js b/enatega-multivendor-restaurant/index.js
new file mode 100644
index 0000000..ef3e322
--- /dev/null
+++ b/enatega-multivendor-restaurant/index.js
@@ -0,0 +1,11 @@
+import 'expo-dev-client'
+
+import 'react-native-gesture-handler'
+import { registerRootComponent } from 'expo'
+
+import App from './App'
+
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
+// It also ensures that whether you load the app in Expo Go or in a native build,
+// the environment is set up appropriately
+registerRootComponent(App)
diff --git a/enatega-multivendor-restaurant/metro.config.js b/enatega-multivendor-restaurant/metro.config.js
new file mode 100644
index 0000000..039dc76
--- /dev/null
+++ b/enatega-multivendor-restaurant/metro.config.js
@@ -0,0 +1,4 @@
+const { getDefaultConfig } = require('@expo/metro-config')
+const defaultConfig = getDefaultConfig(__dirname)
+defaultConfig.resolver.sourceExts.push('cjs')
+module.exports = defaultConfig
diff --git a/enatega-multivendor-restaurant/package-lock.json b/enatega-multivendor-restaurant/package-lock.json
new file mode 100644
index 0000000..292f8e6
--- /dev/null
+++ b/enatega-multivendor-restaurant/package-lock.json
@@ -0,0 +1,18740 @@
+{
+ "name": "enatega-multivendor-restaurant",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "hasInstallScript": true,
+ "dependencies": {
+ "@apollo/client": "^3.5.8",
+ "@expo/config-plugins": "~7.8.0",
+ "@react-native-async-storage/async-storage": "1.21.0",
+ "@react-native-community/masked-view": "0.1.11",
+ "@react-navigation/bottom-tabs": "^6.2.0",
+ "@react-navigation/drawer": "^6.3.1",
+ "@react-navigation/material-top-tabs": "^5.3.19",
+ "@react-navigation/native": "^6.0.8",
+ "@react-navigation/native-stack": "^6.5.0",
+ "@sentry/react-native": "5.17.0",
+ "@use-expo/font": "^2.0.0",
+ "expo": "~50.0.7",
+ "expo-av": "~13.10.5",
+ "expo-constants": "~15.4.5",
+ "expo-device": "~5.9.3",
+ "expo-localization": "~14.8.3",
+ "expo-notifications": "~0.27.6",
+ "expo-print": "~12.8.1",
+ "expo-secure-store": "~12.8.1",
+ "expo-status-bar": "~1.11.1",
+ "expo-updates": "~0.24.11",
+ "graphql": "^15.6.1",
+ "i18n": "^0.14.1",
+ "i18next": "^23.7.6",
+ "lottie-react-native": "6.5.1",
+ "moment": "^2.29.1",
+ "patch-package": "^6.2.2",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-i18next": "^13.5.0",
+ "react-native": "0.73.4",
+ "react-native-countdown-component": "^2.7.1",
+ "react-native-elements": "^3.4.2",
+ "react-native-flash-message": "^0.1.21",
+ "react-native-gesture-handler": "~2.14.0",
+ "react-native-keyboard-aware-scroll-view": "^0.9.5",
+ "react-native-material-textfield": "^0.16.1",
+ "react-native-reanimated": "~3.6.2",
+ "react-native-safe-area-context": "4.8.2",
+ "react-native-screens": "~3.29.0",
+ "react-native-swipe-gestures": "^1.0.5",
+ "react-native-tab-view": "^2.16.0",
+ "react-native-web": "~0.19.6",
+ "sentry-expo": "~7.2.0",
+ "subscriptions-transport-ws": "^0.9.16",
+ "validate.js": "^0.13.1"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.20.0",
+ "@expo/metro-config": "~0.17.1",
+ "babel-preset-expo": "^10.0.0",
+ "eslint": "^7.1.0",
+ "eslint-config-standard": "^14.1.1",
+ "eslint-plugin-import": "^2.20.2",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^4.2.1",
+ "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-standard": "^4.0.1",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.7",
+ "prettier": "2.0.5",
+ "prettier-config-standard": "^1.0.1"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@apollo/client": {
+ "version": "3.7.14",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.14.tgz",
+ "integrity": "sha512-BRvdkwq5PAXBkjXjboO12uksDm3nrZEqDi4xF97Fk3Mnaa0zDOEfJa7hoKTY9b9KA1EkeWv9BL3i7hSd4SfGBg==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@wry/context": "^0.7.0",
+ "@wry/equality": "^0.5.0",
+ "@wry/trie": "^0.3.0",
+ "graphql-tag": "^2.12.6",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.16.2",
+ "prop-types": "^15.7.2",
+ "response-iterator": "^0.2.6",
+ "symbol-observable": "^4.0.0",
+ "ts-invariant": "^0.10.3",
+ "tslib": "^2.3.0",
+ "zen-observable-ts": "^1.2.5"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0",
+ "graphql-ws": "^5.5.5",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "subscriptions-transport-ws": "^0.9.0 || ^0.11.0"
+ },
+ "peerDependenciesMeta": {
+ "graphql-ws": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "subscriptions-transport-ws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz",
+ "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.22.0",
+ "@babel/helper-compilation-targets": "^7.22.1",
+ "@babel/helper-module-transforms": "^7.22.1",
+ "@babel/helpers": "^7.22.0",
+ "@babel/parser": "^7.22.0",
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.0",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.2",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.22.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz",
+ "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==",
+ "dependencies": {
+ "@babel/types": "^7.22.3",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.23.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
+ "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz",
+ "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dependencies": {
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz",
+ "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.1",
+ "@babel/helper-module-imports": "^7.21.4",
+ "@babel/helper-simple-access": "^7.21.5",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.21.9",
+ "@babel/traverse": "^7.22.1",
+ "@babel/types": "^7.22.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
+ "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
+ "dependencies": {
+ "@babel/types": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz",
+ "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==",
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.4",
+ "@babel/types": "^7.23.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers/node_modules/@babel/generator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz",
+ "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==",
+ "dependencies": {
+ "@babel/types": "^7.23.4",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers/node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers/node_modules/@babel/traverse": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz",
+ "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.4",
+ "@babel/generator": "^7.23.4",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.4",
+ "@babel/types": "^7.23.4",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "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.23.3",
+ "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.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz",
+ "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.3.tgz",
+ "integrity": "sha512-u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/plugin-syntax-decorators": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-default-from": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
+ "dependencies": {
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.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-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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-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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz",
+ "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz",
+ "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz",
+ "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz",
+ "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz",
+ "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "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.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz",
+ "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/template": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.21.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz",
+ "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-flow-strip-types": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-flow": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz",
+ "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd/node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd/node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz",
+ "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.21.5",
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/helper-simple-access": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz",
+ "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs/node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs/node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs/node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd/node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd/node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-numeric-separator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-assign": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz",
+ "integrity": "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
+ "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.3",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-optional-chaining": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz",
+ "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz",
+ "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/types": "^7.23.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
+ "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz",
+ "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz",
+ "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz",
+ "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz",
+ "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz",
+ "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz",
+ "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.3",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@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-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.3",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.3",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.3",
+ "@babel/plugin-transform-classes": "^7.23.3",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.3",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.3",
+ "@babel/plugin-transform-for-of": "^7.23.3",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.3",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.3",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.3",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3",
+ "@babel/plugin-transform-numeric-separator": "^7.23.3",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.3",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.3",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.3",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.6",
+ "babel-plugin-polyfill-corejs3": "^0.8.5",
+ "babel-plugin-polyfill-regenerator": "^0.5.3",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-classes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz",
+ "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz",
+ "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-spread": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-flow": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz",
+ "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-flow-strip-types": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz",
+ "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-react-display-name": "^7.23.3",
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
+ "@babel/plugin-transform-react-jsx-development": "^7.22.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript/node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-typescript/node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/preset-typescript/node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/register": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz",
+ "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "find-cache-dir": "^2.0.0",
+ "make-dir": "^2.1.0",
+ "pirates": "^4.0.6",
+ "source-map-support": "^0.5.16"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz",
+ "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.22.1",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.1.tgz",
+ "integrity": "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.22.0",
+ "@babel/helper-environment-visitor": "^7.22.1",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.22.0",
+ "@babel/types": "^7.22.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@egjs/hammerjs": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
+ "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
+ "dependencies": {
+ "@types/hammerjs": "^2.0.36"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.23.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+ "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@expo/bunyan": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
+ "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==",
+ "engines": [
+ "node >=0.10.0"
+ ],
+ "dependencies": {
+ "uuid": "^8.0.0"
+ },
+ "optionalDependencies": {
+ "mv": "~2",
+ "safe-json-stringify": "~1"
+ }
+ },
+ "node_modules/@expo/cli": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.17.5.tgz",
+ "integrity": "sha512-9cMquL/5bBfV73CbZcWipk3KZSo8mBqdgvkoWCtEtnnlm/879ayxzMWjVIgT5yV4w+X7+N6KkBSUIIj4t9Xqew==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/devcert": "^1.0.0",
+ "@expo/env": "~0.2.0",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "@expo/metro-config": "~0.17.0",
+ "@expo/osascript": "^2.0.31",
+ "@expo/package-manager": "^1.1.1",
+ "@expo/plist": "^0.1.0",
+ "@expo/prebuild-config": "6.7.4",
+ "@expo/rudder-sdk-node": "1.1.1",
+ "@expo/spawn-async": "1.5.0",
+ "@expo/xcpretty": "^4.3.0",
+ "@react-native/dev-middleware": "^0.73.6",
+ "@urql/core": "2.3.6",
+ "@urql/exchange-retry": "0.3.0",
+ "accepts": "^1.3.8",
+ "arg": "5.0.2",
+ "better-opn": "~3.0.2",
+ "bplist-parser": "^0.3.1",
+ "cacache": "^15.3.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.3.0",
+ "connect": "^3.7.0",
+ "debug": "^4.3.4",
+ "env-editor": "^0.4.1",
+ "find-yarn-workspace-root": "~2.0.0",
+ "form-data": "^3.0.1",
+ "freeport-async": "2.0.0",
+ "fs-extra": "~8.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.1.7",
+ "graphql": "15.8.0",
+ "graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
+ "internal-ip": "4.3.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
+ "js-yaml": "^3.13.1",
+ "json-schema-deref-sync": "^0.13.0",
+ "lodash.debounce": "^4.0.8",
+ "md5hex": "^1.0.0",
+ "minimatch": "^3.0.4",
+ "minipass": "3.3.6",
+ "node-fetch": "^2.6.7",
+ "node-forge": "^1.3.1",
+ "npm-package-arg": "^7.0.0",
+ "open": "^8.3.0",
+ "ora": "3.4.0",
+ "picomatch": "^3.0.1",
+ "pretty-bytes": "5.6.0",
+ "progress": "2.0.3",
+ "prompts": "^2.3.2",
+ "qrcode-terminal": "0.11.0",
+ "require-from-string": "^2.0.2",
+ "requireg": "^0.2.2",
+ "resolve": "^1.22.2",
+ "resolve-from": "^5.0.0",
+ "resolve.exports": "^2.0.2",
+ "semver": "^7.5.3",
+ "send": "^0.18.0",
+ "slugify": "^1.3.4",
+ "source-map-support": "~0.5.21",
+ "stacktrace-parser": "^0.1.10",
+ "structured-headers": "^0.4.1",
+ "tar": "^6.0.5",
+ "temp-dir": "^2.0.0",
+ "tempy": "^0.7.1",
+ "terminal-link": "^2.1.1",
+ "text-table": "^0.2.0",
+ "url-join": "4.0.0",
+ "wrap-ansi": "^7.0.0",
+ "ws": "^8.12.1"
+ },
+ "bin": {
+ "expo-internal": "build/bin/cli"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "node_modules/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/cli/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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/@expo/cli/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/@expo/cli/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "dependencies": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/@expo/config": {
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-8.5.4.tgz",
+ "integrity": "sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~7.8.2",
+ "@expo/config-types": "^50.0.0",
+ "@expo/json-file": "^8.2.37",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "slugify": "^1.3.4",
+ "sucrase": "3.34.0"
+ }
+ },
+ "node_modules/@expo/config-plugins": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.4.tgz",
+ "integrity": "sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==",
+ "dependencies": {
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/fingerprint": "^0.6.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/plist": "^0.1.0",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.0"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-types": {
+ "version": "50.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz",
+ "integrity": "sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw=="
+ },
+ "node_modules/@expo/config/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/config/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/@expo/config/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/config/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/@expo/devcert": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
+ "dependencies": {
+ "application-config-path": "^0.1.0",
+ "command-exists": "^1.2.4",
+ "debug": "^3.1.0",
+ "eol": "^0.9.1",
+ "get-port": "^3.2.0",
+ "glob": "^7.1.2",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "password-prompt": "^1.0.4",
+ "rimraf": "^2.6.2",
+ "sudo-prompt": "^8.2.0",
+ "tmp": "^0.0.33",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@expo/devcert/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/@expo/env": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.2.1.tgz",
+ "integrity": "sha512-deZmRS7Dvp18VM8s559dq/ZjPlV1D9vtLoLXwHmCK/JYOvtNptdKsfxcWjI7ewmo6ln2PqgNI9HRI74q6Wk2eA==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "debug": "^4.3.4",
+ "dotenv": "~16.0.3",
+ "dotenv-expand": "~10.0.0",
+ "getenv": "^1.0.0"
+ }
+ },
+ "node_modules/@expo/env/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/@expo/env/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/@expo/env/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/@expo/env/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/@expo/env/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/@expo/env/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/@expo/fingerprint": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz",
+ "integrity": "sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.4",
+ "find-up": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^3.1.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "fingerprint": "bin/cli.js"
+ }
+ },
+ "node_modules/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/image-utils": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.1.tgz",
+ "integrity": "sha512-EZb+VHSmw+a5s2hS9qksTcWylY0FDaIAVufcxoaRS9tHIXLjW5zcKW7Rhj9dSEbZbRVy9yXXdHKa3GQdUQIOFw==",
+ "dependencies": {
+ "@expo/spawn-async": "1.5.0",
+ "chalk": "^4.0.0",
+ "fs-extra": "9.0.0",
+ "getenv": "^1.0.0",
+ "jimp-compact": "0.16.1",
+ "node-fetch": "^2.6.0",
+ "parse-png": "^2.1.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "tempy": "0.3.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-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/@expo/image-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/@expo/image-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/@expo/image-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/@expo/image-utils/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/fs-extra": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/image-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/@expo/image-utils/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/image-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/@expo/image-utils/node_modules/temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/tempy": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "dependencies": {
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/@expo/image-utils/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/@expo/json-file": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz",
+ "integrity": "sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^2.2.2",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/@expo/json-file/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/metro-config": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.17.4.tgz",
+ "integrity": "sha512-PxqDMuVjXQeboa6Aj8kNj4iTxIpwpfoYlF803qOjf1LE1ePlREnWNwqy65ESCBnCmekYIO5hhm1Nksa+xCvuyg==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.5",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "@expo/config": "~8.5.0",
+ "@expo/env": "~0.2.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/spawn-async": "^1.7.2",
+ "babel-preset-fbjs": "^3.4.0",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "find-yarn-workspace-root": "~2.0.0",
+ "fs-extra": "^9.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.2.3",
+ "jsc-safe-url": "^0.2.4",
+ "lightningcss": "~1.19.0",
+ "postcss": "~8.4.32",
+ "resolve-from": "^5.0.0",
+ "sucrase": "3.34.0"
+ },
+ "peerDependencies": {
+ "@react-native/babel-preset": "*"
+ }
+ },
+ "node_modules/@expo/metro-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/@expo/metro-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/@expo/metro-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/@expo/metro-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/@expo/metro-config/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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/@expo/metro-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/@expo/metro-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/@expo/osascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.0.tgz",
+ "integrity": "sha512-bOhuFnlRaS7CU33+rFFIWdcET/Vkyn1vsN8BYFwCDEF5P1fVVvYN7bFOsQLTMD3nvi35C1AGmtqUr/Wfv8Xaow==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "exec-async": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/package-manager": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.4.2.tgz",
+ "integrity": "sha512-LKdo/6y4W7llZ6ghsg1kdx2CeH/qR/c6QI/JI8oPUvppsZoeIYjSkdflce978fAMfR8IXoi0wt0jA2w0kWpwbg==",
+ "dependencies": {
+ "@expo/json-file": "^8.2.37",
+ "@expo/spawn-async": "^1.5.0",
+ "ansi-regex": "^5.0.0",
+ "chalk": "^4.0.0",
+ "find-up": "^5.0.0",
+ "find-yarn-workspace-root": "~2.0.0",
+ "js-yaml": "^3.13.1",
+ "micromatch": "^4.0.2",
+ "npm-package-arg": "^7.0.0",
+ "ora": "^3.4.0",
+ "split": "^1.0.1",
+ "sudo-prompt": "9.1.1"
+ }
+ },
+ "node_modules/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/node_modules/sudo-prompt": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
+ "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
+ },
+ "node_modules/@expo/package-manager/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/@expo/plist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz",
+ "integrity": "sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.7",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config": {
+ "version": "6.7.4",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz",
+ "integrity": "sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "debug": "^4.3.1",
+ "fs-extra": "^9.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "xml2js": "0.6.0"
+ },
+ "peerDependencies": {
+ "expo-modules-autolinking": ">=0.8.1"
+ }
+ },
+ "node_modules/@expo/prebuild-config/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/@expo/prebuild-config/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/prebuild-config/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/@expo/rudder-sdk-node": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz",
+ "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==",
+ "dependencies": {
+ "@expo/bunyan": "^4.0.0",
+ "@segment/loosely-validate-event": "^2.0.0",
+ "fetch-retry": "^4.1.1",
+ "md5": "^2.2.1",
+ "node-fetch": "^2.6.1",
+ "remove-trailing-slash": "^0.1.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/sdk-runtime-versions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz",
+ "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="
+ },
+ "node_modules/@expo/spawn-async": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
+ "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/vector-icons": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.0.tgz",
+ "integrity": "sha512-5orm59pdnBQlovhU9k4DbjMUZBHNlku7IRgFY56f7pcaaCnXq9yaLJoOQl9sMwNdFzf4gnkTyHmR5uN10mI9rA=="
+ },
+ "node_modules/@expo/xcpretty": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz",
+ "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==",
+ "dependencies": {
+ "@babel/code-frame": "7.10.4",
+ "chalk": "^4.1.0",
+ "find-up": "^5.0.0",
+ "js-yaml": "^4.1.0"
+ },
+ "bin": {
+ "excpretty": "build/cli.js"
+ }
+ },
+ "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "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==",
+ "dev": true
+ },
+ "node_modules/@ide/backoff": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@ide/backoff/-/backoff-1.0.0.tgz",
+ "integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g=="
+ },
+ "node_modules/@isaacs/ttlcache": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz",
+ "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jest/create-cache-key-function": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz",
+ "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==",
+ "dependencies": {
+ "@jest/types": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "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=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@messageformat/core": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.1.0.tgz",
+ "integrity": "sha512-UxAnjecnRG4u2iaggwIyylYPHmk5BTErJcKmWyAKTXqYgSW1bFLp4D7fIzuh6bk17Qfcmf3qtufdrstCB23nBA==",
+ "dependencies": {
+ "@messageformat/date-skeleton": "^1.0.0",
+ "@messageformat/number-skeleton": "^1.0.0",
+ "@messageformat/parser": "^5.0.0",
+ "@messageformat/runtime": "^3.0.1",
+ "make-plural": "^7.0.0",
+ "safe-identifier": "^0.4.1"
+ }
+ },
+ "node_modules/@messageformat/date-skeleton": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz",
+ "integrity": "sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg=="
+ },
+ "node_modules/@messageformat/number-skeleton": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz",
+ "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg=="
+ },
+ "node_modules/@messageformat/parser": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.0.tgz",
+ "integrity": "sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==",
+ "dependencies": {
+ "moo": "^0.5.1"
+ }
+ },
+ "node_modules/@messageformat/runtime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz",
+ "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==",
+ "dependencies": {
+ "make-plural": "^7.0.0"
+ }
+ },
+ "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/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/fs/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/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/@react-native-async-storage/async-storage": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz",
+ "integrity": "sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==",
+ "dependencies": {
+ "merge-options": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react-native": "^0.0.0-0 || >=0.60 <1.0"
+ }
+ },
+ "node_modules/@react-native-community/cli": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz",
+ "integrity": "sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==",
+ "dependencies": {
+ "@react-native-community/cli-clean": "12.3.2",
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-doctor": "12.3.2",
+ "@react-native-community/cli-hermes": "12.3.2",
+ "@react-native-community/cli-plugin-metro": "12.3.2",
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native-community/cli-types": "12.3.2",
+ "chalk": "^4.1.2",
+ "commander": "^9.4.1",
+ "deepmerge": "^4.3.0",
+ "execa": "^5.0.0",
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.1.0",
+ "graceful-fs": "^4.1.3",
+ "prompts": "^2.4.2",
+ "semver": "^7.5.2"
+ },
+ "bin": {
+ "react-native": "build/bin.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz",
+ "integrity": "sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean/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-native-community/cli-clean/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-native-community/cli-clean/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-native-community/cli-clean/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-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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-native-community/cli-config": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.2.tgz",
+ "integrity": "sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "cosmiconfig": "^5.1.0",
+ "deepmerge": "^4.3.0",
+ "glob": "^7.1.3",
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-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/@react-native-community/cli-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/@react-native-community/cli-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/@react-native-community/cli-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/@react-native-community/cli-config/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-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/@react-native-community/cli-config/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-config/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-config/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-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/@react-native-community/cli-debugger-ui": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz",
+ "integrity": "sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==",
+ "dependencies": {
+ "serve-static": "^1.13.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz",
+ "integrity": "sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==",
+ "dependencies": {
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "command-exists": "^1.2.8",
+ "deepmerge": "^4.3.0",
+ "envinfo": "^7.10.0",
+ "execa": "^5.0.0",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5",
+ "node-stream-zip": "^1.9.1",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1",
+ "yaml": "^2.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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-native-community/cli-doctor/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-native-community/cli-doctor/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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-native-community/cli-doctor/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-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/ora/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/@react-native-community/cli-doctor/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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-native-community/cli-doctor/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/@react-native-community/cli-doctor/node_modules/yaml": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@react-native-community/cli-hermes": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz",
+ "integrity": "sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==",
+ "dependencies": {
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5"
+ }
+ },
+ "node_modules/@react-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-platform-android": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz",
+ "integrity": "sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.2.4",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-android/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-native-community/cli-platform-android/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-native-community/cli-platform-android/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-native-community/cli-platform-android/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-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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-native-community/cli-platform-ios": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz",
+ "integrity": "sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.0.12",
+ "glob": "^7.1.3",
+ "ora": "^5.4.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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-native-community/cli-platform-ios/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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-native-community/cli-plugin-metro": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz",
+ "integrity": "sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g=="
+ },
+ "node_modules/@react-native-community/cli-server-api": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz",
+ "integrity": "sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==",
+ "dependencies": {
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "compression": "^1.7.1",
+ "connect": "^3.6.5",
+ "errorhandler": "^1.5.1",
+ "nocache": "^3.0.1",
+ "pretty-format": "^26.6.2",
+ "serve-static": "^1.13.1",
+ "ws": "^7.5.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/@react-native-community/cli-tools": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz",
+ "integrity": "sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==",
+ "dependencies": {
+ "appdirsjs": "^1.2.4",
+ "chalk": "^4.1.2",
+ "find-up": "^5.0.0",
+ "mime": "^2.4.1",
+ "node-fetch": "^2.6.0",
+ "open": "^6.2.0",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "shell-quote": "^1.7.3",
+ "sudo-prompt": "^9.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/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/@react-native-community/cli-tools/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/@react-native-community/cli-tools/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/@react-native-community/cli-tools/node_modules/open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+ "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
+ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ },
+ "node_modules/@react-native-community/cli-tools/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-native-community/cli-tools/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/@react-native-community/cli-types": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.2.tgz",
+ "integrity": "sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==",
+ "dependencies": {
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli/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-native-community/cli/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-native-community/cli/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-native-community/cli/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-native-community/cli/node_modules/commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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-native-community/cli/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/@react-native-community/cli/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli/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-native-community/cli/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/@react-native-community/cli/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/@react-native-community/masked-view": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.11.tgz",
+ "integrity": "sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==",
+ "deprecated": "Repository was moved to @react-native-masked-view/masked-view",
+ "peerDependencies": {
+ "react": ">=16.0",
+ "react-native": ">=0.57"
+ }
+ },
+ "node_modules/@react-native/assets-registry": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz",
+ "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/babel-plugin-codegen": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz",
+ "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==",
+ "dependencies": {
+ "@react-native/codegen": "0.73.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/babel-preset": {
+ "version": "0.73.21",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz",
+ "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.18.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.18.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.20.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.20.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.20.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@react-native/babel-plugin-codegen": "0.73.4",
+ "babel-plugin-transform-flow-enums": "^0.0.2",
+ "react-refresh": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native/codegen": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz",
+ "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==",
+ "dependencies": {
+ "@babel/parser": "^7.20.0",
+ "flow-parser": "^0.206.0",
+ "glob": "^7.1.1",
+ "invariant": "^2.2.4",
+ "jscodeshift": "^0.14.0",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin": {
+ "version": "0.73.16",
+ "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz",
+ "integrity": "sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==",
+ "dependencies": {
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native/dev-middleware": "0.73.7",
+ "@react-native/metro-babel-transformer": "0.73.15",
+ "chalk": "^4.0.0",
+ "execa": "^5.1.1",
+ "metro": "^0.80.3",
+ "metro-config": "^0.80.3",
+ "metro-core": "^0.80.3",
+ "node-fetch": "^2.2.0",
+ "readline": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": {
+ "version": "0.73.7",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz",
+ "integrity": "sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-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/@react-native/community-cli-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/@react-native/community-cli-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/@react-native/community-cli-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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native/community-cli-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/@react-native/debugger-frontend": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz",
+ "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/dev-middleware": {
+ "version": "0.73.8",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz",
+ "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0",
+ "ws": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/dev-middleware/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/@react-native/dev-middleware/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/dev-middleware/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native/dev-middleware/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/@react-native/gradle-plugin": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz",
+ "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/js-polyfills": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz",
+ "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/metro-babel-transformer": {
+ "version": "0.73.15",
+ "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz",
+ "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@react-native/babel-preset": "0.73.21",
+ "hermes-parser": "0.15.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native/normalize-color": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz",
+ "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA=="
+ },
+ "node_modules/@react-native/normalize-colors": {
+ "version": "0.73.2",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz",
+ "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w=="
+ },
+ "node_modules/@react-native/virtualized-lists": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz",
+ "integrity": "sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/bottom-tabs": {
+ "version": "6.5.7",
+ "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz",
+ "integrity": "sha512-9oZYyRu2z7+1pr2dX5V54rHFPmlj4ztwQxFe85zwpnGcPtGIsXj7VCIdlHnjRHJBBFCszvJGQpYY6/G2+DfD+A==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/core": {
+ "version": "6.4.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz",
+ "integrity": "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ==",
+ "dependencies": {
+ "@react-navigation/routers": "^6.1.8",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.5"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/@react-navigation/drawer": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.2.tgz",
+ "integrity": "sha512-6qt4guBdz7bkdo/8BLSCcFNdQdSPYyNn05D9cD+VCY3mGThSiD8bRiP9ju+64im7LsSU+bNWXaP8RxA/FtTVQg==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-reanimated": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/elements": {
+ "version": "1.3.17",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.17.tgz",
+ "integrity": "sha512-sui8AzHm6TxeEvWT/NEXlz3egYvCUog4tlXA4Xlb2Vxvy3purVXDq/XsM56lJl344U5Aj/jDzkVanOTMWyk4UA==",
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/material-top-tabs": {
+ "version": "5.3.19",
+ "resolved": "https://registry.npmjs.org/@react-navigation/material-top-tabs/-/material-top-tabs-5.3.19.tgz",
+ "integrity": "sha512-I7bEF99THxxcY7kCUZ5pPmwXr6kgo6L2sg3P1YJo+CcBWSGvGiHyNbZXNs15HuKRuFvEuueChNV9n8QuKBWbDA==",
+ "dependencies": {
+ "color": "^3.1.3"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^5.0.5",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-reanimated": ">= 1.0.0",
+ "react-native-tab-view": ">= 2.0.0"
+ }
+ },
+ "node_modules/@react-navigation/material-top-tabs/node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/@react-navigation/native": {
+ "version": "6.1.6",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz",
+ "integrity": "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==",
+ "dependencies": {
+ "@react-navigation/core": "^6.4.8",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/native-stack": {
+ "version": "6.9.12",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.12.tgz",
+ "integrity": "sha512-kS2zXCWP0Rgt7uWaCUKrRl7U2U1Gp19rM1kyRY2YzBPXhWGVPjQ2ygBp88CTQzjgy8M07H/79jvGiZ0mlEJI+g==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/routers": {
+ "version": "6.1.9",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz",
+ "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==",
+ "dependencies": {
+ "nanoid": "^3.1.23"
+ }
+ },
+ "node_modules/@segment/loosely-validate-event": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
+ "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
+ "dependencies": {
+ "component-type": "^1.2.1",
+ "join-component": "^1.1.0"
+ }
+ },
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.81.1.tgz",
+ "integrity": "sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/browser": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.81.1.tgz",
+ "integrity": "sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/replay": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/cli": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.25.2.tgz",
+ "integrity": "sha512-lgt1QPaCfs/QZNXwyw3gvuBR2/CLwFSdU/oT7Bpxwizz8XVXhlKS98zJF1UVCy7SecsDSoOI0Z+B+X658cpquQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "sentry-cli": "bin/sentry-cli"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@sentry/cli-darwin": "2.25.2",
+ "@sentry/cli-linux-arm": "2.25.2",
+ "@sentry/cli-linux-arm64": "2.25.2",
+ "@sentry/cli-linux-i686": "2.25.2",
+ "@sentry/cli-linux-x64": "2.25.2",
+ "@sentry/cli-win32-i686": "2.25.2",
+ "@sentry/cli-win32-x64": "2.25.2"
+ }
+ },
+ "node_modules/@sentry/cli-darwin": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.25.2.tgz",
+ "integrity": "sha512-o1d5NnVUrc1dxDm56k7Co8tSTcOuxbApdxweVXXsiq20HblZCyIi7WxxRkAg4RfKx594sKGiw9uCVvECi+9UpA==",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.25.2.tgz",
+ "integrity": "sha512-n398jd87Ymejt5k/6RjCEjXAvntOWuqhBDANxzhgr5/9FzbODJ844g1mOpcxiIlduzKSzWlPbTEKQulMp2Mt4w==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.25.2.tgz",
+ "integrity": "sha512-lm5jaigV6xu9Gwo0wNk+bX6yVkl5k3gNXcSXcKCISFo+Teb7Zhf9IyXANPm4VY2DdiZAjPJt8gS1bu+Mn7irtQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.25.2.tgz",
+ "integrity": "sha512-/YYx2gfqO5mkxyBgFcnDbZzkZ2+2xNarwrqWcqq3Qw0XlO9DWAQB2G+twV1RW/UfSU6fFIWErn94efh2EWmyzQ==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.25.2.tgz",
+ "integrity": "sha512-rRafqy84R5mYA4JEfNsUeN10af5euJnK7fgqYM0mJIaplHC2YEXT9aUYWoryWPZiYqmdNUhsA6lX7iynSW9pZw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.25.2.tgz",
+ "integrity": "sha512-plT/gi41F+67g9AwrEm4avRXnjCtHCcnRnJ6zPu/iINGap8mvYQJSU/qM0oGwV6hRGg3JJN66XIvJPIuIs8P8w==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.25.2.tgz",
+ "integrity": "sha512-Mb6mAyPi9gIfpzF5MTk0JXgFP9nxka3Fb7JYn6AY4RW++sOjapkTrcXL2Gp3ZfQkWj5rFTgln4+eNmZPsD2gzA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.81.1.tgz",
+ "integrity": "sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==",
+ "dependencies": {
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/hub": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.81.1.tgz",
+ "integrity": "sha512-25cvsI3HKiRLJBZGFC8ntuy7/yB8M1w8YLTjr3tIqydYmjFUX7f18w0iuWEtd204d8OQSPBJDapbGMdfkE5x6w==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/integrations": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.81.1.tgz",
+ "integrity": "sha512-DN5ONn0/LX5HHVPf1EBGHFssIZaZmLgkqUIeMqCNYBpB4DiOrJANnGwTcWKDPphqhdPxjnPv9AGRLaU0PdvvZQ==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "localforage": "^1.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/react": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.81.1.tgz",
+ "integrity": "sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw==",
+ "dependencies": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "hoist-non-react-statics": "^3.3.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "react": "15.x || 16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/@sentry/react-native": {
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-5.17.0.tgz",
+ "integrity": "sha512-d0TLASMcpUtvw0A8zNznRyCskfH0kwfb3GzqMXXpfPJAG8vsBnY15EFOIc+czOLt6FbV9o3567bHYWhSW51Ssg==",
+ "dependencies": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/cli": "2.25.2",
+ "@sentry/core": "7.81.1",
+ "@sentry/hub": "7.81.1",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "bin": {
+ "sentry-expo-upload-sourcemaps": "scripts/expo-upload-sourcemaps.js"
+ },
+ "peerDependencies": {
+ "expo": ">=49.0.0",
+ "react": ">=17.0.0",
+ "react-native": ">=0.65.0"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@sentry/replay": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.81.1.tgz",
+ "integrity": "sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry/types": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.81.1.tgz",
+ "integrity": "sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.81.1.tgz",
+ "integrity": "sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==",
+ "dependencies": {
+ "@sentry/types": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@types/hammerjs": {
+ "version": "2.0.45",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz",
+ "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ=="
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.20",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
+ "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "dev": true
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+ },
+ "node_modules/@types/react": {
+ "version": "18.2.38",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz",
+ "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-native": {
+ "version": "0.70.18",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.18.tgz",
+ "integrity": "sha512-M06e2opOY8PyLVfVSWd70X2yrIDZrgiOw677HsOrI/fT27aqvKGuFE44tDUBLEvQ8XEPC+T5pW2h5Az6gX7hdA==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-native-vector-icons": {
+ "version": "6.4.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz",
+ "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==",
+ "dependencies": {
+ "@types/react": "*",
+ "@types/react-native": "^0.70"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.7.tgz",
+ "integrity": "sha512-8g25Nl3AuB1KulTlSUsUhUo/oBgBU6XIXQ+XURpeioEbEJvkO7qI4vDfREv3vJYHHzqXjcAHvoJy4pTtSQNZtA=="
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+ },
+ "node_modules/@urql/core": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz",
+ "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.0",
+ "wonka": "^4.0.14"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/@urql/exchange-retry": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz",
+ "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==",
+ "dependencies": {
+ "@urql/core": ">=2.3.1",
+ "wonka": "^4.0.14"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/@use-expo/font": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@use-expo/font/-/font-2.0.0.tgz",
+ "integrity": "sha512-oOJ2uaRyZNQg7PnQviz7nBcdrRL38zxScab4ktgtI4asa6G0dHW9wg307uJJmn0sHS04Yqtw+m0EOjDcGw3iWg==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "peerDependencies": {
+ "expo-font": ">=8.1.0"
+ }
+ },
+ "node_modules/@wry/context": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.3.tgz",
+ "integrity": "sha512-Nl8WTesHp89RF803Se9X3IiHjdmLBrIvPMaJkl+rKVJAYyPsz1TEUbu89943HpvujtSJgDUx9W4vZw3K1Mr3sA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/equality": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.6.tgz",
+ "integrity": "sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/trie": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz",
+ "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz",
+ "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "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": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "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/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": "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/anser": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
+ "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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-fragments": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
+ "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
+ "dependencies": {
+ "colorette": "^1.0.7",
+ "slice-ansi": "^2.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ },
+ "node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+ },
+ "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==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/appdirsjs": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
+ "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ },
+ "node_modules/application-config-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ },
+ "node_modules/arg": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
+ "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg=="
+ },
+ "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/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+ "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice/node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice/node_modules/es-abstract/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/arraybuffer.prototype.slice/node_modules/es-abstract/node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice/node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice/node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice/node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice/node_modules/which-typed-array/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/assert": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
+ "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
+ "dependencies": {
+ "es6-object-assign": "^1.1.0",
+ "is-nan": "^1.2.1",
+ "object-is": "^1.0.1",
+ "util": "^0.12.0"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
+ "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "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/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/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/babel-core": {
+ "version": "7.0.0-bridge.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
+ "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.8.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz",
+ "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.4.3",
+ "core-js-compat": "^3.33.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-react-native-web": {
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz",
+ "integrity": "sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw=="
+ },
+ "node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ },
+ "node_modules/babel-plugin-transform-flow-enums": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
+ "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
+ "dependencies": {
+ "@babel/plugin-syntax-flow": "^7.12.1"
+ }
+ },
+ "node_modules/babel-preset-expo": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-10.0.1.tgz",
+ "integrity": "sha512-uWIGmLfbP3dS5+8nesxaW6mQs41d4iP7X82ZwRdisB/wAhKQmuJM9Y1jQe4006uNYkw6Phf2TT03ykLVro7KuQ==",
+ "dependencies": {
+ "@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.12.13",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/preset-env": "^7.20.0",
+ "@babel/preset-react": "^7.22.15",
+ "@react-native/babel-preset": "^0.73.18",
+ "babel-plugin-react-native-web": "~0.18.10",
+ "react-refresh": "0.14.0"
+ }
+ },
+ "node_modules/babel-preset-fbjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
+ "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
+ "dependencies": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
+ },
+ "node_modules/badgin": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.3.tgz",
+ "integrity": "sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw=="
+ },
+ "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/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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/better-opn": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
+ "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
+ "dependencies": {
+ "open": "^8.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/blueimp-md5": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
+ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
+ },
+ "node_modules/boolean": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
+ },
+ "node_modules/bplist-creator": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
+ "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==",
+ "dependencies": {
+ "stream-buffers": "2.2.x"
+ }
+ },
+ "node_modules/bplist-parser": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
+ "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "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/browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "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": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "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": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dependencies": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ },
+ "node_modules/buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ },
+ "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/builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ=="
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cacache/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/cacache/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/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/cacache/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/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/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-callsite/node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/caniuse-lite": {
+ "version": "1.0.30001589",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
+ "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "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/chalk/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chrome-launcher": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
+ "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0"
+ },
+ "bin": {
+ "print-chrome-path": "bin/print-chrome-path.js"
+ },
+ "engines": {
+ "node": ">=12.13.0"
+ }
+ },
+ "node_modules/chromium-edge-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz",
+ "integrity": "sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "node_modules/chromium-edge-launcher/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chromium-edge-launcher/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/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color/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/color/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/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "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/command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+ },
+ "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/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "node_modules/compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
+ "node_modules/component-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
+ "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/connect/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/connect/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
+ "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==",
+ "dependencies": {
+ "browserslist": "^4.22.3"
+ },
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "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-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "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/crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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-in-js-utils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
+ "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
+ "dependencies": {
+ "hyphenate-style-name": "^1.0.3"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
+ "node_modules/dag-map": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
+ "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/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/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dependencies": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defaults/node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "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/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.2.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "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/del/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/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/denodeify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
+ "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
+ },
+ "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/deprecated-react-native-prop-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz",
+ "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==",
+ "dependencies": {
+ "@react-native/normalize-colors": "^0.73.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "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-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/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/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/dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/dotenv-expand": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
+ "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/electron-to-chromium": {
+ "version": "1.4.680",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz",
+ "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A=="
+ },
+ "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/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/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/env-editor": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
+ "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/envinfo": {
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
+ "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eol": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "dependencies": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.0",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
+ "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "has-tostringtag": "^1.0.0",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag/node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/es6-object-assign": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+ "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw=="
+ },
+ "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-standard": {
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz",
+ "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==",
+ "dev": true,
+ "peerDependencies": {
+ "eslint": ">=6.2.2",
+ "eslint-plugin-import": ">=2.18.0",
+ "eslint-plugin-node": ">=9.1.0",
+ "eslint-plugin-promise": ">=4.2.1",
+ "eslint-plugin-standard": ">=4.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dev": true,
+ "dependencies": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
+ "has": "^1.0.3",
+ "is-core-module": "^2.11.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-node": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "dev": true,
+ "dependencies": {
+ "eslint-plugin-es": "^3.0.0",
+ "eslint-utils": "^2.0.0",
+ "ignore": "^5.1.1",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.10.1",
+ "semver": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-plugin-node/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/eslint-plugin-promise": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz",
+ "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.32.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
+ "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "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.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.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/eslint-plugin-standard": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz",
+ "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==",
+ "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"
+ }
+ ],
+ "peerDependencies": {
+ "eslint": ">=5.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-scope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/node_modules/@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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==",
+ "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/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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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/eslint/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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/eslint/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/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.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==",
+ "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/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "node_modules/exec-async": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz",
+ "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw=="
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/execa/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/execa/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/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/expo": {
+ "version": "50.0.7",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-50.0.7.tgz",
+ "integrity": "sha512-lTqIrKOUTKHLdTuAaJzZihi1v7F8Ix1dOXVWMpToDy9zPC/s+fet0fbyXdFUxYsCUyuEDIB9tvejrTYZk8Hm0Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/cli": "0.17.5",
+ "@expo/config": "8.5.4",
+ "@expo/config-plugins": "7.8.4",
+ "@expo/metro-config": "0.17.4",
+ "@expo/vector-icons": "^14.0.0",
+ "babel-preset-expo": "~10.0.1",
+ "expo-asset": "~9.0.2",
+ "expo-file-system": "~16.0.6",
+ "expo-font": "~11.10.3",
+ "expo-keep-awake": "~12.8.2",
+ "expo-modules-autolinking": "1.10.3",
+ "expo-modules-core": "1.11.9",
+ "fbemitter": "^3.0.0",
+ "whatwg-url-without-unicode": "8.0.0-3"
+ },
+ "bin": {
+ "expo": "bin/cli"
+ }
+ },
+ "node_modules/expo-application": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.8.3.tgz",
+ "integrity": "sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-asset": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-9.0.2.tgz",
+ "integrity": "sha512-PzYKME1MgUOoUvwtdzhAyXkjXOXGiSYqGKG/MsXwWr0Ef5wlBaBm2DCO9V6KYbng5tBPFu6hTjoRNil1tBOSow==",
+ "dependencies": {
+ "@react-native/assets-registry": "~0.73.1",
+ "blueimp-md5": "^2.10.0",
+ "expo-constants": "~15.4.0",
+ "expo-file-system": "~16.0.0",
+ "invariant": "^2.2.4",
+ "md5-file": "^3.2.3"
+ }
+ },
+ "node_modules/expo-av": {
+ "version": "13.10.5",
+ "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-13.10.5.tgz",
+ "integrity": "sha512-w45oCoe+8PunDeM0rh/Ut6UaGh7OjEJOCjAiQy3nCxpA8FaXB17KaqpsvkAXIMvceHYWndH8+D29esUTS6wEsA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-constants": {
+ "version": "15.4.5",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-15.4.5.tgz",
+ "integrity": "sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg==",
+ "dependencies": {
+ "@expo/config": "~8.5.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-device": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/expo-device/-/expo-device-5.9.3.tgz",
+ "integrity": "sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w==",
+ "dependencies": {
+ "ua-parser-js": "^0.7.33"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-eas-client": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/expo-eas-client/-/expo-eas-client-0.11.2.tgz",
+ "integrity": "sha512-SY7rVFxb4ut/OMTgR7A39Jg+8+hXwQNRpZd+RBpB+B5XV2STj/pWXHnGFhBayEF4umI4SxrOvisY90rlPWVO9Q=="
+ },
+ "node_modules/expo-file-system": {
+ "version": "16.0.6",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-16.0.6.tgz",
+ "integrity": "sha512-ATCHL7nEg2WwKeamW/SDTR9jBEqM5wncFq594ftKS5QFmhKIrX48d9jyPFGnNq+6h8AGPg4QKh2KCA4OY49L4g==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-font": {
+ "version": "11.10.3",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.10.3.tgz",
+ "integrity": "sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ==",
+ "dependencies": {
+ "fontfaceobserver": "^2.1.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-json-utils": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.12.3.tgz",
+ "integrity": "sha512-4pypQdinpNc6XY9wsZk56njvzDh+B/9mISr7FPP3CVk1QGB1nSLh883/BCDSgnsephATZkC5HG+cdE60kCAR6A=="
+ },
+ "node_modules/expo-keep-awake": {
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz",
+ "integrity": "sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-localization": {
+ "version": "14.8.3",
+ "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-14.8.3.tgz",
+ "integrity": "sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw==",
+ "dependencies": {
+ "rtl-detect": "^1.0.2"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-manifests": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.13.2.tgz",
+ "integrity": "sha512-l0Sia1WmLULx8V41K8RzGLsFoTe4qqthPRGpHjItsYn8ZB6lRrdTBM9OYp2McIflgqN1HAimUCQMFIwJyH+UmA==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "expo-json-utils": "~0.12.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-modules-autolinking": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz",
+ "integrity": "sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "fast-glob": "^3.2.5",
+ "find-up": "^5.0.0",
+ "fs-extra": "^9.1.0"
+ },
+ "bin": {
+ "expo-modules-autolinking": "bin/expo-modules-autolinking.js"
+ }
+ },
+ "node_modules/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-core": {
+ "version": "1.11.9",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.11.9.tgz",
+ "integrity": "sha512-GTUb81vcPaF+5MtlBI1u9IjrZbGdF1ZUwz3u8Gc+rOLBblkZ7pYsj2mU/tu+k0khTckI9vcH4ZBksXWvE1ncjQ==",
+ "dependencies": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "node_modules/expo-notifications": {
+ "version": "0.27.6",
+ "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.27.6.tgz",
+ "integrity": "sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA==",
+ "dependencies": {
+ "@expo/image-utils": "^0.4.0",
+ "@ide/backoff": "^1.0.0",
+ "abort-controller": "^3.0.0",
+ "assert": "^2.0.0",
+ "badgin": "^1.1.5",
+ "expo-application": "~5.8.0",
+ "expo-constants": "~15.4.0",
+ "fs-extra": "^9.1.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-print": {
+ "version": "12.8.1",
+ "resolved": "https://registry.npmjs.org/expo-print/-/expo-print-12.8.1.tgz",
+ "integrity": "sha512-u7RfOC21nllv0EBiyuqzrKB5pIjUAS5//2u0qn90WrHPEBa4Z7VkAQLtmOpWcHZfJ2iW33zsykherQhn2ZmRBA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-secure-store": {
+ "version": "12.8.1",
+ "resolved": "https://registry.npmjs.org/expo-secure-store/-/expo-secure-store-12.8.1.tgz",
+ "integrity": "sha512-Ju3jmkHby4w7rIzdYAt9kQyQ7HhHJ0qRaiQOInknhOLIltftHjEgF4I1UmzKc7P5RCfGNmVbEH729Pncp/sHXQ==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-status-bar": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.11.1.tgz",
+ "integrity": "sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg=="
+ },
+ "node_modules/expo-structured-headers": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-3.7.2.tgz",
+ "integrity": "sha512-/nGOyeWUXSUy4aIYKJTwQOznRNs0yKqKPAyEE6jtwvOl9qvfDWx9xskNtShioggBhFAssFkV6RBbPn+xZMQtvw=="
+ },
+ "node_modules/expo-updates": {
+ "version": "0.24.11",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.24.11.tgz",
+ "integrity": "sha512-SWpjZj7VGWBZJtbVj0gbGY7uZYrE7b+sRRoj/K1ma2ckHwXtAAB8gYI95Zp0joBdRNAbEtoMHYXP66Nrj5l8Ng==",
+ "dependencies": {
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "arg": "4.1.0",
+ "chalk": "^4.1.2",
+ "expo-eas-client": "~0.11.0",
+ "expo-manifests": "~0.13.0",
+ "expo-structured-headers": "~3.7.0",
+ "expo-updates-interface": "~0.15.1",
+ "fbemitter": "^3.0.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "expo-updates": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates-interface": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.15.3.tgz",
+ "integrity": "sha512-uLvsbaCmUsXgJqeen8rYH/jPr874ZUCXEvWpKHxrCv5/XATPlYEaDuecbNSGQ+cu78i6MdtB4BHOwZmoH2d47A==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates/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/expo-updates/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/expo-updates/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/expo-updates/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/expo-updates/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/expo-updates/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/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.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "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/fast-loops": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
+ "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
+ },
+ "node_modules/fast-printf": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz",
+ "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==",
+ "dependencies": {
+ "boolean": "^3.1.4"
+ },
+ "engines": {
+ "node": ">=10.0"
+ }
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz",
+ "integrity": "sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/naturalintelligence"
+ }
+ ],
+ "dependencies": {
+ "strnum": "^1.0.5"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fbemitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
+ "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
+ "dependencies": {
+ "fbjs": "^3.0.0"
+ }
+ },
+ "node_modules/fbjs": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz",
+ "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==",
+ "dependencies": {
+ "cross-fetch": "^3.1.5",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.30"
+ }
+ },
+ "node_modules/fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "node_modules/fetch-retry": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
+ "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
+ },
+ "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==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "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/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/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/find-cache-dir/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/find-cache-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/find-cache-dir/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/find-cache-dir/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/find-versions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
+ "dev": true,
+ "dependencies": {
+ "semver-regex": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-yarn-workspace-root": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
+ "dependencies": {
+ "micromatch": "^4.0.2"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flat-cache/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/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.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
+ },
+ "node_modules/flow-enums-runtime": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz",
+ "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="
+ },
+ "node_modules/flow-parser": {
+ "version": "0.206.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
+ "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/fontfaceobserver": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
+ "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "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/freeport-async": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz",
+ "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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": "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/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "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/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name/node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name/node_modules/es-abstract/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/function.prototype.name/node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name/node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name/node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name/node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name/node_modules/which-typed-array/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/getenv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz",
+ "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "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==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/globby/node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "node_modules/graphql": {
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
+ "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/graphql-tag": {
+ "version": "2.12.6",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
+ "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "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": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-property-descriptors/node_modules/get-intrinsic": {
+ "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.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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/hermes-estree": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz",
+ "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ=="
+ },
+ "node_modules/hermes-parser": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz",
+ "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==",
+ "dependencies": {
+ "hermes-estree": "0.15.0"
+ }
+ },
+ "node_modules/hermes-profile-transformer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
+ "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "dependencies": {
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/hosted-git-info": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
+ "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/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/hosted-git-info/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/html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "dependencies": {
+ "void-elements": "3.1.0"
+ }
+ },
+ "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/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/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "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/husky": {
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^4.0.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^5.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "bin": {
+ "husky-run": "bin/run.js",
+ "husky-upgrade": "lib/upgrader/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/husky"
+ }
+ },
+ "node_modules/husky/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/husky/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/husky/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "node_modules/husky/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/husky/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/husky/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/husky/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/hyphenate-style-name": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ },
+ "node_modules/i18n": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz",
+ "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==",
+ "dependencies": {
+ "@messageformat/core": "^3.0.0",
+ "debug": "^4.3.3",
+ "fast-printf": "^1.6.9",
+ "make-plural": "^7.0.0",
+ "math-interval-parser": "^2.0.1",
+ "mustache": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mashpie"
+ }
+ },
+ "node_modules/i18next": {
+ "version": "23.7.6",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.7.6.tgz",
+ "integrity": "sha512-O66BhXBw0fH4bEJMA0/klQKPEbcwAp5wjXEL803pdAynNbg2f4qhLIYlNHJyE7icrL6XmSZKPYaaXwy11kJ6YQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
+ "node_modules/i18next/node_modules/@babel/runtime": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz",
+ "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/i18next/node_modules/regenerator-runtime": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "dependencies": {
+ "queue": "6.0.2"
+ },
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=16.x"
+ }
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
+ "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/import-fresh/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/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "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/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ },
+ "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==",
+ "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/inline-style-prefixer": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz",
+ "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==",
+ "dependencies": {
+ "css-in-js-utils": "^3.1.0",
+ "fast-loops": "^1.1.3"
+ }
+ },
+ "node_modules/internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dependencies": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
+ "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
+ },
+ "node_modules/ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-ci/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "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-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-invalid-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
+ "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==",
+ "dependencies": {
+ "is-glob": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-invalid-path/node_modules/is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-invalid-path/node_modules/is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "dependencies": {
+ "is-extglob": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-nan": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "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": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true,
+ "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": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+ "dependencies": {
+ "which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array/node_modules/call-bind": {
+ "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.2",
+ "get-intrinsic": "^1.2.1",
+ "set-function-length": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array/node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-valid-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
+ "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==",
+ "dependencies": {
+ "is-invalid-path": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util/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/jest-message-util/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/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/jest-validate/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "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-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.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/jimp-compact": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
+ "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
+ },
+ "node_modules/joi": {
+ "version": "17.12.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz",
+ "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/join-component": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz",
+ "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
+ },
+ "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/jsc-android": {
+ "version": "250231.0.0",
+ "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz",
+ "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw=="
+ },
+ "node_modules/jsc-safe-url": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz",
+ "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="
+ },
+ "node_modules/jscodeshift": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
+ "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
+ "dependencies": {
+ "@babel/core": "^7.13.16",
+ "@babel/parser": "^7.13.16",
+ "@babel/plugin-proposal-class-properties": "^7.13.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
+ "@babel/plugin-proposal-optional-chaining": "^7.13.12",
+ "@babel/plugin-transform-modules-commonjs": "^7.13.8",
+ "@babel/preset-flow": "^7.13.13",
+ "@babel/preset-typescript": "^7.13.0",
+ "@babel/register": "^7.13.16",
+ "babel-core": "^7.0.0-bridge.0",
+ "chalk": "^4.1.2",
+ "flow-parser": "0.*",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.4",
+ "neo-async": "^2.5.0",
+ "node-dir": "^0.1.17",
+ "recast": "^0.21.0",
+ "temp": "^0.8.4",
+ "write-file-atomic": "^2.3.0"
+ },
+ "bin": {
+ "jscodeshift": "bin/jscodeshift.js"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "node_modules/jscodeshift/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/jscodeshift/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/jscodeshift/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/jscodeshift/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/jscodeshift/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/jscodeshift/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/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-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/json-schema-deref-sync": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz",
+ "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==",
+ "dependencies": {
+ "clone": "^2.1.2",
+ "dag-map": "~1.0.0",
+ "is-valid-path": "^0.1.1",
+ "lodash": "^4.17.13",
+ "md5": "~2.2.0",
+ "memory-cache": "~0.2.0",
+ "traverse": "~0.6.6",
+ "valid-url": "~1.0.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/json-schema-deref-sync/node_modules/md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
+ "dependencies": {
+ "charenc": "~0.0.1",
+ "crypt": "~0.0.1",
+ "is-buffer": "~1.1.1"
+ }
+ },
+ "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/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "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/jsx-ast-utils": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
+ "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.5",
+ "object.assign": "^4.1.3"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "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/klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "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/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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/lighthouse-logger": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
+ "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
+ "dependencies": {
+ "debug": "^2.6.9",
+ "marky": "^1.2.2"
+ }
+ },
+ "node_modules/lighthouse-logger/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/lighthouse-logger/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/lightningcss": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz",
+ "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==",
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.19.0",
+ "lightningcss-darwin-x64": "1.19.0",
+ "lightningcss-linux-arm-gnueabihf": "1.19.0",
+ "lightningcss-linux-arm64-gnu": "1.19.0",
+ "lightningcss-linux-arm64-musl": "1.19.0",
+ "lightningcss-linux-x64-gnu": "1.19.0",
+ "lightningcss-linux-x64-musl": "1.19.0",
+ "lightningcss-win32-x64-msvc": "1.19.0"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz",
+ "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz",
+ "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz",
+ "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz",
+ "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz",
+ "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz",
+ "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz",
+ "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
+ "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "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/lint-staged": {
+ "version": "10.5.4",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz",
+ "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "commander": "^6.2.0",
+ "cosmiconfig": "^7.0.0",
+ "debug": "^4.2.0",
+ "dedent": "^0.7.0",
+ "enquirer": "^2.3.6",
+ "execa": "^4.1.0",
+ "listr2": "^3.2.2",
+ "log-symbols": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "^3.3.0"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/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/lint-staged/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/lint-staged/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/lint-staged/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/lint-staged/node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/lint-staged/node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/execa/node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/lint-staged/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/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/lint-staged/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lint-staged/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==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lint-staged/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/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/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/listr2/node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "dependencies": {
+ "lie": "3.1.1"
+ }
+ },
+ "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": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "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/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/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/log-update/node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-update/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/log-update/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/log-update/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/log-update/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
+ "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
+ "dependencies": {
+ "ansi-fragments": "^0.2.1",
+ "dayjs": "^1.8.15",
+ "yargs": "^15.1.0"
+ },
+ "bin": {
+ "logkitty": "bin/logkitty.js"
+ }
+ },
+ "node_modules/logkitty/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/logkitty/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/logkitty/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/logkitty/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/lottie-react-native": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-6.5.1.tgz",
+ "integrity": "sha512-pjih71P6qX6Ax5ucUBA+YJO7+fnveI581Bd8LmYeARm3spq3AnoGzEkrWaieM8odnK6WI4d5dwEJsxge/QjFPw==",
+ "peerDependencies": {
+ "@dotlottie/react-player": "^1.6.1",
+ "@lottiefiles/react-lottie-player": "^3.5.3",
+ "react": "*",
+ "react-native": ">=0.46",
+ "react-native-windows": ">=0.63.x"
+ },
+ "peerDependenciesMeta": {
+ "@dotlottie/react-player": {
+ "optional": true
+ },
+ "@lottiefiles/react-lottie-player": {
+ "optional": true
+ },
+ "react-native-windows": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/make-plural": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz",
+ "integrity": "sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw=="
+ },
+ "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/marky": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
+ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q=="
+ },
+ "node_modules/math-interval-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz",
+ "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/md5": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+ "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+ "dependencies": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "~1.1.6"
+ }
+ },
+ "node_modules/md5-file": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz",
+ "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==",
+ "dependencies": {
+ "buffer-alloc": "^1.1.0"
+ },
+ "bin": {
+ "md5-file": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/md5hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
+ "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
+ },
+ "node_modules/memoize-one": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
+ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
+ },
+ "node_modules/memory-cache": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz",
+ "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA=="
+ },
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/metro": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.6.tgz",
+ "integrity": "sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "accepts": "^1.3.7",
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "denodeify": "^1.2.1",
+ "error-stack-parser": "^2.0.6",
+ "graceful-fs": "^4.2.4",
+ "hermes-parser": "0.19.1",
+ "image-size": "^1.0.2",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "jsc-safe-url": "^0.2.2",
+ "lodash.throttle": "^4.1.1",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-config": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-file-map": "0.80.6",
+ "metro-resolver": "0.80.6",
+ "metro-runtime": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-symbolicate": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "metro-transform-worker": "0.80.6",
+ "mime-types": "^2.1.27",
+ "node-fetch": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "rimraf": "^3.0.2",
+ "serialize-error": "^2.1.0",
+ "source-map": "^0.5.6",
+ "strip-ansi": "^6.0.0",
+ "throat": "^5.0.0",
+ "ws": "^7.5.1",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "metro": "src/cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-babel-transformer": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.6.tgz",
+ "integrity": "sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "hermes-parser": "0.19.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-babel-transformer/node_modules/hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "node_modules/metro-babel-transformer/node_modules/hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "dependencies": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "node_modules/metro-cache": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.6.tgz",
+ "integrity": "sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==",
+ "dependencies": {
+ "metro-core": "0.80.6",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-cache-key": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.6.tgz",
+ "integrity": "sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-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==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/metro-config": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.6.tgz",
+ "integrity": "sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==",
+ "dependencies": {
+ "connect": "^3.6.5",
+ "cosmiconfig": "^5.0.5",
+ "jest-validate": "^29.6.3",
+ "metro": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-runtime": "0.80.6"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-config/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-config/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-config/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-config/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-core": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.6.tgz",
+ "integrity": "sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==",
+ "dependencies": {
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "0.80.6"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-file-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.6.tgz",
+ "integrity": "sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==",
+ "dependencies": {
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "micromatch": "^4.0.4",
+ "node-abort-controller": "^3.1.1",
+ "nullthrows": "^1.1.1",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/metro-file-map/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/metro-file-map/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro-minify-terser": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.6.tgz",
+ "integrity": "sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==",
+ "dependencies": {
+ "terser": "^5.15.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-resolver": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.6.tgz",
+ "integrity": "sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-runtime": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.6.tgz",
+ "integrity": "sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-source-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.6.tgz",
+ "integrity": "sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==",
+ "dependencies": {
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.80.6",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-source-map/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-symbolicate": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.6.tgz",
+ "integrity": "sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ },
+ "bin": {
+ "metro-symbolicate": "src/index.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-symbolicate/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-transform-plugins": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.6.tgz",
+ "integrity": "sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-transform-worker": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.6.tgz",
+ "integrity": "sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "metro": "0.80.6",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-minify-terser": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro/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/metro/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/metro/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/metro/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/metro/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/metro/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/metro/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/metro/node_modules/hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "node_modules/metro/node_modules/hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "dependencies": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "node_modules/metro/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro/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/metro/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro/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/metro/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "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": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/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/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/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/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/moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/moo": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
+ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q=="
+ },
+ "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/mustache": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
+ "bin": {
+ "mustache": "bin/mustache"
+ }
+ },
+ "node_modules/mv": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+ "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
+ "optional": true,
+ "dependencies": {
+ "mkdirp": "~0.5.1",
+ "ncp": "~2.0.0",
+ "rimraf": "~2.4.0"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/mv/node_modules/glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
+ "optional": true,
+ "dependencies": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mv/node_modules/rimraf": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+ "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
+ "optional": true,
+ "dependencies": {
+ "glob": "^6.0.1"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "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": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
+ "optional": true,
+ "bin": {
+ "ncp": "bin/ncp"
+ }
+ },
+ "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/nested-error-stacks": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz",
+ "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/nocache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
+ "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/node-abort-controller": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
+ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ=="
+ },
+ "node_modules/node-dir": {
+ "version": "0.1.17",
+ "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+ "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
+ "dependencies": {
+ "minimatch": "^3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10.5"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "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": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ },
+ "node_modules/node-stream-zip": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/antelle"
+ }
+ },
+ "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/npm-package-arg": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
+ "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==",
+ "dependencies": {
+ "hosted-git-info": "^3.0.2",
+ "osenv": "^0.1.5",
+ "semver": "^5.6.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "node_modules/npm-package-arg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
+ },
+ "node_modules/ob1": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.6.tgz",
+ "integrity": "sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
+ "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "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/opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "bin": {
+ "opencollective-postinstall": "index.js"
+ }
+ },
+ "node_modules/optimism": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz",
+ "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==",
+ "dependencies": {
+ "@wry/context": "^0.7.0",
+ "@wry/trie": "^0.3.0"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "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/ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+ "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dependencies": {
+ "chalk": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-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/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/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "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/parse-png": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz",
+ "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
+ "dependencies": {
+ "pngjs": "^3.3.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/password-prompt": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz",
+ "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==",
+ "dependencies": {
+ "ansi-escapes": "^4.3.2",
+ "cross-spawn": "^7.0.3"
+ }
+ },
+ "node_modules/patch-package": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz",
+ "integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==",
+ "dependencies": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^6.0.5",
+ "find-yarn-workspace-root": "^2.0.0",
+ "fs-extra": "^9.0.0",
+ "is-ci": "^2.0.0",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.6",
+ "open": "^7.4.2",
+ "rimraf": "^2.6.3",
+ "semver": "^5.6.0",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33",
+ "yaml": "^1.10.2"
+ },
+ "bin": {
+ "patch-package": "index.js"
+ },
+ "engines": {
+ "node": ">=10",
+ "npm": ">5"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/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/patch-package/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/patch-package/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/patch-package/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/patch-package/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/patch-package/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/patch-package/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/patch-package/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/patch-package/node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/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/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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "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-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/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/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "dependencies": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "node_modules/plist": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+ "dependencies": {
+ "@xmldom/xmldom": "^0.8.8",
+ "base64-js": "^1.5.1",
+ "xmlbuilder": "^15.1.1"
+ },
+ "engines": {
+ "node": ">=10.4.0"
+ }
+ },
+ "node_modules/plist/node_modules/@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/plist/node_modules/xmlbuilder": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
+ "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/prettier-config-standard": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-1.0.1.tgz",
+ "integrity": "sha512-S0zuixvAFlc0zruhYEDMsjt2VG/e5S5hSbqGuxTMWA0ygjII8EP9U7c/wsCQyjjAoaYG82bUsVmaSQ6veQ+u6g==",
+ "dev": true
+ },
+ "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-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/pretty-format/node_modules/@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/pretty-format/node_modules/@types/yargs": {
+ "version": "15.0.19",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
+ "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/pretty-format/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/pretty-format/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/pretty-format/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/pretty-format/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/pretty-format/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/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/pretty-format/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/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/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ },
+ "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-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/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qrcode-terminal": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
+ "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==",
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "dependencies": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "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/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/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-devtools-core": {
+ "version": "4.27.8",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.8.tgz",
+ "integrity": "sha512-KwoH8/wN/+m5wTItLnsgVraGNmFrcTWR3k1VimP1HjtMMw4CNF+F5vg4S/0tzTEKIdpCi2R7mPNTC+/dswZMgw==",
+ "dependencies": {
+ "shell-quote": "^1.6.1",
+ "ws": "^7"
+ }
+ },
+ "node_modules/react-devtools-core/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/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-freeze": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
+ "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=17.0.0"
+ }
+ },
+ "node_modules/react-i18next": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz",
+ "integrity": "sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==",
+ "dependencies": {
+ "@babel/runtime": "^7.22.5",
+ "html-parse-stringify": "^3.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 23.2.3",
+ "react": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "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-native": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.4.tgz",
+ "integrity": "sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==",
+ "dependencies": {
+ "@jest/create-cache-key-function": "^29.6.3",
+ "@react-native-community/cli": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native/assets-registry": "0.73.1",
+ "@react-native/codegen": "0.73.3",
+ "@react-native/community-cli-plugin": "0.73.16",
+ "@react-native/gradle-plugin": "0.73.4",
+ "@react-native/js-polyfills": "0.73.1",
+ "@react-native/normalize-colors": "0.73.2",
+ "@react-native/virtualized-lists": "0.73.4",
+ "abort-controller": "^3.0.0",
+ "anser": "^1.4.9",
+ "ansi-regex": "^5.0.0",
+ "base64-js": "^1.5.1",
+ "chalk": "^4.0.0",
+ "deprecated-react-native-prop-types": "^5.0.0",
+ "event-target-shim": "^5.0.1",
+ "flow-enums-runtime": "^0.0.6",
+ "invariant": "^2.2.4",
+ "jest-environment-node": "^29.6.3",
+ "jsc-android": "^250231.0.0",
+ "memoize-one": "^5.0.0",
+ "metro-runtime": "^0.80.3",
+ "metro-source-map": "^0.80.3",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1",
+ "pretty-format": "^26.5.2",
+ "promise": "^8.3.0",
+ "react-devtools-core": "^4.27.7",
+ "react-refresh": "^0.14.0",
+ "react-shallow-renderer": "^16.15.0",
+ "regenerator-runtime": "^0.13.2",
+ "scheduler": "0.24.0-canary-efb381bbf-20230505",
+ "stacktrace-parser": "^0.1.10",
+ "whatwg-fetch": "^3.0.0",
+ "ws": "^6.2.2",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "react-native": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": "18.2.0"
+ }
+ },
+ "node_modules/react-native-countdown-component": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/react-native-countdown-component/-/react-native-countdown-component-2.7.1.tgz",
+ "integrity": "sha512-H7D/YvMjY1hCJf9xFrNh5CsIwkcel/Suno2gYR6ulWwoa2xnUgmltFWoMyEIODsUy7lIK1KCPm+Zn26QajbRaw==",
+ "dependencies": {
+ "lodash": "^4.17.13",
+ "prop-types": "^15.5.8",
+ "sprintf-js": "^1.1.1"
+ }
+ },
+ "node_modules/react-native-countdown-component/node_modules/sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
+ },
+ "node_modules/react-native-elements": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-3.4.3.tgz",
+ "integrity": "sha512-VtZc25EecPZyUBER85zFK9ZbY6kkUdcm1ZwJ9hdoGSCr1R/GFgxor4jngOcSYeMvQ+qimd5No44OVJW3rSJECA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@types/react-native-vector-icons": "^6.4.6",
+ "color": "^3.1.2",
+ "deepmerge": "^4.2.2",
+ "hoist-non-react-statics": "^3.3.2",
+ "lodash.isequal": "^4.5.0",
+ "opencollective-postinstall": "^2.0.3",
+ "react-native-ratings": "8.0.4",
+ "react-native-size-matters": "^0.3.1"
+ },
+ "peerDependencies": {
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-vector-icons": ">7.0.0"
+ }
+ },
+ "node_modules/react-native-elements/node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/react-native-flash-message": {
+ "version": "0.1.24",
+ "resolved": "https://registry.npmjs.org/react-native-flash-message/-/react-native-flash-message-0.1.24.tgz",
+ "integrity": "sha512-OmhOTXPPjfh0kxAgncWSURHCTfVz2laKtKPK3ItNNXgZhoQV2pF2FBsS8SY2/ABcoChU9sEBjpMM638u2rmCIQ==",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "react-native-iphone-x-helper": "^1.3.0"
+ },
+ "peerDependencies": {
+ "prop-types": "^15.0 || ^16.0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gesture-handler": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.14.1.tgz",
+ "integrity": "sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==",
+ "dependencies": {
+ "@egjs/hammerjs": "^2.0.17",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-iphone-x-helper": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
+ "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
+ "peerDependencies": {
+ "react-native": ">=0.42.0"
+ }
+ },
+ "node_modules/react-native-keyboard-aware-scroll-view": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.9.5.tgz",
+ "integrity": "sha512-XwfRn+T/qBH9WjTWIBiJD2hPWg0yJvtaEw6RtPCa5/PYHabzBaWxYBOl0usXN/368BL1XktnZPh8C2lmTpOREA==",
+ "dependencies": {
+ "prop-types": "^15.6.2",
+ "react-native-iphone-x-helper": "^1.0.3"
+ },
+ "peerDependencies": {
+ "react-native": ">=0.48.4"
+ }
+ },
+ "node_modules/react-native-material-textfield": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.16.1.tgz",
+ "integrity": "sha512-pcV/ic3i6vYEODS7pvAMUYJ+evkzIB8cjXtSzkab9rBtYNGRpAlM0Yp8QNnjZ7foZqkj9Ynav0nguWcuJST10A==",
+ "dependencies": {
+ "prop-types": "^15.5.9"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0",
+ "react-native": ">=0.55.0"
+ }
+ },
+ "node_modules/react-native-ratings": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-8.0.4.tgz",
+ "integrity": "sha512-Xczu5lskIIRD6BEdz9A0jDRpEck/SFxRqiglkXi0u67yAtI1/pcJC76P4MukCbT8K4BPVl+42w83YqXBoBRl7A==",
+ "dependencies": {
+ "lodash": "^4.17.15"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-reanimated": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.6.3.tgz",
+ "integrity": "sha512-2KkkPozoIvDbJcHuf8qeyoLROXQxizSi+2CTCkuNVkVZOxxY4B0Omvgq61aOQhSZUh/649x1YHoAaTyGMGDJUw==",
+ "dependencies": {
+ "@babel/plugin-transform-object-assign": "^7.16.7",
+ "@babel/preset-typescript": "^7.16.7",
+ "convert-source-map": "^2.0.0",
+ "invariant": "^2.2.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0-0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0-0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0-0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0-0",
+ "@babel/plugin-transform-template-literals": "^7.0.0-0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-reanimated/node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "node_modules/react-native-safe-area-context": {
+ "version": "4.8.2",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.8.2.tgz",
+ "integrity": "sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-screens": {
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.29.0.tgz",
+ "integrity": "sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg==",
+ "dependencies": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-size-matters": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz",
+ "integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==",
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-swipe-gestures": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/react-native-swipe-gestures/-/react-native-swipe-gestures-1.0.5.tgz",
+ "integrity": "sha512-Ns7Bn9H/Tyw278+5SQx9oAblDZ7JixyzeOczcBK8dipQk2pD7Djkcfnf1nB/8RErAmMLL9iXgW0QHqiII8AhKw=="
+ },
+ "node_modules/react-native-tab-view": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-2.16.0.tgz",
+ "integrity": "sha512-ac2DmT7+l13wzIFqtbfXn4wwfgtPoKzWjjZyrK1t+T8sdemuUvD4zIt+UImg03fu3s3VD8Wh/fBrIdcqQyZJWg==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": "*",
+ "react-native-reanimated": "*"
+ }
+ },
+ "node_modules/react-native-web": {
+ "version": "0.19.10",
+ "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.10.tgz",
+ "integrity": "sha512-IQoHiTQq8egBCVVwmTrYcFLgEFyb4LMZYEktHn4k22JMk9+QTCEz5WTfvr+jdNoeqj/7rtE81xgowKbfGO74qg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.6",
+ "@react-native/normalize-color": "^2.1.0",
+ "fbjs": "^3.0.4",
+ "inline-style-prefixer": "^6.0.1",
+ "memoize-one": "^6.0.0",
+ "nullthrows": "^1.1.1",
+ "postcss-value-parser": "^4.2.0",
+ "styleq": "^0.1.3"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/react-native-web/node_modules/memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "node_modules/react-native/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-native/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-native/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-native/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-native/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-native/node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/react-native/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-native/node_modules/scheduler": {
+ "version": "0.24.0-canary-efb381bbf-20230505",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz",
+ "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/react-native/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-native/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
+ "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-shallow-renderer": {
+ "version": "16.15.0",
+ "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz",
+ "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ },
+ "node_modules/recast": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
+ "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
+ "dependencies": {
+ "ast-types": "0.15.2",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/recast/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/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.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
+ "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/remove-trailing-slash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
+ "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "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/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/requireg": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz",
+ "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==",
+ "dependencies": {
+ "nested-error-stacks": "~2.0.1",
+ "rc": "~1.2.7",
+ "resolve": "~1.7.1"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/requireg/node_modules/resolve": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
+ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "dependencies": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.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": "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.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/response-iterator": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
+ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "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/rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rtl-detect": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz",
+ "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ=="
+ },
+ "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-array-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
+ "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-array-concat/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "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/safe-identifier": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz",
+ "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="
+ },
+ "node_modules/safe-json-stringify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
+ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "optional": true
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+ },
+ "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/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
+ },
+ "node_modules/semver-regex": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz",
+ "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/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/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/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/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/sentry-expo": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/sentry-expo/-/sentry-expo-7.2.0.tgz",
+ "integrity": "sha512-stVE2B1RgHxpcup8XU1UIGhoI3cta63guExInl6WYx3d5HsvIu8PZ0yDJnJGflYi9cKPAUCxErIQXMTrS0JQEw==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.7.0",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/react-native": "5.17.0",
+ "@sentry/types": "7.81.1",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "peerDependencies": {
+ "expo": ">=47.0.0",
+ "expo-application": "*",
+ "expo-constants": "*",
+ "expo-device": "*"
+ }
+ },
+ "node_modules/sentry-expo/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sentry-expo/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/serialize-error": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
+ "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "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/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/simple-plist": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz",
+ "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==",
+ "dependencies": {
+ "bplist-creator": "0.1.0",
+ "bplist-parser": "0.3.1",
+ "plist": "^3.0.5"
+ }
+ },
+ "node_modules/simple-plist/node_modules/bplist-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "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/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/slice-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==",
+ "dev": true
+ },
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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-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/split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dependencies": {
+ "through": "2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "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.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "node_modules/stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "dependencies": {
+ "type-fest": "^0.7.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/stream-buffers": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
+ "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==",
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "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.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim/node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim/node_modules/es-abstract/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/string.prototype.trim/node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim/node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim/node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim/node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim/node_modules/which-typed-array/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend/node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend/node_modules/es-abstract/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/string.prototype.trimend/node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend/node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend/node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend/node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend/node_modules/which-typed-array/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart/node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart/node_modules/es-abstract/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/string.prototype.trimstart/node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart/node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart/node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart/node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart/node_modules/which-typed-array/node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "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/stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dev": true,
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-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/strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ },
+ "node_modules/structured-headers": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz",
+ "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="
+ },
+ "node_modules/styleq": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz",
+ "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="
+ },
+ "node_modules/subscriptions-transport-ws": {
+ "version": "0.9.19",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
+ "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
+ "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
+ "dependencies": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependencies": {
+ "graphql": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/sucrase": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "7.1.6",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sucrase/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/sucrase/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sudo-prompt": {
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
+ "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
+ },
+ "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.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "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/symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "dev": true,
+ "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/table/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/table/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/table/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/table/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==",
+ "dev": true
+ },
+ "node_modules/table/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/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/temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "dependencies": {
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/temp/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/tempy": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
+ "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "dependencies": {
+ "del": "^6.0.0",
+ "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/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/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.27.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
+ "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.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/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=="
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "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/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/traverse": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz",
+ "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+ },
+ "node_modules/ts-invariant": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
+ "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+ "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz",
+ "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA=="
+ },
+ "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-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.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/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ua-parser-js": {
+ "version": "0.7.35",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz",
+ "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "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/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA=="
+ },
+ "node_modules/use-latest-callback": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz",
+ "integrity": "sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==",
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "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==",
+ "dev": true
+ },
+ "node_modules/valid-url": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
+ "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA=="
+ },
+ "node_modules/validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "dependencies": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "node_modules/validate.js": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.13.1.tgz",
+ "integrity": "sha512-PnFM3xiZ+kYmLyTiMgTYmU7ZHkjBZz2/+F0DaALc/uUtVzdCt1wAosvYJ5hFQi/hz8O4zb52FQhHZRC+uVkJ+g=="
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vlq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
+ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "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-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/whatwg-url-without-unicode": {
+ "version": "8.0.0-3",
+ "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz",
+ "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==",
+ "dependencies": {
+ "buffer": "^5.4.3",
+ "punycode": "^2.1.1",
+ "webidl-conversions": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/whatwg-url-without-unicode/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/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==",
+ "dev": true,
+ "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/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "node_modules/which-pm-runs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wonka": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
+ "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg=="
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "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/xcode": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz",
+ "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==",
+ "dependencies": {
+ "simple-plist": "^1.1.0",
+ "uuid": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/xcode/node_modules/uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/xml2js": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
+ "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xml2js/node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz",
+ "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "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": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "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": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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"
+ }
+ },
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
+ "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
+ "dependencies": {
+ "zen-observable": "0.8.15"
+ }
+ }
+ }
+}
diff --git a/enatega-multivendor-restaurant/package.json b/enatega-multivendor-restaurant/package.json
new file mode 100644
index 0000000..30fe4eb
--- /dev/null
+++ b/enatega-multivendor-restaurant/package.json
@@ -0,0 +1,100 @@
+{
+ "main": "node_modules/expo/AppEntry.js",
+ "scripts": {
+ "start": "expo start --offline",
+ "android": "expo start --android",
+ "ios": "expo start --ios",
+ "web": "expo start --web",
+ "eject": "expo eject",
+ "format": "prettier --write '**/*.js'",
+ "lint:fix": "eslint . --ext .js --fix",
+ "postinstall": "patch-package",
+ "build:staging": "eas build --profile staging -p all",
+ "build:staging:android": "eas build --profile staging -p android",
+ "build:staging:ios": "eas build --profile staging -p ios",
+ "build:production": "eas build --profile production -p all",
+ "build:production:android": "eas build --profile production -p android",
+ "build:production:ios": "eas build --profile production -p ios",
+ "submit:production": "eas submit --profile production -p all",
+ "submit:production:android": "eas submit --profile production -p android",
+ "submit:production:ios": "eas submit --profile production -p ios",
+ "publish:staging": "ENVIRONMENT=staging expo publish --release-channel staging",
+ "publish:production": "ENVIRONMENT=production expo publish --release-channel production"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "*.js": [
+ "npm run format",
+ "npm run lint:fix"
+ ]
+ },
+ "dependencies": {
+ "@apollo/client": "^3.5.8",
+ "@expo/config-plugins": "~7.8.0",
+ "@react-native-async-storage/async-storage": "1.21.0",
+ "@react-native-community/masked-view": "0.1.11",
+ "@react-navigation/bottom-tabs": "^6.2.0",
+ "@react-navigation/drawer": "^6.3.1",
+ "@react-navigation/material-top-tabs": "^5.3.19",
+ "@react-navigation/native": "^6.0.8",
+ "@react-navigation/native-stack": "^6.5.0",
+ "@sentry/react-native": "5.17.0",
+ "@use-expo/font": "^2.0.0",
+ "expo": "~50.0.7",
+ "expo-av": "~13.10.5",
+ "expo-constants": "~15.4.5",
+ "expo-device": "~5.9.3",
+ "expo-localization": "~14.8.3",
+ "expo-notifications": "~0.27.6",
+ "expo-print": "~12.8.1",
+ "expo-secure-store": "~12.8.1",
+ "expo-status-bar": "~1.11.1",
+ "expo-updates": "~0.24.11",
+ "graphql": "^15.6.1",
+ "i18n": "^0.14.1",
+ "i18next": "^23.7.6",
+ "lottie-react-native": "6.5.1",
+ "moment": "^2.29.1",
+ "patch-package": "^6.2.2",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-i18next": "^13.5.0",
+ "react-native": "0.73.4",
+ "react-native-countdown-component": "^2.7.1",
+ "react-native-elements": "^3.4.2",
+ "react-native-flash-message": "^0.1.21",
+ "react-native-gesture-handler": "~2.14.0",
+ "react-native-keyboard-aware-scroll-view": "^0.9.5",
+ "react-native-material-textfield": "^0.16.1",
+ "react-native-reanimated": "~3.6.2",
+ "react-native-safe-area-context": "4.8.2",
+ "react-native-screens": "~3.29.0",
+ "react-native-swipe-gestures": "^1.0.5",
+ "react-native-tab-view": "^2.16.0",
+ "react-native-web": "~0.19.6",
+ "sentry-expo": "~7.2.0",
+ "subscriptions-transport-ws": "^0.9.16",
+ "validate.js": "^0.13.1"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.20.0",
+ "@expo/metro-config": "~0.17.1",
+ "babel-preset-expo": "^10.0.0",
+ "eslint": "^7.1.0",
+ "eslint-config-standard": "^14.1.1",
+ "eslint-plugin-import": "^2.20.2",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^4.2.1",
+ "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-standard": "^4.0.1",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.7",
+ "prettier": "2.0.5",
+ "prettier-config-standard": "^1.0.1"
+ },
+ "private": true
+}
diff --git a/enatega-multivendor-restaurant/patches/react-native-countdown-component+2.7.1.patch b/enatega-multivendor-restaurant/patches/react-native-countdown-component+2.7.1.patch
new file mode 100644
index 0000000..d634af1
--- /dev/null
+++ b/enatega-multivendor-restaurant/patches/react-native-countdown-component+2.7.1.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/react-native-countdown-component/index.js b/node_modules/react-native-countdown-component/index.js
+index b546b82..f714717 100644
+--- a/node_modules/react-native-countdown-component/index.js
++++ b/node_modules/react-native-countdown-component/index.js
+@@ -56,7 +56,7 @@ class CountDown extends React.Component {
+
+ componentWillUnmount() {
+ clearInterval(this.timer);
+- AppState.removeEventListener('change', this._handleAppStateChange);
++ AppState.addEventListener('change', this._handleAppStateChange);
+ }
+
+ componentDidUpdate(prevProps, prevState) {
diff --git a/enatega-multivendor-restaurant/patches/react-native-material-textfield+0.16.1.patch b/enatega-multivendor-restaurant/patches/react-native-material-textfield+0.16.1.patch
new file mode 100644
index 0000000..85dfb5b
--- /dev/null
+++ b/enatega-multivendor-restaurant/patches/react-native-material-textfield+0.16.1.patch
@@ -0,0 +1,51 @@
+diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
+index 0f85022..c12b3a6 100644
+--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
++++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
+@@ -11,7 +11,7 @@ export default class Affix extends PureComponent {
+
+ static propTypes = {
+ numberOfLines: PropTypes.number,
+- style: Animated.Text.propTypes.style,
++ style: PropTypes.object,
+
+ color: PropTypes.string.isRequired,
+ fontSize: PropTypes.number.isRequired,
+diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
+index 494bbaa..9bbf2e2 100644
+--- a/node_modules/react-native-material-textfield/src/components/field/index.js
++++ b/node_modules/react-native-material-textfield/src/components/field/index.js
+@@ -221,6 +221,7 @@ export default class TextField extends PureComponent {
+
+ let options = {
+ toValue: this.focusState(),
++ useNativeDriver: false,
+ duration,
+ };
+
+diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
+index 6060f9f..fe9d9c4 100644
+--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
++++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
+@@ -11,7 +11,7 @@ export default class Helper extends PureComponent {
+
+ disabled: PropTypes.bool,
+
+- style: Animated.Text.propTypes.style,
++ style: PropTypes.object,
+
+ baseColor: PropTypes.string,
+ errorColor: PropTypes.string,
+diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
+index 82eaf03..809fcdd 100644
+--- a/node_modules/react-native-material-textfield/src/components/label/index.js
++++ b/node_modules/react-native-material-textfield/src/components/label/index.js
+@@ -43,7 +43,7 @@ export default class Label extends PureComponent {
+ y1: PropTypes.number,
+ }),
+
+- style: Animated.Text.propTypes.style,
++ style: PropTypes.object,
+ label: PropTypes.string,
+ };
+
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/src/apollo/client.js b/enatega-multivendor-restaurant/src/apollo/client.js
new file mode 100644
index 0000000..e05fbf0
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/apollo/client.js
@@ -0,0 +1,70 @@
+import { WebSocketLink } from '@apollo/client/link/ws'
+import { getMainDefinition } from '@apollo/client/utilities'
+import getEnvVars from '../../environment'
+import * as SecureStore from 'expo-secure-store'
+import {
+ ApolloClient,
+ InMemoryCache,
+ ApolloLink,
+ split,
+ concat,
+ Observable,
+ createHttpLink
+} from '@apollo/client'
+
+export let clientRef = null
+function setupApolloClient() {
+ const { GRAPHQL_URL, WS_GRAPHQL_URL } = getEnvVars()
+ const wsLink = new WebSocketLink({
+ uri: WS_GRAPHQL_URL,
+ options: {
+ reconnect: true
+ }
+ })
+ const cache = new InMemoryCache()
+ // eslint-disable-next-line new-cap
+ const httpLink = new createHttpLink({
+ uri: GRAPHQL_URL
+ })
+ const terminatingLink = split(({ query }) => {
+ const { kind, operation } = getMainDefinition(query)
+ return kind === 'OperationDefinition' && operation === 'subscription'
+ }, wsLink)
+
+ const request = async operation => {
+ const token = await SecureStore.getItemAsync('token')
+ operation.setContext({
+ headers: {
+ authorization: token ? `Bearer ${token}` : ''
+ }
+ })
+ }
+ const requestLink = new ApolloLink(
+ (operation, forward) =>
+ new Observable(observer => {
+ let handle
+ Promise.resolve(operation)
+ .then(oper => request(oper))
+ .then(() => {
+ handle = forward(operation).subscribe({
+ next: observer.next.bind(observer),
+ error: observer.error.bind(observer),
+ complete: observer.complete.bind(observer)
+ })
+ })
+ .catch(observer.error.bind(observer))
+ return () => {
+ if (handle) handle.unsubscribe()
+ }
+ })
+ )
+
+ const client = new ApolloClient({
+ cache: cache,
+ link: concat(ApolloLink.from([terminatingLink, requestLink]), httpLink)
+ })
+ clientRef = client
+ return client
+}
+
+export default setupApolloClient
diff --git a/enatega-multivendor-restaurant/src/apollo/index.js b/enatega-multivendor-restaurant/src/apollo/index.js
new file mode 100644
index 0000000..2d88805
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/apollo/index.js
@@ -0,0 +1,5 @@
+export { default } from './client'
+export * from './mutations'
+export * from './queries'
+export * from './mocks'
+export * from './subscriptions'
diff --git a/enatega-multivendor-restaurant/src/apollo/mocks.js b/enatega-multivendor-restaurant/src/apollo/mocks.js
new file mode 100644
index 0000000..1b77a87
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/apollo/mocks.js
@@ -0,0 +1,211 @@
+import gql from 'graphql-tag'
+import { login, acceptOrder, cancelOrder } from './mutations'
+import { orders } from './queries'
+import { subscribePlaceOrder, subscribeOrderStatus } from './subscriptions'
+
+export const mocks = [
+ {
+ request: {
+ query: gql`
+ ${login}
+ `,
+ variables: { username: 'test', password: '123' }
+ },
+ result: {
+ data: {
+ restaurantLogin: { token: 'sometoken' }
+ // can also return restaurantId and save it in storage for subscriptionPlaceOrder
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${login}
+ `,
+ variables: { username: 'test1', password: '123' }
+ },
+ error: new Error('incorrect username or password')
+ },
+ {
+ request: {
+ query: gql`
+ ${acceptOrder}
+ `,
+ variables: { _id: '1' }
+ },
+ result: {
+ data: {
+ acceptOrder: {
+ _id: '1',
+ orderId: 'o-1',
+ orderStatus: 'ACCEPTED',
+ rider: null
+ }
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${cancelOrder}
+ `,
+ variables: { _id: '2', reason: 'not available' }
+ },
+ result: {
+ data: {
+ cancelOrder: {
+ _id: '2',
+ orderId: 'o-2',
+ orderStatus: 'CANCELLED',
+ rider: null
+ }
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${orders}
+ `
+ },
+ result: {
+ data: {
+ restaurantOrders: [
+ {
+ _id: '1',
+ orderId: 'o-1',
+ orderStatus: 'PENDING',
+ rider: null
+ },
+ {
+ _id: '2',
+ orderId: 'o-2',
+ orderStatus: 'PENDING',
+ rider: null
+ },
+ {
+ _id: '3',
+ orderId: 'o-3',
+ orderStatus: 'PENDING',
+ rider: null
+ },
+ {
+ _id: '4',
+ orderId: 'o-4',
+ orderStatus: 'ACCEPTED',
+ rider: null
+ },
+ {
+ _id: '5',
+ orderId: 'o-5',
+ orderStatus: 'ACCEPTED',
+ rider: null
+ },
+ {
+ _id: '6',
+ orderId: 'o-6',
+ orderStatus: 'ACCEPTED',
+ rider: null
+ },
+ {
+ _id: '7',
+ orderId: 'o-7',
+ orderStatus: 'DELIVERED',
+ rider: null
+ },
+ {
+ _id: '8',
+ orderId: 'o-8',
+ orderStatus: 'DELIVERED',
+ rider: null
+ },
+ {
+ _id: '9',
+ orderId: 'o-9',
+ orderStatus: 'DELIVERED',
+ rider: null
+ }
+ ]
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${subscribePlaceOrder}
+ `,
+ variables: { restId: '123' }
+ },
+ result: {
+ data: {
+ subscribePlaceOrder: {
+ origin: 'new',
+ order: {
+ _id: '10',
+ orderId: 'o-10',
+ orderStatus: 'PENDING',
+ rider: null
+ }
+ }
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${subscribePlaceOrder}
+ `,
+ variables: { restId: '123' }
+ },
+ result: {
+ data: {
+ subscribePlaceOrder: {
+ origin: 'update',
+ order: {
+ _id: '1',
+ orderId: 'o-1',
+ orderStatus: 'ACCEPTED',
+ rider: null
+ }
+ }
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${subscribeOrderStatus}
+ `,
+ variables: { _id: '4' }
+ },
+ result: {
+ data: {
+ subscribeOrderStatus: {
+ _id: '4',
+ orderId: 'o-4',
+ orderStatus: 'DELIVERED',
+ rider: null
+ }
+ }
+ }
+ },
+ {
+ request: {
+ query: gql`
+ ${subscribeOrderStatus}
+ `,
+ variables: { _id: '3' }
+ },
+ result: {
+ data: {
+ subscribeOrderStatus: {
+ _id: '3',
+ orderId: 'o-3',
+ orderStatus: 'ACCEPTED',
+ rider: null
+ }
+ }
+ }
+ }
+]
diff --git a/enatega-multivendor-restaurant/src/apollo/mutations.js b/enatega-multivendor-restaurant/src/apollo/mutations.js
new file mode 100644
index 0000000..434864e
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/apollo/mutations.js
@@ -0,0 +1,45 @@
+export const login = `mutation RestaurantLogin($username:String!,$password:String!){
+ restaurantLogin(username:$username,password:$password){
+ token
+ restaurantId
+ }
+}`
+
+export const acceptOrder = `mutation AcceptOrder($_id:String!, $time:String){
+ acceptOrder(_id:$_id, time:$time){
+ _id
+ orderStatus
+ preparationTime
+ }
+}`
+
+export const cancelOrder = `mutation CancelOrder($_id:String!,$reason:String!){
+ cancelOrder(_id:$_id,reason:$reason){
+ _id
+ orderStatus
+ }
+}`
+export const orderPickedUp = `mutation OrderPickedUp($_id:String!){
+ orderPickedUp(_id:$_id){
+ _id
+ orderStatus
+ }
+}`
+
+export const saveToken = `mutation saveRestaurantToken($token:String, $isEnabled:Boolean){
+ saveRestaurantToken(token:$token, isEnabled: $isEnabled ){
+ _id
+ notificationToken
+ enableNotification
+ }
+}`
+
+export const toggleAvailability = `mutation ToggleAvailability{
+ toggleAvailability{
+ _id
+ isAvailable
+ }
+}`
+export const muteRingOrder = `mutation muteRing($orderId:String){
+ muteRing(orderId:$orderId)
+}`
diff --git a/enatega-multivendor-restaurant/src/apollo/queries.js b/enatega-multivendor-restaurant/src/apollo/queries.js
new file mode 100644
index 0000000..e0322c8
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/apollo/queries.js
@@ -0,0 +1,117 @@
+export const orders = `query Orders{
+ restaurantOrders{
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ _id
+ title
+ description
+ image
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ description
+ title
+ quantityMinimum
+ quantityMaximum
+ }
+ specialInstructions
+ isActive
+ createdAt
+ updatedAt
+ }
+ user{
+ _id
+ name
+ phone
+ email
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ tipping
+ taxationAmount
+ status
+ paymentStatus
+ reason
+ isActive
+ createdAt
+ orderDate
+ deliveryCharges
+ isPickedUp
+ preparationTime
+ acceptedAt
+ isRinged
+ rider{
+ _id
+ name
+ username
+ available
+ }
+ }
+}`
+
+export const configuration = `query Configuration{
+ configuration{
+ _id
+ currency
+ currencySymbol
+ restaurantAppSentryUrl
+ }
+}`
+
+export const restaurantInfo = `query Restaurant($id:String){
+ restaurant(id:$id){
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ address
+ location{coordinates}
+ deliveryTime
+ username
+ isAvailable
+ notificationToken
+ enableNotification
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+}}
+`
+export const defaultRestaurantCreds = `query LastOrderCreds {
+ lastOrderCreds {
+ restaurantUsername
+ restaurantPassword
+ }
+}`
diff --git a/enatega-multivendor-restaurant/src/apollo/subscriptions.js b/enatega-multivendor-restaurant/src/apollo/subscriptions.js
new file mode 100644
index 0000000..56ad9a5
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/apollo/subscriptions.js
@@ -0,0 +1,171 @@
+export const subscribePlaceOrder = `subscription SubscribePlaceOrder($restaurant:String!){
+ subscribePlaceOrder(restaurant:$restaurant){
+ userId
+ origin
+ order{
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ _id
+ title
+ description
+ image
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ description
+ title
+ quantityMinimum
+ quantityMaximum
+ }
+ specialInstructions
+ isActive
+ createdAt
+ updatedAt
+ }
+ user{
+ _id
+ name
+ phone
+ email
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ tipping
+ taxationAmount
+ status
+ paymentStatus
+ reason
+ isActive
+ createdAt
+ orderDate
+ deliveryCharges
+ isPickedUp
+ preparationTime
+ acceptedAt
+ isRinged
+ rider{
+ _id
+ name
+ username
+ available
+ }
+ }
+}
+}`
+
+export const subscribeOrderStatus = `subscription SubscribeOrderStatus($_id:String!){
+ subscribeOrderStatus(_id:$_id){
+ _id
+ orderId
+ orderStatus
+ rider{
+ name
+ }
+ }
+}`
+
+export const subscriptionOrder = `subscription SubscriptionOrder($id:String!){
+ subscriptionOrder(id:$id){
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ _id
+ title
+ description
+ image
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ description
+ title
+ quantityMinimum
+ quantityMaximum
+ }
+ specialInstructions
+ isActive
+ createdAt
+ updatedAt
+ }
+ user{
+ _id
+ name
+ phone
+ email
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ tipping
+ taxationAmount
+ status
+ paymentStatus
+ reason
+ isActive
+ createdAt
+ orderDate
+ deliveryCharges
+ isPickedUp
+ preparationTime
+ isRinged
+ rider{
+ _id
+ name
+ username
+ available
+ }
+ }
+}`
diff --git a/enatega-multivendor-restaurant/src/assets/Header.png b/enatega-multivendor-restaurant/src/assets/Header.png
new file mode 100644
index 0000000..448a2d0
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/Header.png differ
diff --git a/enatega-multivendor-restaurant/src/assets/HeaderLight.png b/enatega-multivendor-restaurant/src/assets/HeaderLight.png
new file mode 100644
index 0000000..819599a
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/HeaderLight.png differ
diff --git a/enatega-multivendor-restaurant/src/assets/beep.mp3 b/enatega-multivendor-restaurant/src/assets/beep.mp3
new file mode 100644
index 0000000..f9aaf3e
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/beep.mp3 differ
diff --git a/enatega-multivendor-restaurant/src/assets/beep2.mp3 b/enatega-multivendor-restaurant/src/assets/beep2.mp3
new file mode 100644
index 0000000..fc50c78
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/beep2.mp3 differ
diff --git a/enatega-multivendor-restaurant/src/assets/beep3.mp3 b/enatega-multivendor-restaurant/src/assets/beep3.mp3
new file mode 100644
index 0000000..ed1ca4f
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/beep3.mp3 differ
diff --git a/enatega-multivendor-restaurant/src/assets/bg.png b/enatega-multivendor-restaurant/src/assets/bg.png
new file mode 100644
index 0000000..180a88d
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/bg.png differ
diff --git a/enatega-multivendor-restaurant/src/assets/bowl.png b/enatega-multivendor-restaurant/src/assets/bowl.png
new file mode 100644
index 0000000..278abb0
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/bowl.png differ
diff --git a/enatega-multivendor-restaurant/src/assets/loader.json b/enatega-multivendor-restaurant/src/assets/loader.json
new file mode 100644
index 0000000..1a24857
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/assets/loader.json
@@ -0,0 +1 @@
+{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.0.0","a":"Michel Angelo","k":"","d":"Lottie Study ","tc":""},"fr":60,"ip":0,"op":241,"w":400,"h":400,"nm":"animacaodentro","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"ponteiro","parent":2,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"corporelogio","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[216,368.5,0],"ix":2},"a":{"a":0,"k":[216,368.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[95,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3045","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":9,"s":[-110]},{"t":39,"s":[0]}],"ix":10},"p":{"a":0,"k":[215.96,368.109,0],"ix":2},"a":{"a":0,"k":[0.913,35.538,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":30,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[23.694,45.077],[0,36.37],[0,0],[1.834,0],[1.834,35.091],[24.326,43.353]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3045","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3049","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[215.964,368.524,0],"ix":2},"a":{"a":0,"k":[3.203,3.203,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.769,0],[0,1.769],[-1.768,0],[0,-1.769]],"o":[[0,1.769],[-1.768,0],[0,-1.769],[1.769,0],[0,0]],"v":[[6.406,3.202],[3.202,6.406],[0,3.202],[3.202,0],[6.406,3.202]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3049","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3047","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[26.351,43.569,0],"ix":2},"a":{"a":0,"k":[6.308,6.01,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[0,12.02],[12.616,9.834],[4.416,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3047","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3046","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.917,-3.671,0],"ix":2},"a":{"a":0,"k":[6.402,5.544,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[0,11.088],[6.402,0],[12.805,11.088]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3046","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Grupo 2185 Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[273.25,318],[220.25,318.25],[220,379.25],[273.5,380]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":10,"op":3610,"st":10,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Grupo 2185","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":9,"s":[-116]},{"t":39,"s":[0]}],"ix":10},"p":{"a":0,"k":[218.675,365.527,0],"ix":2},"a":{"a":0,"k":[-0.5,37.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":37,"h":51,"ip":0,"op":3600,"st":0,"bm":1}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2184","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.3,25.348,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[36.6,50.696],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2183","parent":1,"refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[18.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[36.6,0],[36.6,50.696],[0,50.696]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":37,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3048","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.3,25.348,0],"ix":2},"a":{"a":0,"k":[18.3,25.348,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[47.18,4.586]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[0,37.715],[35.254,50.696],[0,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.43529411764705883,0.8117647058823529,0.592156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3048","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3044","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.954,364.314,0],"ix":2},"a":{"a":0,"k":[38.866,38.866,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[21.464,0],[0,21.465],[-21.465,0],[0,-21.464]],"o":[[0,21.465],[-21.465,0],[0,-21.464],[21.464,0],[0,0]],"v":[[77.732,38.866],[38.867,77.732],[0,38.866],[38.867,0],[77.732,38.866]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3044","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3043","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.954,364.314,0],"ix":2},"a":{"a":0,"k":[41.651,41.651,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[23.003,0],[0,23.004],[-23.004,0],[0,-23.003]],"o":[[0,23.004],[-23.004,0],[0,-23.003],[23.003,0],[0,0]],"v":[[83.302,41.651],[41.651,83.302],[0,41.651],[41.651,0],[83.302,41.651]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3043","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3042","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[224.904,364.314,0],"ix":2},"a":{"a":0,"k":[41.651,41.651,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[23.003,0],[0,23.004],[-23.004,0],[0,-23.003]],"o":[[0,23.004],[-23.004,0],[0,-23.003],[23.003,0],[0,0]],"v":[[83.302,41.651],[41.651,83.302],[0,41.651],[41.651,0],[83.302,41.651]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3042","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"saco","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[142.5,402,0],"ix":2},"a":{"a":0,"k":[142.5,408,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42.143,"s":[105,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"frutinha","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":0,"s":[116.5,379,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":25,"s":[116.5,233.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[116.5,277.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":59,"s":[116.5,269,0]}],"ix":2},"a":{"a":0,"k":[116.5,269,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42.143,"s":[105,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"folha","refId":"comp_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-9,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":4,"s":[166.5,402,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":29,"s":[166.5,256.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":46,"s":[166.5,300.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":63,"s":[166.5,292,0]}],"ix":2},"a":{"a":0,"k":[156.5,304,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":29.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":46.143,"s":[105,95,100]},{"t":63,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":4,"op":3604,"st":4,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"planta1","refId":"comp_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":6,"s":[145.5,426,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":31,"s":[145.5,280.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":48,"s":[145.5,324.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":65,"s":[145.5,316,0]}],"ix":2},"a":{"a":0,"k":[145.5,316,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":31.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":48.143,"s":[105,95,100]},{"t":65,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":6,"op":3606,"st":6,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"planta2","refId":"comp_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":8,"s":[136.5,453,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":33,"s":[136.5,307.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":50,"s":[136.5,351.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":67,"s":[136.5,343,0]}],"ix":2},"a":{"a":0,"k":[136.5,343,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":8,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":33.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":50.143,"s":[105,95,100]},{"t":67,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":8,"op":3608,"st":8,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"pao","refId":"comp_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[123.5,422,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":27,"s":[123.5,276.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":44,"s":[123.5,320.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":61,"s":[123.5,312,0]}],"ix":2},"a":{"a":0,"k":[123.5,312,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":27.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":44.143,"s":[105,95,100]},{"t":61,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":2,"op":3602,"st":2,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3034","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[101.359,343.547,0],"ix":2},"a":{"a":0,"k":[10.872,63.262,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[21.744,0],[21.744,126.525],[0,126.525],[6.851,0],[14.297,7.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2549019607843137,0.4588235294117647,0.0196078431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3034","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3033","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[153.314,343.547,0],"ix":2},"a":{"a":0,"k":[41.083,63.262,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[82.167,126.525],[0,126.525],[0,0],[5.985,7.182],[11.969,0],[17.97,7.182],[23.955,0],[29.956,7.182],[35.94,0],[41.924,7.182],[47.926,0],[53.91,7.182],[59.893,0],[65.894,7.182],[71.879,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.43529411764705883,0.8117647058823529,0.592156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3033","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3037","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125.878,262.849,0],"ix":2},"a":{"a":0,"k":[1.395,1.437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.845,0],[1.845,0]],"o":[[-1.856,0],[1.856,0],[0,0]],"v":[[1.269,0],[1.52,2.874],[1.269,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.360784313725,0.360784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3037","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3036","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[131.893,261.847,0],"ix":2},"a":{"a":0,"k":[1.395,1.437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.845,0],[1.845,0]],"o":[[-1.856,0],[1.856,0],[0,0]],"v":[[1.269,0],[1.52,2.874],[1.269,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.360784313725,0.360784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3036","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3035","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[126.079,255.431,0],"ix":2},"a":{"a":0,"k":[1.395,1.437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.845,0],[1.846,0]],"o":[[-1.856,0],[1.857,0],[0,0]],"v":[[1.269,0],[1.52,2.874],[1.269,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.360784313725,0.360784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3035","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3032","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[106.907,248.893,0],"ix":2},"a":{"a":0,"k":[3.059,9.057,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.359,-1.25],[-2.232,-4.303],[-0.465,3.819],[0.903,1.95],[0.248,0.191],[0.608,-0.529]],"o":[[-0.977,0.858],[-1.331,4.663],[2.044,-3.255],[0.261,-2.134],[-0.131,-0.282],[-0.635,-0.49],[0,0]],"v":[[2.579,0.61],[0.724,3.981],[2.146,18.115],[5.973,7.326],[5.312,0.995],[4.775,0.24],[2.579,0.61]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3032","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3031","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[95.46,252.482,0],"ix":2},"a":{"a":0,"k":[10.508,5.693,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.345,-0.966],[-6.11,0.828],[4.376,2.195],[2.724,-0.246],[0.334,-0.215],[-0.374,-0.956]],"o":[[0.608,1.539],[5.014,3.594],[-3.023,-3.844],[-2.444,-1.227],[-0.394,0.036],[-0.861,0.549],[0,0]],"v":[[0.234,3.148],[3.477,6.816],[21.017,11.172],[9.734,1.962],[1.866,0.039],[0.733,0.359],[0.234,3.148]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3031","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3030","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.522,269.098,0],"ix":2},"a":{"a":0,"k":[22.515,22.515,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[11.332,-5.114],[5.114,11.331],[-11.331,5.114],[-5.114,-11.331]],"o":[[5.114,11.332],[-11.331,5.112],[-5.114,-11.332],[11.331,-5.114],[0,0]],"v":[[43.031,13.255],[31.773,43.033],[1.998,31.775],[13.256,1.998],[43.031,13.255]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.662745098039,0.662745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3030","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_9","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3029","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[178.488,264.804,0],"ix":2},"a":{"a":0,"k":[22.661,34.697,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.573,-5.78],[0.081,0.447],[0.249,1.392],[-0.156,-0.873],[-0.284,-1.581],[-0.333,-0.591],[1.598,-2.244],[1.717,-2.688],[0.777,3.438],[-0.195,-0.863],[-0.891,-3.943],[2.711,-5.371],[0.867,4.34],[-0.173,-0.87],[-0.957,-4.79],[-0.076,-0.107],[0.032,-0.064],[2.13,-5.611],[-0.316,0.831],[-2.776,5.609],[-5.035,1.031],[0.868,-0.178],[0,0],[-1.863,3.21],[-1.067,1.712],[-5.145,0.529],[0.882,-0.091],[4.802,-0.494],[-3.74,4.811],[-0.174,-0.026],[-0.623,0.056],[-0.858,0.078],[-1.65,0.151],[0.884,-0.081],[1.452,-0.132],[1.392,-0.055],[0.1,0.004],[-0.916,1.107],[-4.202,4.218],[0.621,-0.625]],"o":[[-5.203,5.223],[-0.12,-0.474],[-0.249,-1.392],[-0.156,-0.868],[0.284,1.582],[0.117,0.656],[-1.691,2.173],[-1.85,2.599],[-0.777,-3.437],[-0.194,-0.855],[0.891,3.943],[-3.188,5.103],[-0.867,-4.338],[-0.172,-0.862],[0.957,4.789],[0.024,0.12],[-0.031,0.064],[-2.641,5.39],[-0.314,0.827],[2.22,-5.852],[5.035,-1.031],[0.861,-0.177],[0,0],[1.676,-3.311],[1.013,-1.744],[5.145,-0.529],[0.884,-0.09],[-4.802,0.493],[3.271,-5.141],[0.165,0.063],[0.624,0.095],[0.858,-0.079],[1.649,-0.151],[0.885,-0.081],[-1.453,0.133],[-1.388,0.127],[-0.096,0.005],[0.891,-1.128],[3.795,-4.587],[0.625,-0.627],[0,0]],"v":[[44.062,0.217],[29.406,16.755],[29.174,15.301],[28.426,11.125],[27.053,11.253],[27.904,15.997],[28.42,17.971],[23.481,24.596],[18.156,32.544],[15.826,22.231],[14.453,22.359],[17.125,34.186],[8.247,49.894],[5.648,36.876],[4.275,37.005],[7.145,51.373],[7.306,51.718],[7.207,51.908],[0.05,68.421],[1.307,68.989],[8.841,51.803],[23.948,48.707],[23.821,47.334],[9.622,50.243],[14.897,40.443],[18.044,35.274],[33.48,33.688],[33.352,32.316],[18.944,33.797],[29.471,18.858],[29.979,18.997],[31.865,18.949],[34.44,18.713],[39.39,18.259],[39.263,16.886],[34.907,17.285],[30.728,17.659],[30.432,17.66],[33.129,14.295],[45.134,1.083],[44.062,0.217]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.517647058824,0.529411764706,0.556862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3029","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3028","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[178.385,264.139,0],"ix":2},"a":{"a":0,"k":[26.335,37.192,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[6.989,-12.761],[14.98,-5.376],[2.22,-0.352],[0.385,2.283],[-3.738,9.915],[-8.219,6.666],[-10.714,-0.321]],"o":[[2.295,14.359],[-7.651,13.966],[-2.122,0.755],[-0.796,-2.167],[-1.751,-10.446],[3.742,-9.901],[8.348,-6.759],[0,0]],"v":[[51.829,0.016],[44.721,44.772],[9.05,72.617],[2.518,74.384],[0.82,67.689],[3.878,36.433],[22.259,10.986],[51.829,0.016]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3028","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_10","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3027","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[156.358,217.136,0],"ix":2},"a":{"a":0,"k":[7.972,5.528,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.84,-3.161],[0,0],[-0.344,-0.405],[-2.905,-3.427],[-0.162,0.281],[-2.331,3.009],[0.321,-0.413]],"o":[[-2.249,2.904],[0,0],[-0.339,-0.401],[2.905,3.427],[0.2,0.234],[1.882,-3.29],[0.32,-0.411],[0,0]],"v":[[15.228,0.842],[9.092,9.952],[0.79,0.16],[0.092,0.598],[8.809,10.878],[9.532,10.845],[15.855,1.386],[15.228,0.842]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3027","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3026","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[156.082,238.456,0],"ix":2},"a":{"a":0,"k":[9.66,6.978,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.192,-3.943],[3.666,3.619],[-0.379,-0.373],[-2.649,-4.503],[-0.159,0.194],[-2.487,4.683],[0.244,-0.46]],"o":[[-2.366,4.455],[-2.629,-4.368],[-0.38,-0.376],[3.758,3.711],[0.13,0.219],[3.386,-4.122],[0.244,-0.46],[0,0]],"v":[[18.523,0.21],[10.163,12.828],[0.682,0.797],[0.127,1.393],[9.775,13.773],[10.437,13.825],[19.272,0.584],[18.523,0.21]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3026","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3025","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155,259.246,0],"ix":2},"a":{"a":0,"k":[14.057,8.325,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.09,-4.901],[4.385,4.741],[-0.358,-0.386],[-3.222,-5.639],[-0.174,0.168],[-5.224,5.029],[0.377,-0.364]],"o":[[-5.091,4.901],[-3.207,-5.537],[-0.361,-0.391],[4.451,4.813],[0.137,0.243],[5.225,-5.029],[0.38,-0.367],[0,0]],"v":[[27.369,0.888],[12.098,15.59],[0.671,0.127],[0.116,0.723],[11.661,16.469],[12.323,16.521],[27.997,1.431],[27.369,0.888]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3025","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3024","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.52,282.555,0],"ix":2},"a":{"a":0,"k":[16.086,10.025,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.979,-5.058],[4.832,5.89],[-0.337,-0.412],[-3.656,-6.797],[-0.178,0.15],[0,0],[0.399,-0.337]],"o":[[-5.98,5.058],[-3.609,-6.644],[-0.334,-0.408],[4.935,6.014],[0.138,0.256],[0,0],[0.403,-0.341],[0,0]],"v":[[31.415,3.84],[13.477,19.015],[0.788,0.163],[0.089,0.603],[13.009,19.871],[13.673,19.923],[32.043,4.384],[31.415,3.84]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3024","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3023","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.667,248.22,0],"ix":2},"a":{"a":0,"k":[7.326,54.905,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.943,6.799],[0.267,0.85],[-0.157,-0.499],[-0.743,-7.032],[0.362,-7.031],[1.223,-7.092],[1.778,-7.101],[1.994,-7.091],[0.25,-0.891],[-0.141,0.499],[-1.839,7.167],[-1.335,7.305],[-0.487,7.187],[0.611,7.103]],"o":[[-0.602,-7.008],[-0.244,-0.855],[-0.156,-0.498],[2.132,6.786],[0.739,7.021],[-0.37,7.193],[-1.243,7.211],[-1.788,7.144],[-0.25,0.89],[-0.141,0.5],[2.006,-7.122],[1.846,-7.193],[1.296,-7.083],[0.481,-7.095],[0,0]],"v":[[14.181,23.612],[10.427,2.828],[9.659,0.271],[8.866,0.522],[13.121,21.313],[13.615,42.434],[11.139,63.875],[6.523,85.335],[0.767,106.665],[0.016,109.335],[0.837,109.512],[6.689,88.097],[11.55,66.36],[14.3,44.947],[14.181,23.612]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3023","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3022","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[151.092,241.97,0],"ix":2},"a":{"a":0,"k":[27.292,56.26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.601,-0.799],[1.316,-1.104],[1.574,-1.335],[1.397,-1.326],[-0.575,-1.708],[-1.481,0.088],[-1.827,-0.111],[0.364,-2.859],[2.601,-1.796],[3.13,-1.186],[3.178,-5.687],[-0.256,0.459],[-0.044,0.078],[2.499,2.492],[2.272,2.831],[1.049,1.501],[0.458,1.631],[-2.661,1.253],[-1.864,-1.492],[-0.559,-0.426],[-1.629,0.623],[0.189,1.396],[1.041,1.226],[0.948,1.489],[0.654,3.365],[-0.995,1.381],[-1.48,-0.234],[-3.399,0.013],[0.379,1.499],[1.159,1.206],[1.497,2.955],[-0.351,1.44],[-1.054,0.784],[-1.272,-0.444],[-1.467,-0.694],[-0.72,0.248],[0.13,0.772],[1.057,1.274],[1.943,3.23],[-0.03,1.725],[-1.171,0.754],[-1.217,-0.643],[-1.202,0.398],[0.227,1.203],[0.361,1.845],[-1.916,2.209],[-2.408,-1.586],[-0.107,-3.127],[-0.119,-1.771],[-1.741,-0.543],[-1.049,0.621],[-1.18,0.18],[-0.542,-1.013],[0.272,-1.313],[2.171,-2.612],[0.162,-1.631],[-1.498,0.459],[-1.937,-2.229],[0.089,-1.111],[0.575,-1.35],[2.308,-2.703],[0.346,-1.567],[-1.706,0.023],[-1.693,0.209],[-0.968,-1.126],[0.423,-1.613]],"o":[[-0.245,0.975],[-1.037,1.364],[-1.564,1.335],[-1.47,1.243],[-1.19,1.132],[0.529,1.546],[1.808,-0.108],[3.201,0.196],[-0.417,3.22],[-2.747,1.896],[-5.888,2.235],[-0.256,0.45],[0.043,-0.078],[-2.76,-2.221],[-2.582,-2.569],[-1.153,-1.424],[-0.979,-1.385],[-0.727,-2.577],[2.416,-1.142],[0.608,0.492],[1.266,0.959],[1.469,-0.565],[-0.216,-1.606],[-1.146,-1.36],[-1.868,-2.92],[-0.309,-1.618],[0.829,-1.164],[3.226,0.495],[1.839,-0.011],[-0.409,-1.622],[-2.26,-2.363],[-0.67,-1.316],[0.302,-1.238],[1.053,-0.774],[1.564,0.545],[0.662,0.315],[0.797,-0.282],[-0.281,-1.672],[-2.413,-2.917],[-0.884,-1.47],[0.02,-1.348],[1.196,-0.769],[0.976,0.522],[1.628,-0.543],[-0.345,-1.844],[-0.546,-2.724],[1.925,-2.209],[2.836,1.868],[0.069,1.778],[0.107,1.586],[1.289,0.412],[0.982,-0.591],[1.164,-0.165],[0.679,1.244],[-0.662,3.3],[-0.99,1.196],[-0.132,1.423],[1.999,-0.601],[0.781,0.893],[-0.125,1.463],[-1.374,3.24],[-1.023,1.203],[-0.375,1.729],[1.729,-0.014],[1.474,-0.178],[1.203,1.402],[0,0]],"v":[[54.38,64.481],[53.072,67.182],[49.37,70.759],[44.661,74.757],[40.259,78.526],[38.482,82.976],[42.278,84.777],[47.62,84.046],[52.296,90.132],[46.596,97.731],[37.561,102.08],[21.741,112.316],[20.995,111.94],[21.136,111.713],[13.23,104.647],[5.939,96.547],[2.618,92.167],[0.266,87.671],[2.927,80.633],[9.302,82.363],[11.051,83.786],[15.789,85.154],[17.526,81.549],[15.149,77.335],[11.95,73.12],[7.933,63.526],[8.659,58.794],[12.329,57.224],[20.655,61.514],[22.666,58.298],[20.022,54.05],[13.406,46.799],[12.742,42.545],[14.828,39.366],[18.52,38.766],[22.563,41.359],[24.788,41.645],[25.77,39.827],[22.95,35.524],[16.379,26.298],[14.665,21.48],[16.532,18.025],[20.283,18.105],[23.828,19.5],[24.727,15.258],[23.416,9.778],[24.921,1.767],[32.437,1.104],[36.305,9.361],[36.217,14.699],[38.743,18.71],[42.371,17.744],[45.543,16.252],[48.384,17.661],[48.607,21.728],[44.262,30.767],[41.532,34.793],[43.941,36.895],[50.444,36.104],[51.252,39.396],[49.978,43.598],[44.407,52.575],[41.861,56.624],[44.58,59.432],[49.553,58.365],[53.411,59.74],[54.38,64.481]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274509804,0.490196078431,0.494117647059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3022","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_11","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3021","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[127.385,239.835,0],"ix":2},"a":{"a":0,"k":[2.567,33.497,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.019,10.309],[-0.224,-0.571],[0.452,-10.725],[0.897,-11.494],[-0.048,0.613],[-0.527,11.224]],"o":[[0.513,-10.934],[-0.224,-0.571],[3.936,10.099],[-0.487,11.521],[-0.047,0.605],[0.874,-11.201],[0,0]],"v":[[4.009,32.923],[0.035,0.597],[0.946,0.311],[5.003,31.992],[2.462,66.515],[1.509,66.559],[4.009,32.923]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3021","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3020","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[135.093,220.232,0],"ix":2},"a":{"a":0,"k":[6.006,6.913,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.869,-3.274],[-1.893,1.745],[-1.097,2.588],[0.357,0.909],[0.237,0.147],[0.429,-0.103],[1.453,-2.057]],"o":[[-1.957,2.766],[2.55,-0.215],[2.063,-1.911],[0.379,-0.894],[-0.1,-0.263],[-0.375,-0.233],[-2.446,0.578],[0,0]],"v":[[4.288,4.672],[0,13.827],[6.87,10.618],[11.5,3.645],[11.862,0.821],[11.361,0.167],[10.071,0.086],[4.288,4.672]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3020","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3019","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[132.056,209.649,0],"ix":2},"a":{"a":0,"k":[4.614,4.679,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.016,-0.144],[-1.648,1.302],[0.054,2.095],[0.472,0.177],[0.222,-0.041],[1.236,-1.153],[0.172,-2.245],[0,0],[-0.124,-0.176]],"o":[[-0.017,0.144],[1.998,-0.647],[1.646,-1.298],[-0.011,-0.506],[-0.21,-0.075],[-1.661,0.304],[-1.647,1.531],[0,0],[0.124,0.174],[0,0]],"v":[[0.779,8.931],[0.725,9.359],[6.384,6.677],[9.227,1.318],[8.59,0.05],[7.929,0.037],[3.676,2.657],[0.166,8.236],[0,8.355],[0.37,8.88]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3019","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3018","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[136.338,232.192,0],"ix":2},"a":{"a":0,"k":[7.709,7.196,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.016,-0.25],[0,0],[-2.628,1.606],[-0.623,3.454],[0.585,0.611],[1.063,-0.441],[1.783,-2.241],[1.382,-2.511],[0,0],[0.011,-0.177],[0.004,-0.029]],"o":[[-0.011,0.254],[0,0],[2.992,-0.731],[2.999,-1.826],[0.148,-0.829],[-0.792,-0.829],[-2.648,1.101],[-1.784,2.247],[0,0],[-0.01,0.182],[0.001,0.034],[0,0]],"v":[[0.037,13.617],[0,14.374],[0.388,14.392],[8.886,10.858],[15.341,2.945],[14.884,0.555],[11.651,0.399],[5.007,5.712],[0.451,12.998],[0.072,12.98],[0.042,13.521],[0.037,13.617]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3018","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3017","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[137.452,246.227,0],"ix":2},"a":{"a":0,"k":[9.407,8.085,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.004,-0.45],[-0.279,0.072],[-3.511,2],[-1.302,1.572],[0.224,2.029],[0.35,0.385],[0.469,0.1],[1.685,-1.081],[3.073,-4.987]],"o":[[-0.005,0.45],[0.262,0.091],[3.91,-0.993],[1.768,-1.012],[1.305,-1.566],[-0.06,-0.518],[-0.323,-0.356],[-1.962,-0.426],[-4.909,3.151],[0,0]],"v":[[0.008,14.777],[0.001,16.125],[0.845,16.082],[12.046,11.564],[16.849,7.825],[18.779,2.188],[18.233,0.753],[16.967,0.111],[11.309,1.624],[0.008,14.777]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3017","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3016","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[136.992,259.728,0],"ix":2},"a":{"a":0,"k":[8.532,5.409,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.077,-0.555],[-3.825,1.857],[-0.892,0.886],[0.064,1.259],[0.297,0.392],[1.118,-0.095],[2.336,-1.807],[1.588,-2.122]],"o":[[0.058,0.561],[4.241,0.148],[1.132,-0.546],[0.891,-0.887],[-0.025,-0.49],[-0.68,-0.892],[-2.941,0.255],[-2.101,1.617],[0,0]],"v":[[0,9.136],[0.196,10.808],[12.445,7.733],[15.596,5.694],[17.059,2.335],[16.596,0.954],[13.515,0.026],[5.456,3.391],[0,9.136]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3016","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Caminho 3015","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[121.992,201.428,0],"ix":2},"a":{"a":0,"k":[3.684,6.548,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.049,-0.132],[0.726,2.137],[1.97,1.443],[0.549,-0.486],[-0.136,-0.585],[-3.454,-2.682]],"o":[[0.049,0.131],[0.109,-2.258],[-0.786,-2.307],[-0.587,-0.434],[-0.448,0.397],[0.962,4.267],[0,0]],"v":[[7.192,12.702],[7.341,13.097],[6.508,6.419],[2.348,0.539],[0.348,0.233],[0.101,1.923],[7,12.774]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3015","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Caminho 3014","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[122.556,210.566,0],"ix":2},"a":{"a":0,"k":[4.877,3.552,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.112,-0.534],[-0.977,-0.719],[-1.947,-0.502],[-0.626,0.189],[0,0],[0.079,0.331],[3.085,1.171],[0.351,-0.156]],"o":[[-0.495,0.226],[0.243,1.188],[1.619,1.198],[0.629,0.159],[0,0],[-0.075,-0.332],[-2.03,-2.606],[-0.361,-0.139],[0,0]],"v":[[0.536,0.073],[0.04,1.503],[2.201,4.332],[7.619,6.914],[9.544,7.008],[9.754,6.997],[9.522,6],[1.66,0.179],[0.536,0.073]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3014","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Caminho 3013","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[122.778,219.417,0],"ix":2},"a":{"a":0,"k":[6.118,7.885,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.037,0.007],[0.008,0.081],[0,0],[4.477,3.446],[0.427,0.222],[0.771,-0.25],[-1.143,-2.001],[-1.617,-1.643],[-2.328,-0.302],[-0.04,0.074]],"o":[[0.038,-0.001],[0.001,-0.076],[0,0],[-0.991,-5.564],[-0.368,-0.287],[-0.737,-0.377],[-0.256,2.292],[1.144,2.006],[1.653,1.673],[0.111,0.013],[0,0]],"v":[[12.127,15.639],[12.236,15.628],[12.229,15.395],[12.157,15.398],[3.559,1.227],[2.354,0.437],[0.053,0.111],[1.636,6.725],[5.972,12.091],[11.832,15.768],[12.127,15.639]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3013","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Caminho 3012","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.819,229.401,0],"ix":2},"a":{"a":0,"k":[7.824,9.108,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.828,-1.435],[-5.911,-1.759],[3.085,3.8],[2.583,0.896],[0.393,-0.059],[0.053,-1.025]],"o":[[-0.078,1.653],[3.092,5.337],[-1.174,-4.748],[-1.724,-2.125],[-0.375,-0.129],[-1.011,0.147],[0,0]],"v":[[0.006,2.354],[1.453,7.031],[15.649,18.216],[9.154,5.181],[2.773,0.191],[1.608,0.017],[0.006,2.354]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3012","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Caminho 3011","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[119.244,243.519,0],"ix":2},"a":{"a":0,"k":[8.262,10.363,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.043,-0.49],[-4.159,-3.396],[-2.863,-1.432],[1.12,2.29],[4.664,3.094],[0.698,0.103],[0.351,-0.611]],"o":[[-0.242,0.428],[0.469,5.347],[2.479,2.029],[0.518,-2.492],[-2.459,-5.026],[-0.588,-0.389],[-0.697,-0.097],[0,0]],"v":[[0.214,0.779],[0.024,2.223],[8.329,15.515],[16.37,20.725],[14.904,13.354],[3.965,0.889],[2.058,0.021],[0.214,0.779]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3011","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Caminho 3010","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[117.902,256.66,0],"ix":2},"a":{"a":0,"k":[10.559,7.48,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.778,-0.902],[-7.402,-0.67],[-0.174,0.228],[0.025,0.295],[2.96,2.563],[3.963,-0.356],[0.389,-1.177]],"o":[[-0.368,1.132],[4.846,5.635],[0.166,-0.228],[-0.034,-0.296],[-1.867,-3.442],[-3.005,-2.61],[-1.236,0.106],[0,0]],"v":[[0.095,1.806],[1.267,5.006],[20.612,14.959],[21.117,14.274],[21.029,13.389],[14.044,4.03],[3.131,0.046],[0.095,1.806]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3010","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_12","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3008","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[119.052,268.367,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.828],[0.463,0.16],[0.483,-0.147],[0,0],[-0.547,-0.837],[-0.339,-0.184],[-0.103,-0.036],[-0.482,0.147]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.516,-0.178],[0,0],[-0.946,0.321],[0.189,0.288],[0.121,0.065],[0.514,0.178],[0,0]],"v":[[2.968,7.993],[17.294,3.135],[18.019,1.04],[16.833,0.138],[15.316,0.106],[0.989,4.963],[0.266,7.059],[1.099,7.816],[1.452,7.96],[2.968,7.993]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3008","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3009","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130.585,290.521,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.827],[0.463,0.16],[0.483,-0.147],[0,0],[-0.547,-0.837],[-0.339,-0.185],[-0.103,-0.036],[-0.482,0.145]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.516,-0.178],[0,0],[-0.946,0.322],[0.189,0.288],[0.121,0.064],[0.514,0.178],[0,0]],"v":[[2.968,7.993],[17.294,3.135],[18.019,1.04],[16.833,0.138],[15.316,0.106],[0.989,4.962],[0.266,7.059],[1.099,7.816],[1.452,7.96],[2.968,7.993]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3009","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3007","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[105.969,239.835,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.828],[0.464,0.16],[0.483,-0.147],[0,0],[-0.547,-0.837],[-0.34,-0.184],[-0.103,-0.036],[-0.483,0.147]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.514,-0.178],[0,0],[-0.946,0.322],[0.188,0.288],[0.121,0.064],[0.514,0.178],[0,0]],"v":[[2.968,7.993],[17.294,3.135],[18.019,1.04],[16.832,0.138],[15.316,0.106],[0.989,4.962],[0.266,7.059],[1.099,7.816],[1.452,7.96],[2.968,7.993]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3007","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3006","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[94.436,217.681,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.828],[0.463,0.16],[0.483,-0.145],[0,0],[-0.547,-0.837],[-0.339,-0.184],[-0.103,-0.035],[-0.482,0.147]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.516,-0.178],[0,0],[-0.946,0.321],[0.189,0.289],[0.121,0.065],[0.514,0.178],[0,0]],"v":[[2.968,7.992],[17.294,3.135],[18.019,1.039],[16.833,0.138],[15.316,0.105],[0.989,4.963],[0.266,7.058],[1.099,7.815],[1.452,7.96],[2.968,7.992]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3006","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3005","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[108.704,258.301,0],"ix":2},"a":{"a":0,"k":[33.704,56.691,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.503,-4.837],[0,0],[-7.501,3.882],[-0.789,0.775],[4.33,8.368],[0,0],[0,0],[0.363,2.449],[-0.412,2.236],[-2.194,2.054],[1.013,-0.524],[0.823,-4.473]],"o":[[-0.825,4.473],[0,0],[5.005,9.674],[1.013,-0.524],[-6.997,1.412],[0,0],[0,0],[-1.251,-2.419],[-0.426,-2.477],[0.599,-3.254],[-1.088,0.195],[-3.75,1.941],[0,0]],"v":[[0.322,11.251],[2.741,25.759],[41.937,101.506],[64.688,112.024],[67.408,110.065],[47.844,98.449],[29.949,63.865],[8.649,22.702],[6.208,15.319],[6.231,8.195],[10.453,0],[7.284,1.088],[0.322,11.251]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3005","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3004","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[113.934,256.643,0],"ix":2},"a":{"a":0,"k":[33.03,55.282,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-6.996,1.412],[4.33,8.368],[0,0],[6.996,-1.414],[0.599,-3.253],[-0.427,-2.477],[-1.251,-2.419]],"o":[[0,0],[4.33,8.368],[5.194,-4.895],[0,0],[-4.33,-8.368],[-2.194,2.054],[-0.412,2.237],[0.363,2.449],[0,0]],"v":[[2.745,22.952],[41.94,98.699],[61.504,110.314],[63.321,87.636],[24.125,11.888],[4.549,0.25],[0.326,8.444],[0.304,15.569],[2.745,22.952]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.764705882353,0.466666666667,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3004","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_13","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3056","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":20,"s":[100]},{"t":146,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":0,"s":[125.954,230.277,0],"to":[0.417,-8.083,0],"ti":[-0.417,13.083,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":30,"s":[128.454,181.777,0],"to":[0.417,-13.083,0],"ti":[0,5,0]},{"t":195,"s":[128.454,151.777,0]}],"ix":2},"a":{"a":0,"k":[3.546,3.546,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":19.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":33.457,"s":[95,95,100]},{"t":47,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = transform.scale;"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.303,-1.934],[1.935,-0.303],[0.302,1.934],[-1.934,0.302]],"o":[[1.934,-0.302],[0.302,1.934],[-1.934,0.303],[-0.303,-1.935],[0,0]],"v":[[2.998,0.043],[7.049,2.998],[4.093,7.049],[0.043,4.094],[2.998,0.043]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3041","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3055","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":22,"s":[100]},{"t":148,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[126.426,229.697,0],"to":[-1.333,-13.25,0],"ti":[1.333,18.25,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":32,"s":[118.426,150.197,0],"to":[-1.333,-18.25,0],"ti":[0,5,0]},{"t":195,"s":[118.426,120.197,0]}],"ix":2},"a":{"a":0,"k":[5.188,5.188,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":21.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":35.457,"s":[95,95,100]},{"t":49,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.442,-2.831],[2.831,-0.442],[0.442,2.83],[-2.83,0.442]],"o":[[2.83,-0.442],[0.442,2.83],[-2.83,0.444],[-0.441,-2.831],[0,0]],"v":[[4.387,0.063],[10.313,4.387],[5.989,10.312],[0.063,5.989],[4.387,0.063]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3040","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2,"op":3602,"st":2,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Retângulo 17287","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":24,"s":[100]},{"t":150,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[295.736]},{"t":591,"s":[685.736]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":4,"s":[126.234,229.913,0],"to":[2.167,-11.75,0],"ti":[-2.167,16.75,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":34,"s":[139.234,159.413,0],"to":[2.167,-16.75,0],"ti":[0,5,0]},{"t":195,"s":[139.234,129.413,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":23.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":37.457,"s":[95,95,100]},{"t":51,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[8.504,8.505],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Retângulo 17284","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":3604,"st":4,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3054","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":26,"s":[100]},{"t":152,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":6,"s":[126.559,229.522,0],"to":[4.833,-14.833,0],"ti":[-4.833,19.833,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":36,"s":[155.559,140.522,0],"to":[4.833,-19.833,0],"ti":[0,5,0]},{"t":195,"s":[155.559,110.522,0]}],"ix":2},"a":{"a":0,"k":[6.105,6.105,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":39.457,"s":[95,95,100]},{"t":53,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.325,0.521],[-0.52,-3.33],[3.325,-0.519],[0.519,3.324]],"o":[[-0.522,-3.33],[3.324,-0.52],[0.519,3.324],[-3.324,0.519],[0,0]],"v":[[0.074,7.051],[5.159,0.074],[12.137,5.165],[7.045,12.137],[0.074,7.051]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.326,-2.084],[-2.084,0.326],[0.325,2.08],[2.084,-0.326]],"o":[[-2.084,0.326],[0.325,2.078],[2.084,-0.326],[-0.326,-2.084],[0,0]],"v":[[5.511,2.328],[2.328,6.699],[6.693,9.883],[9.883,5.517],[5.511,2.328]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3039","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":3606,"st":6,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3053","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":27,"s":[100]},{"t":153,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":7,"s":[128.525,232.07,0],"to":[0.167,-17.083,0],"ti":[-0.167,22.083,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":37,"s":[129.525,129.57,0],"to":[0.167,-22.083,0],"ti":[0,5,0]},{"t":195,"s":[129.525,99.57,0]}],"ix":2},"a":{"a":0,"k":[5.328,5.34,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":7,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":26.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":40.457,"s":[95,95,100]},{"t":54,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.675,7.555],[3.391,10.679],[0.844,8.821],[3.122,5.692],[0,3.42],[1.856,0.868],[4.986,3.145],[7.28,0],[9.827,1.857],[7.532,5.002],[10.656,7.287],[8.792,9.834]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3038","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":3607,"st":7,"bm":0}]},{"id":"comp_14","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"quadrados","parent":2,"refId":"comp_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":-18,"op":3582,"st":-18,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"celular","refId":"comp_29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[95,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_15","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"quadradocomicone","refId":"comp_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2179","refId":"comp_22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[219.649,266.884,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":29,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":46,"s":[95,95,100]},{"t":63,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":4,"op":3604,"st":4,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Grupo 2176","refId":"comp_24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275.291,204.69,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":27,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":44,"s":[95,95,100]},{"t":61,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":2,"op":3602,"st":2,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"quadradoanimado","refId":"comp_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_16","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Caminho 3003 Comp 1","parent":3,"refId":"comp_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[298.982,244.831],[250.232,244.831],[250.232,272.804],[298.982,272.804]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":-12,"op":3588,"st":-12,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Caminho 3002 Comp 1","parent":3,"refId":"comp_18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[298.982,259.831],[250.232,259.831],[250.232,300.635],[298.982,300.635]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":-12,"op":3588,"st":-12,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Retângulo 17283 Comp 1","parent":4,"refId":"comp_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-62.291,165.659,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[252.043,274.25],[210.278,274.25],[210.278,279.779],[252.043,279.779]],"c":true}]},{"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[295.016,274.25],[253.25,274.25],[253.25,279.779],[295.016,279.779]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":-12,"op":3588,"st":-12,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Grupo 2182","refId":"comp_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275.291,265.841,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":31,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":48,"s":[95,95,100]},{"t":65,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":6,"op":3606,"st":6,"bm":0}]},{"id":"comp_17","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3003","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":29,"s":[-274]},{"t":65,"s":[0]}],"ix":10},"p":{"a":0,"k":[255.926,272.935,0],"ix":2},"a":{"a":0,"k":[-0.777,16.81,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":37,"s":[0,51,100]},{"t":65,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-19.427,-0.534],[-1.57,-4.823],[0,0]],"o":[[0,0],[0,0],[11.678,0.319],[1.058,3.213],[0,0]],"v":[[36.437,17.12],[0.025,17.12],[17.985,0.012],[35.544,11.249],[36.437,17.12]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3003","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_18","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3002","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[274.262,263.115,0],"to":[0,-1.989,0],"ti":[0,1.989,0]},{"t":65,"s":[274.262,251.181,0]}],"ix":2},"a":{"a":0,"k":[3.135,3.13,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.724,0],[0,-1.725],[1.735,0],[0,1.735]],"o":[[0,-1.725],[1.735,0],[0,1.735],[-1.724,0],[0,0]],"v":[[0,3.13],[3.14,0],[6.27,3.13],[3.14,6.26],[0,3.13]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3002","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_19","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Retângulo 17283","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[274.683,276.71,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-22.997,0.195]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[38.412,2.822],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-19.12,-0.331],"ix":2},"a":{"a":0,"k":[-19.12,-0.331],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Retângulo 17283","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_20","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2181","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.305],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2180","parent":1,"refId":"comp_21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.305],[0,50.305]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_21","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3001","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.053,50.305],[0,42.252],[0,8.053],[8.053,0],[42.252,0],[50.305,8.053],[50.305,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3001","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_22","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2178","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.305],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2177","parent":1,"refId":"comp_23","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.305],[0,50.305]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_23","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3000","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.052,50.305],[0,42.252],[0,8.053],[8.052,0],[42.252,0],[50.303,8.053],[50.303,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3000","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_24","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2175","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.305],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2174","parent":1,"refId":"comp_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.305],[0,50.305]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_25","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 2999","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.053,50.305],[0,42.252],[0,8.053],[8.053,0],[42.252,0],[50.305,8.053],[50.305,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2999","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_26","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Grupo 2173","refId":"comp_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[219.649,205.733,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[95,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_27","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2172","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.153,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.306],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2171","parent":1,"refId":"comp_28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.306],[0,50.306]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_28","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 2998","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.153,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.052,50.305],[0,42.252],[0,8.053],[8.052,0],[42.252,0],[50.303,8.053],[50.303,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2998","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_29","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 2997","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.51,391.907,0],"ix":2},"a":{"a":0,"k":[56.555,11.277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[7.33,0],[0,0],[0,7.321],[0,0],[0,0],[-5.479,0],[0,0],[0,5.48]],"o":[[0,0],[0,7.321],[0,0],[-7.313,0],[0,0],[0,0],[0,5.48],[0,0],[5.479,0],[0,0]],"v":[[113.109,0],[113.109,9.234],[99.79,22.553],[13.319,22.553],[0,9.234],[0,0],[2.319,0],[12.283,9.956],[100.682,9.956],[110.637,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2997","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 2996","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.51,268.159,0],"ix":2},"a":{"a":0,"k":[56.555,112.472,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[5.479,0],[0,0],[0,-5.479],[0,0],[0,0],[0,0],[-7.313,0],[0,0],[0,-7.33]],"o":[[0,0],[0,0],[0,0],[0,-5.479],[0,0],[-5.479,0],[0,0],[0,0],[0,0],[0,-7.33],[0,0],[7.33,0],[0,0]],"v":[[113.109,13.319],[113.109,224.943],[110.637,224.943],[110.637,14.219],[100.682,4.255],[12.283,4.255],[2.319,14.219],[2.319,224.943],[0,224.943],[0,13.319],[13.319,0],[99.79,0],[113.109,13.319]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2996","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 2995","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.516,164.596,0],"ix":2},"a":{"a":0,"k":[19.56,4.65,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.434,0],[0,-1.434],[-1.426,0],[0,1.426]],"o":[[0,-1.434],[-1.426,0],[0,1.426],[1.434,0],[0,0]],"v":[[12.689,4.12],[10.095,1.525],[7.509,4.12],[10.095,6.705],[12.689,4.12]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.706],[0,0],[-0.704,0],[0,0],[0,0.713],[0,0],[0.713,0]],"o":[[0,0],[-0.704,0],[0,0],[0,0.713],[0,0],[0.713,0],[0,0],[0,-0.706],[0,0]],"v":[[22.03,1.525],[16.949,1.525],[15.665,2.81],[15.665,4.12],[16.949,5.403],[22.03,5.403],[23.315,4.12],[23.315,2.81],[22.03,1.525]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.034,-3.954],[2.976,0],[0,0],[0,0],[0.042,3.945],[0,0]],"o":[[0,0],[0,0],[-0.041,3.945],[0,0],[0,0],[-2.975,0],[-0.032,-3.954],[0,0]],"v":[[0,0],[39.12,0],[34.877,4.683],[28.544,9.299],[19.56,9.299],[10.576,9.299],[4.243,4.683],[0,0]],"c":false},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,-1.219],[-1.277,0],[0,1.219],[1.284,0]],"o":[[-1.277,0],[0,1.219],[1.284,0],[0,-1.219],[0,0]],"v":[[28.653,1.666],[26.331,3.871],[28.653,6.075],[30.974,3.871],[28.653,1.666]],"c":false},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2995","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 2994","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.446,163.41,0],"ix":2},"a":{"a":0,"k":[3.825,1.94,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.713,0],[0,0],[0,0.713],[0,0],[-0.704,0],[0,0],[0,-0.704]],"o":[[0,0],[0,0.713],[0,0],[-0.704,0],[0,0],[0,-0.704],[0,0],[0.713,0],[0,0]],"v":[[7.65,1.285],[7.65,2.594],[6.365,3.879],[1.285,3.879],[0,2.594],[0,1.285],[1.285,0],[6.365,0],[7.65,1.285]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960784314,0.121568627451,0.160784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2994","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 2993","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.608,163.817,0],"ix":2},"a":{"a":0,"k":[2.319,2.208,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.283,0],[0,1.215],[-1.274,0],[0,-1.214]],"o":[[0,1.215],[-1.274,0],[0,-1.214],[1.283,0],[0,0]],"v":[[4.638,2.208],[2.319,4.416],[0,2.208],[2.319,0],[4.638,2.208]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317647058824,0.341176470588,0.376470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2993","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 2992","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[202.055,164.061,0],"ix":2},"a":{"a":0,"k":[2.59,2.59,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-1.434],[1.434,0],[0,1.426],[-1.426,0]],"o":[[1.434,0],[0,1.426],[-1.426,0],[0,-1.434],[0,0]],"v":[[2.586,0],[5.18,2.595],[2.586,5.181],[0,2.595],[2.586,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137254902,0.254901960784,0.294117647059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2992","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Caminho 2991","sr":1,"ks":{"o":{"a":0,"k":98,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.434,275.264,0],"ix":2},"a":{"a":0,"k":[54.159,115.322,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.479,0],[0,0],[0,5.479],[0,0],[-5.479,0],[0,0],[0,-5.479]],"o":[[0,0],[0,5.479],[0,0],[-5.479,0],[0,0],[0,-5.479],[0,0],[5.479,0],[0,0]],"v":[[108.318,9.964],[108.318,220.688],[98.362,230.644],[9.964,230.644],[0,220.688],[0,9.964],[9.964,0],[98.362,0],[108.318,9.964]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2991","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Caminho 2990","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.239,279.443,0],"ix":2},"a":{"a":0,"k":[61.498,127.366,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-9.615],[0,0],[-9.615,0],[0,0],[0,9.615],[0,0],[9.614,0]],"o":[[0,0],[-9.615,0],[0,0],[0,9.615],[0,0],[9.614,0],[0,0],[0,-9.615],[0,0]],"v":[[105.558,0],[17.439,0],[0,17.447],[0,237.294],[17.439,254.732],[105.558,254.732],[122.997,237.294],[122.997,17.447],[105.558,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[9.156,0],[0,0],[0,9.156],[0,0],[-9.157,0],[0,0],[0,-9.156]],"o":[[0,9.156],[0,0],[-9.157,0],[0,0],[0,-9.156],[0,0],[9.156,0],[0,0]],"v":[[122.172,237.294],[105.558,253.899],[17.439,253.899],[0.833,237.294],[0.833,17.447],[17.439,0.832],[105.558,0.832],[122.172,17.447]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.8,0.8,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2990","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Caminho 2989","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.243,279.443,0],"ix":2},"a":{"a":0,"k":[61.086,126.95,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-9.359],[0,0],[-9.352,0],[0,0],[0,9.369],[0,0],[9.359,0]],"o":[[0,0],[-9.352,0],[0,0],[0,9.369],[0,0],[9.359,0],[0,0],[0,-9.359],[0,0]],"v":[[105.142,0],[17.023,0],[0,17.031],[0,236.878],[17.023,253.9],[105.142,253.9],[122.172,236.878],[122.172,17.031],[105.142,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.478],[0,0],[5.479,0],[0,0],[0,5.48],[0,0],[-5.478,0]],"o":[[5.479,0],[0,0],[0,5.48],[0,0],[-5.478,0],[0,0],[0,-5.478],[0,0]],"v":[[105.481,7.449],[115.437,17.413],[115.437,228.136],[105.481,238.093],[17.082,238.093],[7.119,228.136],[7.119,17.413],[17.082,7.449]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.160784313725,0.160784313725,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2989","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"relogio","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[179,349,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":5,"op":3605,"st":5,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"sacodepao","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[197,353,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":15,"op":3615,"st":15,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"elementosesq","refId":"comp_13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[0]},{"t":36,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[176.214,353.201,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":18,"op":3618,"st":18,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"celular","refId":"comp_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[197,346,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"elementosesq","refId":"comp_13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[0]},{"t":37,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[244.377,275.164,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[-83,83,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":20,"op":3620,"st":20,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/src/assets/orders.png b/enatega-multivendor-restaurant/src/assets/orders.png
new file mode 100644
index 0000000..a9fa2ab
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/orders.png differ
diff --git a/enatega-multivendor-restaurant/src/assets/restBackground.png b/enatega-multivendor-restaurant/src/assets/restBackground.png
new file mode 100644
index 0000000..1c30875
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/restBackground.png differ
diff --git a/enatega-multivendor-restaurant/src/assets/shop.png b/enatega-multivendor-restaurant/src/assets/shop.png
new file mode 100644
index 0000000..c8b779e
Binary files /dev/null and b/enatega-multivendor-restaurant/src/assets/shop.png differ
diff --git a/enatega-multivendor-restaurant/src/components/BackButton/BackButton.js b/enatega-multivendor-restaurant/src/components/BackButton/BackButton.js
new file mode 100644
index 0000000..ba9336e
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/BackButton/BackButton.js
@@ -0,0 +1,16 @@
+import React from 'react'
+import { Pressable } from 'react-native'
+import styles from './styles'
+import { Icon } from 'react-native-elements'
+
+export default function BackButton({ navigation }) {
+ return (
+ {
+ navigation.goBack()
+ }}>
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/components/BackButton/index.js b/enatega-multivendor-restaurant/src/components/BackButton/index.js
new file mode 100644
index 0000000..def0e49
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/BackButton/index.js
@@ -0,0 +1 @@
+export { default as BackButton } from './BackButton'
diff --git a/enatega-multivendor-restaurant/src/components/BackButton/styles.js b/enatega-multivendor-restaurant/src/components/BackButton/styles.js
new file mode 100644
index 0000000..75a32e5
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/BackButton/styles.js
@@ -0,0 +1,20 @@
+import { StyleSheet, Platform, NativeModules } from 'react-native'
+const { StatusBarManager } = NativeModules
+
+const STATUSBAR_HEIGHT = Platform.OS === 'ios' ? 20 : StatusBarManager.HEIGHT
+const styles = StyleSheet.create({
+ container: {
+ position: 'absolute',
+ top: STATUSBAR_HEIGHT + 20,
+ left: 20,
+ backgroundColor: 'black',
+ width: 30,
+ height: 30,
+ zIndex: 9999,
+ elevation: 9999,
+ borderRadius: 8,
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
+export default styles
diff --git a/enatega-multivendor-restaurant/src/components/FlashMessage/FlashMessage.js b/enatega-multivendor-restaurant/src/components/FlashMessage/FlashMessage.js
new file mode 100644
index 0000000..fdc3c76
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/FlashMessage/FlashMessage.js
@@ -0,0 +1,18 @@
+import { showMessage } from 'react-native-flash-message'
+import PropTypes from 'prop-types'
+
+const FlashMessage = props => {
+ showMessage({
+ backgroundColor: 'rgba(52, 52, 52, .9)',
+ message: props.message,
+ position: 'center',
+ style: { borderRadius: 50 },
+ hideOnPress: false,
+ onPress: props.onPress
+ })
+}
+FlashMessage.propTypes = {
+ message: PropTypes.string.isRequired
+}
+
+export default FlashMessage
diff --git a/enatega-multivendor-restaurant/src/components/FlashMessage/index.js b/enatega-multivendor-restaurant/src/components/FlashMessage/index.js
new file mode 100644
index 0000000..bb62ccf
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/FlashMessage/index.js
@@ -0,0 +1 @@
+export { default as FlashMessage } from './FlashMessage'
diff --git a/enatega-multivendor-restaurant/src/components/HomeOrderDetails/HomeOrderDetails.js b/enatega-multivendor-restaurant/src/components/HomeOrderDetails/HomeOrderDetails.js
new file mode 100644
index 0000000..463ac30
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/HomeOrderDetails/HomeOrderDetails.js
@@ -0,0 +1,245 @@
+import { View, Pressable } from 'react-native'
+import React, { useContext, useState, useRef, useEffect } from 'react'
+import styles from './styles'
+import { TextDefault } from '../../components'
+import { colors, MAX_TIME } from '../../utilities'
+import { Badge } from 'react-native-elements'
+import { Configuration } from '../../ui/context'
+import { useSubscription, gql } from '@apollo/client'
+import moment from 'moment'
+import { subscriptionOrder } from '../../apollo'
+import CountDown from 'react-native-countdown-component'
+import {useTranslation} from 'react-i18next'
+
+function HomeOrderDetails(props) {
+ const { activeBar, navigation } = props
+ const {
+ orderId,
+ orderAmount,
+ paymentMethod,
+ orderDate,
+ _id,
+ preparationTime,
+ createdAt,
+ isRinged
+ } = props?.order
+ const timeNow = new Date()
+ const {t} = useTranslation()
+ const date = new Date(orderDate)
+ const acceptanceTime = moment(date).diff(timeNow, 'seconds')
+ // current
+ const createdTime = new Date(createdAt)
+ var remainingTime = moment(createdTime)
+ .add(MAX_TIME, 'seconds')
+ .diff(timeNow, 'seconds')
+ const configuration = useContext(Configuration.Context)
+
+ // prepTime
+ const prep = new Date(preparationTime)
+ const diffTime = prep - timeNow
+ const totalPrep = diffTime > 0 ? diffTime / 1000 : 0
+
+ // accept time
+ const [isAcceptButtonVisible, setIsAcceptButtonVisible] = useState(
+ !moment().isBefore(date)
+ )
+ const timer = useRef()
+ const decision = !isAcceptButtonVisible
+ ? acceptanceTime
+ : remainingTime > 0
+ ? remainingTime
+ : 0
+ if (decision === acceptanceTime) {
+ remainingTime = 0
+ }
+ useEffect(() => {
+ let isSubscribed = true
+ ;(() => {
+ timer.current = setInterval(() => {
+ const isAcceptButtonVisible = !moment().isBefore(orderDate)
+ isSubscribed && setIsAcceptButtonVisible(isAcceptButtonVisible)
+ if (isAcceptButtonVisible) {
+ timer.current && clearInterval(timer.current)
+ }
+ }, 10000)
+ })()
+ return () => {
+ timer.current && clearInterval(timer.current)
+ isSubscribed = false
+ }
+ }, [])
+
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id: _id } }
+ )
+
+ return (
+ {
+ navigation.navigate('OrderDetail', {
+ activeBar,
+ orderData: props?.order,
+ remainingTime,
+ createdAt,
+ MAX_TIME,
+ acceptanceTime,
+ preparationTime
+ })
+ }}>
+ {activeBar === 0 ? (
+
+ ) : null}
+
+
+
+ {t('orderId')}:
+
+
+ {orderId}
+
+
+
+ {t('orderAmount')}:
+ {`${configuration.currencySymbol}${orderAmount}`}:
+
+
+ {t('paymentMethod')}
+ {paymentMethod}
+
+
+ {t('time')}:
+
+ {moment(date).format('lll')}
+
+
+
+
+ {activeBar === 0 && (
+
+
+
+ )}
+ {activeBar === 1 && (
+
+
+
+ )}
+
+
+ navigation.navigate('OrderDetail', {
+ activeBar,
+ orderData: props?.order,
+ remainingTime,
+ createdAt,
+ MAX_TIME,
+ acceptanceTime,
+ preparationTime,
+ isRinged
+ })
+ }>
+
+ {activeBar === 0
+ ? t('pending')
+ : activeBar === 1
+ ? t('reject')
+ : t('delivered')}
+
+
+
+
+
+ )
+}
+export default HomeOrderDetails
diff --git a/enatega-multivendor-restaurant/src/components/HomeOrderDetails/index.js b/enatega-multivendor-restaurant/src/components/HomeOrderDetails/index.js
new file mode 100644
index 0000000..5e92c02
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/HomeOrderDetails/index.js
@@ -0,0 +1 @@
+export { default as HomeOrderDetails } from './HomeOrderDetails'
diff --git a/enatega-multivendor-restaurant/src/components/HomeOrderDetails/styles.js b/enatega-multivendor-restaurant/src/components/HomeOrderDetails/styles.js
new file mode 100644
index 0000000..309ef64
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/HomeOrderDetails/styles.js
@@ -0,0 +1,47 @@
+const Styles = {
+ card: {
+ display: 'flex',
+ width: '80%',
+ alignSelf: 'center',
+ marginTop: 20,
+ padding: 20,
+ borderRadius: 15,
+ shadowColor: 'gray',
+ shadowOffset: {
+ width: 0,
+ height: 7
+ },
+ shadowOpacity: 0.43,
+ shadowRadius: 9.51,
+
+ elevation: 15
+ },
+ heading: {
+ flex: 0.45
+ },
+ text: {
+ flex: 0.55
+ },
+ itemRowBar: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingBottom: 5
+ },
+ btn: {
+ padding: 10,
+ borderRadius: 10,
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center'
+ },
+ timerBar: {
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ flex: 1,
+ justifyContent: 'space-around',
+ marginTop: 10
+ }
+}
+
+export default Styles
diff --git a/enatega-multivendor-restaurant/src/components/OrderDetails/OrderDetails.js b/enatega-multivendor-restaurant/src/components/OrderDetails/OrderDetails.js
new file mode 100644
index 0000000..d521a05
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/OrderDetails/OrderDetails.js
@@ -0,0 +1,139 @@
+import React, { useContext } from 'react'
+import { View, Text } from 'react-native'
+import { TextDefault } from '..'
+import styles from './styles'
+import { colors } from '../../utilities'
+import { Configuration } from '../../ui/context'
+import { useTranslation } from 'react-i18next'
+
+export default function OrderDetails({ orderData }) {
+ const { orderId, user, deliveryAddress } = orderData
+ const { t } = useTranslation()
+ return (
+
+
+
+ {t('orderNo')}.
+
+ {orderId}
+
+
+
+ {t('email')}
+
+ {user.email}
+
+
+
+ {t('contact')}
+
+ {user.phone}
+
+
+
+ {t('address')}
+
+ {deliveryAddress.deliveryAddress}
+
+
+
+
+
+ )
+}
+function OrderItems({ orderData }) {
+ const { t } = useTranslation()
+ const {
+ items,
+ orderAmount,
+ tipping,
+ deliveryCharges,
+ taxationAmount
+ } = orderData
+ const configuration = useContext(Configuration.Context)
+ let subTotal = 0
+ return (
+
+ {items &&
+ items.map((item, index) => {
+ subTotal = subTotal + item.variation.price
+ return (
+
+ {`${item.quantity}x ${item.title}`}
+ {`${configuration.currencySymbol}${item.variation.price}`}
+ {item.addons &&
+ item.addons.map((addon, index) => {
+ ;{`${configuration.currencySymbol}${addon.price}`}
+ })}
+
+ )
+ })}
+
+
+ {t('subT')}
+
+
+ {`${configuration.currencySymbol}${subTotal.toFixed(2)}`}
+
+
+
+
+ {t('tip')}
+
+
+ {`${configuration.currencySymbol}${tipping}`}
+
+
+
+
+ {t('taxCharges')}
+
+
+ {`${configuration.currencySymbol}${taxationAmount}`}
+
+
+
+
+ {t('deliveryCharges')}
+
+
+ {`${configuration.currencySymbol}${deliveryCharges}`}
+
+
+
+
+
+ {t('total')}
+
+
+ {`${configuration.currencySymbol}${orderAmount}`}
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/components/OrderDetails/index.js b/enatega-multivendor-restaurant/src/components/OrderDetails/index.js
new file mode 100644
index 0000000..68fc406
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/OrderDetails/index.js
@@ -0,0 +1 @@
+export { default as OrderDetails } from './OrderDetails'
diff --git a/enatega-multivendor-restaurant/src/components/OrderDetails/styles.js b/enatega-multivendor-restaurant/src/components/OrderDetails/styles.js
new file mode 100644
index 0000000..d73e40d
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/OrderDetails/styles.js
@@ -0,0 +1,58 @@
+import { StyleSheet } from 'react-native'
+import { colors } from '../../utilities'
+
+const styles = StyleSheet.create({
+ cardContainer: {
+ backgroundColor: '#fff',
+ width: '90%',
+ alignSelf: 'center',
+ padding: 25,
+ paddingTop: 15,
+ borderRadius: 15,
+ shadowColor: 'gray',
+ shadowOffset: {
+ width: 0,
+ height: 7
+ },
+ shadowOpacity: 0.43,
+ shadowRadius: 9.51,
+ elevation: 15
+ },
+ row: {
+ display: 'flex',
+ flexDirection: 'row',
+ width: '100%',
+ justifyContent: 'flex-start'
+ },
+ heading: {
+ flex: 0.4,
+ marginTop: 10,
+ color: colors.fontSecondColor,
+ fontWeight: '700'
+ },
+ text: {
+ flex: 0.6,
+ marginTop: 10,
+ fontWeight: '700'
+ },
+ itemRowBar: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ borderBottomWidth: 0.5,
+ borderBottomColor: colors.fontSecondColor,
+ marginTop: 10,
+ paddingBottom: 5
+ },
+ itemRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between'
+ },
+ itemHeading: {
+ marginTop: 10
+ },
+ itemText: {
+ marginTop: 10
+ }
+})
+
+export default styles
diff --git a/enatega-multivendor-restaurant/src/components/Overlay/OverlayComponent.js b/enatega-multivendor-restaurant/src/components/Overlay/OverlayComponent.js
new file mode 100644
index 0000000..4ff2391
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Overlay/OverlayComponent.js
@@ -0,0 +1,81 @@
+import React, { useState } from 'react'
+import { View, Pressable, TouchableOpacity } from 'react-native'
+import { Spinner, TextDefault } from '..'
+import styles from './styles'
+import { colors, TIMES } from '../../utilities'
+import { Overlay } from 'react-native-elements'
+import { useAcceptOrder, usePrintOrder, useOrderRing } from '../../ui/hooks'
+import {useTranslation} from 'react-i18next'
+
+export default function OverlayComponent(props) {
+ const {t} = useTranslation()
+ const { visible, toggle, order, print, navigation } = props
+ const [selectedTime, setSelectedTime] = useState(TIMES[0])
+ const { acceptOrder, loading } = useAcceptOrder()
+ const { muteRing } = useOrderRing()
+ const { printOrder } = usePrintOrder()
+
+ const btnPress = () => {
+ if (print) {
+ acceptOrder(order._id, selectedTime.toString())
+ muteRing(order.orderId)
+ printOrder(order._id)
+ } else {
+ acceptOrder(order._id, selectedTime.toString())
+ muteRing(order.orderId)
+ }
+ toggle()
+ loading ? : navigation.goBack()
+ }
+ return (
+
+
+
+
+ {t('setTime')}
+
+ {t('forPreparation')}
+
+
+
+ {TIMES.map((time, index) => (
+ setSelectedTime(time)}
+ style={[
+ styles.timeBtn,
+ {
+ backgroundColor:
+ selectedTime === time ? 'black' : colors.white
+ }
+ ]}>
+
+ {time + t('mins')}
+
+
+ ))}
+
+
+
+
+ {t('setAndAccept')}
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/components/Overlay/index.js b/enatega-multivendor-restaurant/src/components/Overlay/index.js
new file mode 100644
index 0000000..423e4b3
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Overlay/index.js
@@ -0,0 +1 @@
+export { default as OverlayComponent } from './OverlayComponent'
diff --git a/enatega-multivendor-restaurant/src/components/Overlay/styles.js b/enatega-multivendor-restaurant/src/components/Overlay/styles.js
new file mode 100644
index 0000000..90e026d
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Overlay/styles.js
@@ -0,0 +1,48 @@
+import { StyleSheet, Dimensions } from 'react-native'
+import { colors } from '../../utilities'
+const { width, height } = Dimensions.get('window')
+const styles = StyleSheet.create({
+ container: {
+ width: width * 0.85,
+ height: height * 0.5,
+ borderRadius: 30,
+ alignItems: 'center'
+ },
+ header: {
+ backgroundColor: colors.green,
+ width: 220,
+ height: 100,
+ marginTop: -60,
+ borderRadius: 30,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ time: {
+ display: 'flex',
+ height: '60%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ width: '80%'
+ },
+ timeBtn: {
+ flexGrow: 1,
+ width: '25%',
+ padding: 10,
+ margin: 10,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 8,
+ borderWidth: 1,
+ borderColor: 'black'
+ },
+ btn: {
+ backgroundColor: 'black',
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ height: 40,
+ width: '70%',
+ borderRadius: 10
+ }
+})
+export default styles
diff --git a/enatega-multivendor-restaurant/src/components/SideBar/SideBar.js b/enatega-multivendor-restaurant/src/components/SideBar/SideBar.js
new file mode 100644
index 0000000..5fdf4b4
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/SideBar/SideBar.js
@@ -0,0 +1,264 @@
+import React, { useState, useEffect, useRef } from 'react'
+import {
+ View,
+ ImageBackground,
+ Platform,
+ Switch,
+ ActivityIndicator,
+ TouchableOpacity,
+ Linking,
+ AppState
+} from 'react-native'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import { colors } from '../../utilities/colors'
+import bg from '../../assets/restBackground.png'
+import styles from './styles'
+import { Icon } from 'react-native-elements/dist/icons/Icon'
+import { useAccount } from '../../ui/hooks'
+import { Image } from 'react-native-elements'
+import useNotification from '../../ui/hooks/useNotification'
+import { PRODUCT_URL, PRIVACY_URL, ABOUT_URL } from '../../utilities'
+import { useNavigation } from '@react-navigation/native';
+import i18next from '../../../i18n'
+import {useTranslation} from 'react-i18next'
+import { createNativeStackNavigator } from '@react-navigation/native-stack'
+
+export default function SideBar() {
+ const {t} = useTranslation()
+ const notificationRef = useRef(true)
+ const openSettingsRef = useRef(false)
+ const { logout, data, toggleSwitch, isAvailable } = useAccount()
+ const [notificationStatus, setNotificationStatus] = useState(false)
+ const appState = useRef(AppState.currentState)
+ const navigation = useNavigation();
+ const {
+ restaurantData,
+ getPermission,
+ getExpoPushToken,
+ requestPermission,
+ sendTokenToBackend
+ } = useNotification()
+
+ useEffect(() => {
+ const checkToken = async () => {
+ if (restaurantData) {
+ setNotificationStatus(restaurantData.restaurant.enableNotification)
+ if (
+ restaurantData.restaurant.enableNotification &&
+ notificationRef.current
+ ) {
+ const permissionStatus = await getPermission()
+ if (permissionStatus.granted) {
+ setNotificationStatus(true)
+ const token = (await getExpoPushToken()).data
+ sendTokenToBackend({ variables: { token, isEnabled: true } })
+ }
+ }
+ notificationRef.current = false
+ }
+ }
+ checkToken()
+ }, [restaurantData])
+
+ useEffect(() => {
+ const subscription = AppState.addEventListener('change', nextAppState => {
+ if (
+ appState.current.match(/inactive|background/) &&
+ nextAppState === 'active'
+ ) {
+ const checkTokenOnFocus = async () => {
+ if (
+ !notificationStatus &&
+ (await getPermission()).granted &&
+ openSettingsRef.current
+ ) {
+ setNotificationStatus(true)
+ const token = (await getExpoPushToken()).data
+ sendTokenToBackend({ variables: { token, isEnabled: true } })
+ }
+ }
+ if (!notificationRef.current) checkTokenOnFocus()
+ }
+
+ appState.current = nextAppState
+ })
+ return () => {
+ subscription && subscription.remove()
+ }
+ }, [])
+
+ const handleClick = async () => {
+ if (notificationStatus === false) {
+ const permissionStatus = await getPermission()
+ if (permissionStatus.granted) {
+ setNotificationStatus(true)
+ const token = (await getExpoPushToken()).data
+ sendTokenToBackend({ variables: { token, isEnabled: true } })
+ } else if (permissionStatus.canAskAgain) {
+ const result = await requestPermission()
+ if (result.granted) {
+ setNotificationStatus(true)
+ const token = (await getExpoPushToken()).data
+ sendTokenToBackend({ variables: { token, isEnabled: true } })
+ }
+ } else {
+ openSettingsRef.current = true
+ Platform.OS === 'ios'
+ ? Linking.openURL('app-settings:')
+ : Linking.openSettings()
+ }
+ } else {
+ setNotificationStatus(false)
+ sendTokenToBackend({ variables: { token: null, isEnabled: false } })
+ }
+ }
+ const handleSettingsClick = () => {
+ navigation.navigate('Language');
+ };
+
+ return (
+
+
+
+
+
+ }
+ />
+
+
+
+ {data && data.restaurant.name}
+
+
+
+
+
+
+
+ {t('status')}
+
+
+
+ {isAvailable ? t('online') : t('closed')}
+
+
+
+
+
+
+ {t('notifications')}
+
+
+
+ {notificationStatus ? t('onn') : t('off')}
+
+
+
+
+
+ Linking.canOpenURL(PRODUCT_URL).then(() => {
+ Linking.openURL(PRODUCT_URL)
+ })
+ }>
+
+
+
+
+ {t('productPage')}
+
+
+
+ Linking.canOpenURL(
+ 'https://enatega.com/privacy-policy/'
+ ).then(() => {
+ Linking.openURL(
+ 'https://enatega.com/privacy-policy/'
+ )
+ })
+ }>
+
+
+
+
+
+ {t('privacyPolicy')}
+
+
+
+ Linking.canOpenURL(ABOUT_URL).then(() => {
+ Linking.openURL(ABOUT_URL)
+ })
+ }>
+
+
+
+
+ {t('aboutUs')}
+
+
+
+
+
+
+
+
+
+
+ {t('titleLogout')}
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/src/components/SideBar/styles.js b/enatega-multivendor-restaurant/src/components/SideBar/styles.js
new file mode 100644
index 0000000..1812b9a
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/SideBar/styles.js
@@ -0,0 +1,69 @@
+import { StyleSheet } from 'react-native'
+import { colors } from '../../utilities'
+const styles = StyleSheet.create({
+ image: {
+ flex: 1,
+ justifyContent: 'center'
+ },
+ item: {
+ aspectRatio: 1,
+ width: '100%',
+ flex: 1
+ },
+ topContainer: {
+ flex: 0.35,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#000000bf'
+ },
+ profileContainer: {
+ display: 'flex',
+ flexDirection: 'row',
+ justifyContent: 'flex-start',
+ width: '80%',
+ alignItems: 'center'
+ },
+ middleContainer: {
+ flex: 0.5,
+ backgroundColor: '#000000bf'
+ },
+ lowerContainer: {
+ flex: 0.15,
+ backgroundColor: '#000000bf'
+ },
+ avatar: {
+ width: 100,
+ height: 100,
+ borderWidth: 6,
+ borderColor: colors.white,
+ borderRadius: 15,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ logout: {
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginHorizontal: '10%',
+ justifyContent: 'flex-start',
+ marginVertical: 10
+ },
+ icon: {
+ width: '15%'
+ },
+ text: {
+ marginLeft: 20,
+ color: colors.white
+ },
+ status: {
+ marginBottom: '15%',
+ marginHorizontal: 10,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ }
+})
+
+export default styles
diff --git a/enatega-multivendor-restaurant/src/components/Spinner/Spinner.js b/enatega-multivendor-restaurant/src/components/Spinner/Spinner.js
new file mode 100644
index 0000000..3167094
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Spinner/Spinner.js
@@ -0,0 +1,14 @@
+import React from 'react'
+import { ActivityIndicator } from 'react-native'
+import { colors } from '../../utilities'
+
+function Spinner(props) {
+ return (
+
+ )
+}
+export default Spinner
diff --git a/enatega-multivendor-restaurant/src/components/Spinner/index.js b/enatega-multivendor-restaurant/src/components/Spinner/index.js
new file mode 100644
index 0000000..6785a4a
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Spinner/index.js
@@ -0,0 +1 @@
+export { default as Spinner } from './Spinner'
diff --git a/enatega-multivendor-restaurant/src/components/TabBars/TabBars.js b/enatega-multivendor-restaurant/src/components/TabBars/TabBars.js
new file mode 100644
index 0000000..ae21c26
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/TabBars/TabBars.js
@@ -0,0 +1,83 @@
+import React from 'react'
+import { View, Pressable } from 'react-native'
+import { TextDefault } from '..'
+import styles from './styles'
+import { colors } from '../../utilities'
+import { Badge } from 'react-native-elements'
+import { useTranslation } from 'react-i18next'
+
+export default function TabBars(props) {
+ const { setActiveBar, newAmount, processingAmount } = props
+ const handleProcess = async () => {
+ setActiveBar(1)
+ }
+ const handleDelivered = async () => {
+ setActiveBar(2)
+ }
+ const { t } = useTranslation()
+ return (
+
+ setActiveBar(0)}
+ style={[
+ styles.barContent,
+ {
+ backgroundColor: props.activeBar === 0 ? 'black' : colors.white,
+ zIndex: props.activeBar === 0 ? 1 : -1
+ }
+ ]}>
+ {props.activeBar !== 0 ? (
+
+ ) : null}
+
+
+ {t('newOrders')}
+
+
+
+
+ {props.activeBar !== 1 ? (
+
+ ) : null}
+
+ {t('processing')}
+
+
+
+
+ {t('deliveredOrders')}
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/components/TabBars/index.js b/enatega-multivendor-restaurant/src/components/TabBars/index.js
new file mode 100644
index 0000000..4b5f028
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/TabBars/index.js
@@ -0,0 +1 @@
+export { default as TabBars } from './TabBars'
diff --git a/enatega-multivendor-restaurant/src/components/TabBars/styles.js b/enatega-multivendor-restaurant/src/components/TabBars/styles.js
new file mode 100644
index 0000000..cf3defe
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/TabBars/styles.js
@@ -0,0 +1,36 @@
+import { StyleSheet } from 'react-native'
+import { colors } from '../../utilities'
+const styles = StyleSheet.create({
+ topContainer: {
+ backgroundColor: '#ffffffab',
+ flex: 0.3,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ barContainer: {
+ display: 'flex',
+ flexDirection: 'row',
+ width: '90%',
+ alignSelf: 'center',
+ justifyContent: 'space-between',
+ padding: 10,
+ backgroundColor: colors.white,
+ borderRadius: 10,
+ shadowColor: '#000',
+ shadowOffset: {
+ width: 0,
+ height: 2
+ },
+ shadowOpacity: 0.25,
+ shadowRadius: 3.84,
+
+ elevation: 5,
+ marginTop: -30
+ },
+ barContent: {
+ padding: 15,
+ borderRadius: 10
+ }
+})
+
+export default styles
diff --git a/enatega-multivendor-restaurant/src/components/Text/TextDefault/TextDefault.js b/enatega-multivendor-restaurant/src/components/Text/TextDefault/TextDefault.js
new file mode 100644
index 0000000..69d3466
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Text/TextDefault/TextDefault.js
@@ -0,0 +1,59 @@
+import React from 'react'
+import { Text, StyleSheet } from 'react-native'
+import PropTypes from 'prop-types'
+import { textStyles, colors } from '../../../utilities'
+import color from './styles'
+
+function TextDefault(props) {
+ const textColor = props.textColor ? props.textColor : colors.fontMainColor
+ const defaultStyle = StyleSheet.flatten([
+ color(textColor).color,
+ textStyles.Regular,
+ textStyles.Normal
+ ])
+ var customStyles = [defaultStyle]
+
+ if (props.bold) customStyles.push(textStyles.Bold)
+ if (props.bolder) customStyles.push(textStyles.Bolder)
+ if (props.center) customStyles.push(textStyles.Center)
+ if (props.right) customStyles.push(textStyles.Right)
+ if (props.small) customStyles.push(textStyles.Small)
+ if (props.xSmall) customStyles.push(textStyles.xSmall)
+ if (props.H5) customStyles.push(textStyles.H5)
+ if (props.H4) customStyles.push(textStyles.H4)
+ if (props.H3) customStyles.push(textStyles.H3)
+ if (props.H2) customStyles.push(textStyles.H2)
+ if (props.H1) customStyles.push(textStyles.H1)
+ if (props.uppercase) customStyles.push(textStyles.UpperCase)
+ if (props.lineOver) customStyles.push(textStyles.LineOver)
+
+ customStyles = StyleSheet.flatten([customStyles, props.style])
+ return (
+
+ {props.children}
+
+ )
+}
+
+TextDefault.propTypes = {
+ textColor: PropTypes.string,
+ bold: PropTypes.bool,
+ bolder: PropTypes.bool,
+ center: PropTypes.bool,
+ right: PropTypes.bool,
+ small: PropTypes.bool,
+ xSmall: PropTypes.bool,
+ H5: PropTypes.bool,
+ H4: PropTypes.bool,
+ H3: PropTypes.bool,
+ H2: PropTypes.bool,
+ H1: PropTypes.bool,
+ uppercase: PropTypes.bool,
+ lineOver: PropTypes.bool,
+ numberOfLines: PropTypes.number,
+ style: PropTypes.oneOfType([PropTypes.array, PropTypes.object])
+}
+
+export default TextDefault
diff --git a/enatega-multivendor-restaurant/src/components/Text/TextDefault/index.js b/enatega-multivendor-restaurant/src/components/Text/TextDefault/index.js
new file mode 100644
index 0000000..26af57d
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Text/TextDefault/index.js
@@ -0,0 +1 @@
+export { default as TextDefault } from './TextDefault'
diff --git a/enatega-multivendor-restaurant/src/components/Text/TextDefault/styles.js b/enatega-multivendor-restaurant/src/components/Text/TextDefault/styles.js
new file mode 100644
index 0000000..14a2c89
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Text/TextDefault/styles.js
@@ -0,0 +1,10 @@
+import { StyleSheet } from 'react-native'
+
+const color = textColor =>
+ StyleSheet.create({
+ color: {
+ color: textColor
+ }
+ })
+
+export default color
diff --git a/enatega-multivendor-restaurant/src/components/Text/TextError/TextError.js b/enatega-multivendor-restaurant/src/components/Text/TextError/TextError.js
new file mode 100644
index 0000000..d8b8cab
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Text/TextError/TextError.js
@@ -0,0 +1,33 @@
+import React from 'react'
+import { View } from 'react-native'
+import TextDefault from '../TextDefault/TextDefault'
+import { colors } from '../../../utilities'
+import PropTypes from 'prop-types'
+
+function TextError(props) {
+ return (
+
+
+ {props.text}{' '}
+
+
+ )
+}
+TextError.propTypes = {
+ text: PropTypes.string,
+ backColor: PropTypes.string,
+ textColor: PropTypes.string
+}
+export default TextError
diff --git a/enatega-multivendor-restaurant/src/components/Text/TextError/index.js b/enatega-multivendor-restaurant/src/components/Text/TextError/index.js
new file mode 100644
index 0000000..16c0198
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Text/TextError/index.js
@@ -0,0 +1 @@
+export { default as TextError } from './TextError'
diff --git a/enatega-multivendor-restaurant/src/components/Text/index.js b/enatega-multivendor-restaurant/src/components/Text/index.js
new file mode 100644
index 0000000..2e1e897
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/Text/index.js
@@ -0,0 +1,2 @@
+export * from './TextDefault'
+export * from './TextError'
diff --git a/enatega-multivendor-restaurant/src/components/index.js b/enatega-multivendor-restaurant/src/components/index.js
new file mode 100644
index 0000000..f1262d2
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/components/index.js
@@ -0,0 +1,3 @@
+export * from './Text'
+export * from './FlashMessage'
+export * from './Spinner'
diff --git a/enatega-multivendor-restaurant/src/navigation/authStack.js b/enatega-multivendor-restaurant/src/navigation/authStack.js
new file mode 100644
index 0000000..b4a4217
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/navigation/authStack.js
@@ -0,0 +1,16 @@
+import React from 'react'
+import { createNativeStackNavigator } from '@react-navigation/native-stack'
+import { LoginScreen } from '../screens'
+
+const Stack = createNativeStackNavigator()
+
+export default function AuthStack() {
+ return (
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/navigation/index.js b/enatega-multivendor-restaurant/src/navigation/index.js
new file mode 100644
index 0000000..64e2a85
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/navigation/index.js
@@ -0,0 +1,14 @@
+import React, { useContext } from 'react'
+import { NavigationContainer } from '@react-navigation/native'
+import MainStack from './mainStack'
+import AuthStack from './authStack'
+import { AuthContext } from '../ui/context'
+
+export default function index() {
+ const { isLoggedIn } = useContext(AuthContext)
+ return (
+
+ {isLoggedIn ? : }
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/navigation/mainStack.js b/enatega-multivendor-restaurant/src/navigation/mainStack.js
new file mode 100644
index 0000000..55d8daa
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/navigation/mainStack.js
@@ -0,0 +1,144 @@
+import React, { useCallback } from 'react'
+import * as Notifications from 'expo-notifications'
+import { Restaurant, SoundContextProvider } from '../ui/context'
+import { OrderDetailScreen } from '../screens/OrderDetail'
+import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'
+import { createDrawerNavigator } from '@react-navigation/drawer'
+import { createNativeStackNavigator } from '@react-navigation/native-stack'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import { OrdersScreen } from '../screens/Orders'
+import SideBar from '../components/SideBar/SideBar'
+import { screenOptions, tabIcon } from './screenOptions'
+import { colors } from '../utilities/colors'
+import { gql, useApolloClient } from '@apollo/client'
+import { orders } from '../apollo'
+import { useNavigation } from '@react-navigation/native'
+import { SelectLanguage } from '../screens/Setting'
+import moment from 'moment'
+import {useTranslation} from 'react-i18next'
+import { MAX_TIME } from '../utilities'
+Notifications.setNotificationHandler({
+ handleNotification: async () => ({
+ shouldShowAlert: true,
+ shouldPlaySound: true,
+ shouldSetBadge: true
+ })
+})
+const Drawer = createDrawerNavigator()
+const Tabs = createBottomTabNavigator()
+const Stack = createNativeStackNavigator()
+
+export default function MainStack() {
+ const {t} = useTranslation()
+ const client = useApolloClient()
+ const navigation = useNavigation()
+ const lastNotificationResponse = Notifications.useLastNotificationResponse()
+ const handleNotification = useCallback(
+ async response => {
+ const { _id } = response.notification.request.content.data
+ const { data } = await client.query({
+ query: gql`
+ ${orders}
+ `,
+ fetchPolicy: 'network-only'
+ })
+ const order = data.restaurantOrders.find(o => o._id === _id)
+ const acceptanceTime = moment(new Date(order.orderDate)).diff(
+ new Date(),
+ 'seconds'
+ )
+ var remainingTime = moment(new Date(order.createdAt))
+ .add(MAX_TIME, 'seconds')
+ .diff(new Date(), 'seconds')
+
+ const lastNotificationHandledId = await AsyncStorage.getItem(
+ '@lastNotificationHandledId'
+ )
+ if (lastNotificationHandledId === _id) return
+ await AsyncStorage.setItem('@lastNotificationHandledId', _id)
+ navigation.navigate('OrderDetail', {
+ activeBar: 0,
+ orderData: order,
+ remainingTime,
+ createdAt: order.createdAt,
+ acceptanceTime,
+ preparationTime: order.preparationTime
+ })
+ },
+ [lastNotificationResponse]
+ )
+ React.useEffect(() => {
+ if (
+ lastNotificationResponse &&
+ lastNotificationResponse.notification.request.content.data.type ===
+ 'order' &&
+ lastNotificationResponse.actionIdentifier ===
+ Notifications.DEFAULT_ACTION_IDENTIFIER
+ ) {
+ handleNotification(lastNotificationResponse)
+ }
+ }, [lastNotificationResponse])
+
+ return (
+
+
+
+
+
+ )
+}
+
+function DrawerNavigator() {
+ return (
+ }>
+
+
+ )
+}
+function TabNavigator() {
+ const {t} = useTranslation()
+ return (
+ tabIcon(route)}
+ tabBarLabelStyle={{
+ color: colors.green
+ }}>
+ ({
+ tabPress: e => {
+ e.preventDefault()
+
+ navigation.openDrawer()
+ }
+ })}
+ />
+
+ {/* {Platform.OS === 'ios' ? null : */}
+
+ {/* } */}
+
+ )
+}
+function StackNavigator() {
+ return (
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/navigation/screenOptions.js b/enatega-multivendor-restaurant/src/navigation/screenOptions.js
new file mode 100644
index 0000000..64aa93a
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/navigation/screenOptions.js
@@ -0,0 +1,75 @@
+import React from 'react'
+import { Dimensions, View, Platform } from 'react-native'
+import { textStyles, scale, colors } from '../utilities'
+import { Icon } from 'react-native-elements'
+import {useTranslation} from 'react-i18next'
+
+const { height } = Dimensions.get('window')
+const screenOptions = props => ({
+ headerShown: false
+})
+const tabIcon = route => ({
+ headerShown: false,
+ keyboardHidesTabBar: true,
+ tabBarActiveTintColor: colors.green,
+ tabBarInactiveTintColor: colors.white,
+ tabBarItemStyle: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ tabBarLabelStyle: {
+ paddingBottom: Platform.OS === 'android' ? 8 : 8,
+ ...textStyles.Bold,
+ ...textStyles.Center,
+ ...textStyles.Small
+ },
+ tabBarStyle: {
+ position: 'absolute',
+ height: Platform.OS === 'android' ? 70 : height * 0.12,
+ backgroundColor: '#2c2c2c',
+ borderColor: 'black',
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15
+ },
+ tabBarIcon: ({ color, size }) => {
+ let iconName
+ const {t} = useTranslation()
+ if (route.name === t('titleHome')) {
+ iconName = 'home'
+ } else if (route.name === t('titleProfile')) {
+ iconName = 'user'
+ }
+ else if (route.name === 'Language') {
+ iconName = 'language'
+ }
+ return (
+
+
+
+ )
+ }
+})
+const tabOptions = () => ({
+ keyboardHidesTabBar: true,
+ activeTintColor: colors.iconPink,
+ inactiveTintColor: colors.white,
+ tabStyle: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ labelStyle: {
+ paddingBottom: Platform.OS === 'android' ? 10 : 10,
+ ...textStyles.Bold,
+ ...textStyles.Center,
+ ...textStyles.Small
+ },
+ style: {
+ position: 'absolute',
+ height: Platform.OS === 'android' ? 70 : height * 0.12,
+ backgroundColor: '#2c2c2c',
+ borderColor: 'black',
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15
+ }
+})
+export { screenOptions, tabOptions, tabIcon }
diff --git a/enatega-multivendor-restaurant/src/screens/Login/Login.js b/enatega-multivendor-restaurant/src/screens/Login/Login.js
new file mode 100644
index 0000000..a71a05a
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Login/Login.js
@@ -0,0 +1,146 @@
+import React, { useState } from 'react'
+import {
+ View,
+ Text,
+ ActivityIndicator,
+ ScrollView,
+ KeyboardAvoidingView,
+ Dimensions,
+ Platform
+} from 'react-native'
+import { TextDefault, Spinner } from '../../components'
+import { useLogin } from '../../ui/hooks'
+import { colors } from '../../utilities'
+import styles from './styles'
+import { Image, Button, Input, Icon } from 'react-native-elements'
+import {useTranslation} from 'react-i18next'
+
+const { height } = Dimensions.get('window')
+export default function Login() {
+ const {
+ onLogin,
+ isValid,
+ loading,
+ errors,
+ setPassword,
+ setUserName,
+ username,
+ password
+ } = useLogin()
+ const [showPassword, setShowPassword] = useState(false)
+ const {t} = useTranslation()
+ return (
+
+
+
+
+
+ }
+ style={{ width: 150, height: 140 }}
+ />
+
+
+
+
+
+ {t('signInWithEmail')}
+
+
+
+ setUserName(text)}
+ inputContainerStyle={styles.inputStyle}
+ errorMessage={
+ errors && errors.username ? errors.username.join(',') : null
+ }
+ onBlur={isValid}
+ autoCapitalize="none"
+ errorStyle={{ color: colors.textErrorColor }}
+ keyboardType="email-address"
+ defaultValue={username}
+ returnKeyType="next"
+ style={{ paddingLeft: 8 }}
+ />
+ setPassword(text)}
+ inputContainerStyle={styles.inputStyle}
+ returnKeyType="go"
+ style={{ paddingLeft: 8 }}
+ containerStyle={{ marginTop: 15 }}
+ secureTextEntry={!showPassword}
+ rightIconContainerStyle={{ marginRight: 10 }}
+ errorMessage={
+ errors && errors.password ? errors.password.join(',') : null
+ }
+ onBlur={isValid}
+ autoCapitalize="none"
+ errorStyle={{ color: colors.textErrorColor }}
+ defaultValue={password}
+ rightIcon={
+ setShowPassword(!showPassword)}
+ type="font-awesome"
+ color="gray"
+ name={showPassword ? 'eye' : 'eye-slash'}
+ size={20}
+ />
+ }
+ />
+
+
+
+ {loading ? (
+
+ ) : (
+
+ {t('login')}
+
+ )}
+
+
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/screens/Login/index.js b/enatega-multivendor-restaurant/src/screens/Login/index.js
new file mode 100644
index 0000000..b320c89
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Login/index.js
@@ -0,0 +1 @@
+export { default as LoginScreen } from './Login'
diff --git a/enatega-multivendor-restaurant/src/screens/Login/styles.js b/enatega-multivendor-restaurant/src/screens/Login/styles.js
new file mode 100644
index 0000000..3bd8c40
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Login/styles.js
@@ -0,0 +1,49 @@
+import { StyleSheet } from 'react-native'
+import { colors } from '../../utilities'
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ scrollContainer: {
+ justifyContent: 'center'
+ },
+ topContainer: {
+ backgroundColor: colors.white,
+ flex: 3,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ bgColor: {
+ backgroundColor: colors.white
+ },
+ lowerContainer: {
+ backgroundColor: colors.green,
+ flex: 7,
+ borderTopLeftRadius: 25,
+ borderTopRightRadius: 25,
+ justifyContent: 'space-around'
+ },
+ headingText: {
+ flex: 0.2,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ inputStyle: {
+ borderBottomWidth: 0,
+ borderRadius: 8,
+ height: 50,
+ width: '90%',
+ backgroundColor: colors.white,
+ shadowColor: '#000',
+ shadowOffset: {
+ width: 0,
+ height: 1
+ },
+ shadowOpacity: 0.22,
+ shadowRadius: 2.22,
+
+ elevation: 3
+ }
+})
+export default styles
diff --git a/enatega-multivendor-restaurant/src/screens/OrderDetail/OrderDetail.js b/enatega-multivendor-restaurant/src/screens/OrderDetail/OrderDetail.js
new file mode 100644
index 0000000..a9e26cc
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/OrderDetail/OrderDetail.js
@@ -0,0 +1,271 @@
+import React, { useState } from 'react'
+import { View, ActivityIndicator, ImageBackground } from 'react-native'
+import { ScrollView } from 'react-native-gesture-handler'
+import { Spinner, TextDefault } from '../../components'
+import { colors, MAX_TIME } from '../../utilities'
+import styles from './styles'
+import { Image, Button } from 'react-native-elements'
+import OrderDetails from '../../components/OrderDetails/OrderDetails'
+import { OverlayComponent } from '../../components/Overlay'
+import BackButton from '../../components/BackButton/BackButton'
+import moment from 'moment'
+import { useCancelOrder, useOrderPickedUp, useOrderRing } from '../../ui/hooks'
+import CountDown from 'react-native-countdown-component'
+import { useRestaurantContext } from '../../ui/context/restaurant'
+import { useTranslation } from 'react-i18next'
+
+export default function OrderDetail({ navigation, route }) {
+ const { t } = useTranslation()
+ const { activeBar, orderData, preparationTime, createdAt } = route.params
+ const { _id, orderDate } = orderData
+ const { cancelOrder, loading: cancelLoading } = useCancelOrder()
+ const { pickedUp, loading: loadingPicked } = useOrderPickedUp()
+ const { muteRing } = useOrderRing()
+ const [overlayVisible, setOverlayVisible] = useState(false)
+ const isAcceptButtonVisible = !moment().isBefore(orderDate)
+ const [print, setPrint] = useState(false)
+
+ const { data } = useRestaurantContext()
+ // current
+ const timeNow = new Date()
+
+ // create Time and Difference of 2 min calcualtion
+ const createdTime = new Date(createdAt)
+ const remainingTime = moment(createdTime)
+ .add(MAX_TIME, 'seconds')
+ .diff(timeNow, 'seconds')
+
+ // accept time for late time deliveries
+ const date = new Date(orderDate)
+ const acceptTime = moment(date).diff(timeNow, 'seconds')
+
+ // preparation time based on selection
+ const prep = new Date(preparationTime)
+ const diffTime = prep - timeNow
+ const totalPrep = diffTime > 0 ? diffTime / 1000 : 0
+
+ // checking whether to give 2 min time or accept time
+ const decision = !isAcceptButtonVisible
+ ? acceptTime
+ : remainingTime > 0
+ ? remainingTime
+ : 0
+
+ // image path
+ const order = data.restaurantOrders.find(o => o._id === _id)
+ const imagePath =
+ activeBar === 2
+ ? require('../../assets/shop.png')
+ : require('../../assets/bowl.png')
+
+ const toggleOverlay = () => {
+ setPrint(false)
+ setOverlayVisible(!overlayVisible)
+ }
+ const togglePrintOverlay = () => {
+ setPrint(true)
+ setOverlayVisible(!overlayVisible)
+ }
+ const cancelOrderFunc = () => {
+ cancelOrder(order._id, 'not available')
+ muteRing(order.orderId)
+ if (cancelLoading) {
+ return
+ } else {
+ navigation.goBack()
+ }
+ }
+ const pickUpOrderFunc = () => {
+ pickedUp(order._id)
+ if (loadingPicked) {
+ return
+ } else {
+ navigation.goBack()
+ }
+ }
+
+ return (
+
+
+
+
+ }
+ style={{ width: 150, height: 140 }}
+ />
+
+
+
+
+
+ }
+ style={{ width: 25, height: 25 }}
+ />
+
+
+
+ {activeBar === 2 ? t('prepared') : t('preparing')}
+
+
+ {activeBar === 2 ? t('delivered') : t('accepted')}
+
+
+
+
+
+
+
+ {!isAcceptButtonVisible && (
+ {t('acceptOrderText')}
+ )}
+ {activeBar === 0 && (
+
+ )}
+ {activeBar === 1 && (
+ <>
+
+ {t('timeLeft')}
+
+
+ >
+ )}
+
+ {activeBar === 0 && isAcceptButtonVisible && (
+ <>
+
+
+
+
+ >
+ )}
+ {activeBar === 1 && (
+ <>
+
+ >
+ )}
+ {activeBar !== 2 && (
+ <>
+
+ >
+ )}
+ {activeBar === 2 && (
+ <>
+
+ {t('delivered')}
+
+ >
+ )}
+
+
+
+ {t('orderDetail')}
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/screens/OrderDetail/index.js b/enatega-multivendor-restaurant/src/screens/OrderDetail/index.js
new file mode 100644
index 0000000..d65828b
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/OrderDetail/index.js
@@ -0,0 +1 @@
+export { default as OrderDetailScreen } from './OrderDetail'
diff --git a/enatega-multivendor-restaurant/src/screens/OrderDetail/styles.js b/enatega-multivendor-restaurant/src/screens/OrderDetail/styles.js
new file mode 100644
index 0000000..c8f2c1c
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/OrderDetail/styles.js
@@ -0,0 +1,61 @@
+import { StyleSheet, Dimensions, Platform } from 'react-native'
+import { colors } from '../../utilities'
+const { height } = Dimensions.get('window')
+const styles = StyleSheet.create({
+ image: {
+ flex: 1,
+ marginBottom: Platform === 'ios' ? height * 0.12 : height * 0.08
+ },
+ topContainer: {
+ backgroundColor: '#ffffffab',
+ flex: 0.3,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ lowerContainer: {
+ backgroundColor: '#ffffffab',
+ flex: 0.7
+ },
+ scrollView: {
+ backgroundColor: '#ffff'
+ },
+ barContainer: {
+ backgroundColor: '#ffff',
+ borderTopRightRadius: 30,
+ borderTopLeftRadius: 30
+ },
+ roundedBar: {
+ backgroundColor: '#E9E9E9',
+ width: '100%',
+ alignSelf: 'center',
+ height: 80,
+ borderRadius: 30,
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ iconContainer: {
+ backgroundColor: '#6FCF97',
+ width: 60,
+ height: 60,
+ borderRadius: 50,
+ marginLeft: 10,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ textContainer: {
+ marginLeft: 15
+ },
+ borderContainer: {
+ borderBottomWidth: 1,
+ marginTop: 20,
+ paddingBottom: 20,
+ borderBottomColor: colors.fontSecondColor,
+ width: '90%',
+ marginBottom: 30,
+ alignSelf: 'center'
+ }
+})
+
+export default styles
diff --git a/enatega-multivendor-restaurant/src/screens/Orders/Orders.js b/enatega-multivendor-restaurant/src/screens/Orders/Orders.js
new file mode 100644
index 0000000..8c21519
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Orders/Orders.js
@@ -0,0 +1,197 @@
+import { View, ActivityIndicator, ScrollView, Dimensions } from 'react-native'
+import React from 'react'
+import styles from './styles'
+import { TextError, Spinner, TextDefault } from '../../components'
+import { useOrders, useAcceptOrder } from '../../ui/hooks'
+import { colors } from '../../utilities'
+import { Image } from 'react-native-elements/dist/image/Image'
+import { TabBars } from '../../components/TabBars'
+import { HomeOrderDetails } from '../../components/HomeOrderDetails'
+import LottieView from 'lottie-react-native'
+import {useTranslation} from 'react-i18next'
+const { width, height } = Dimensions.get('window')
+import i18next from '../../../i18n'
+const Orders = props => {
+ const {
+ loading,
+ error,
+ data,
+ activeOrders,
+ processingOrders,
+ deliveredOrders,
+ active,
+ refetch,
+ setActive
+ } = useOrders()
+
+ const { loading: mutateLoading } = useAcceptOrder()
+ const {t} = useTranslation()
+ if (error) return
+ return (
+ <>
+ {mutateLoading ? (
+
+ ) : (
+ <>
+
+ }
+ style={{ width: 250, height: 100 }}
+ />
+
+
+ order.orderStatus === 'PENDING'
+ )
+ }
+ />
+ {loading ? (
+
+
+
+ ) : (
+
+
+ {active === 0 && activeOrders > 0
+ ? data &&
+ data.restaurantOrders
+ .filter(order => order.orderStatus === 'PENDING')
+ .map((order, index) => {
+ return (
+
+ )
+ })
+ : active === 0 && (
+
+
+ {t('unReadOrders')}
+
+
+
+ )}
+ {active === 1 && processingOrders > 0
+ ? data &&
+ data.restaurantOrders
+ .filter(order =>
+ ['ACCEPTED', 'ASSIGNED', 'PICKED'].includes(
+ order.orderStatus
+ )
+ )
+ .map((order, index) => {
+ return (
+
+ )
+ })
+ : active === 1 && (
+
+
+ {t('unReadOrders')}
+
+
+
+ )}
+ {active === 2 && deliveredOrders > 0
+ ? data &&
+ data.restaurantOrders
+ .filter(order => order.orderStatus === 'DELIVERED')
+ .map((order, index) => {
+ return (
+
+ )
+ })
+ : active === 2 && (
+
+
+ {t('unReadOrders')}
+
+
+
+ )}
+
+
+ )}
+
+ >
+ )}
+ >
+ )
+}
+
+export default Orders
diff --git a/enatega-multivendor-restaurant/src/screens/Orders/index.js b/enatega-multivendor-restaurant/src/screens/Orders/index.js
new file mode 100644
index 0000000..9c772d3
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Orders/index.js
@@ -0,0 +1 @@
+export { default as OrdersScreen } from './Orders'
diff --git a/enatega-multivendor-restaurant/src/screens/Orders/styles.js b/enatega-multivendor-restaurant/src/screens/Orders/styles.js
new file mode 100644
index 0000000..9bcb5f2
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Orders/styles.js
@@ -0,0 +1,32 @@
+import { Dimensions, Platform } from 'react-native'
+import { colors } from '../../utilities'
+const { height } = Dimensions.get('window')
+
+const Styles = {
+ topContainer: {
+ backgroundColor: colors.white,
+ flex: 0.3,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ lowerContainer: {
+ backgroundColor: colors.white,
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 12
+ },
+ shadowOpacity: 0.58,
+ shadowRadius: 16.0,
+ elevation: 24,
+ flex: 0.7,
+ borderTopRightRadius: 30,
+ borderTopLeftRadius: 30
+ },
+ scrollView: {
+ backgroundColor: 'transparent',
+ marginBottom: Platform === 'ios' ? height * 0.1 : height * 0.1
+ }
+}
+
+export default Styles
diff --git a/enatega-multivendor-restaurant/src/screens/Setting/SelectLanguage.js b/enatega-multivendor-restaurant/src/screens/Setting/SelectLanguage.js
new file mode 100644
index 0000000..9d26b0f
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Setting/SelectLanguage.js
@@ -0,0 +1,112 @@
+import React, { useState, useEffect } from 'react'
+import {
+ View,
+ Text,
+ ActivityIndicator,
+ ScrollView,
+ KeyboardAvoidingView,
+ Dimensions,
+ Platform
+} from 'react-native'
+import { TextDefault, Spinner } from '../../components'
+import { useLogin } from '../../ui/hooks'
+import { colors } from '../../utilities'
+import styles from './styles'
+import { Image, Button, Input, Icon } from 'react-native-elements'
+import { TouchableOpacity } from 'react-native'
+import { useNavigation } from '@react-navigation/native'
+import i18next from '../../../i18n'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import { useTranslation } from 'react-i18next'
+
+const { height } = Dimensions.get('window')
+export default function SelectLanguage() {
+ const {
+ onLogin,
+ isValid,
+ loading,
+ errors,
+ setPassword,
+ setUserName,
+ username,
+ password
+ } = useLogin()
+ const { t } = useTranslation()
+ const [selectedLanguage, setSelectedLanguage] = useState('')
+ const [loader, setLoader] = useState(false)
+ const [showPassword, setShowPassword] = useState(false)
+ const navigation = useNavigation()
+ const languageTypes = [
+ { value: 'English', code: 'en', index: 0 },
+ { value: 'français', code: 'fr', index: 1 },
+ { value: 'ភាសាខ្មែរ', code: 'km', index: 2 },
+ { value: '中文', code: 'zh', index: 3 },
+ { value: 'Deutsche', code: 'de', index: 4 },
+ { value: 'arabic', code: 'ar', index: 5 },
+ { value: 'swedish', code: 'sv', index: 6 }
+ ]
+
+ const changeLanguage = async language => {
+ setLoader(true)
+ console.log(language)
+ setSelectedLanguage(language)
+ await i18next.reloadResources(language, null)
+ i18next.changeLanguage(language)
+
+ await AsyncStorage.setItem('enatega-language', language)
+
+ var lang = await AsyncStorage.getItem('enatega-language')
+ console.log(lang)
+ setLoader(false)
+ }
+ return (
+
+
+
+
+
+ }
+ style={{ width: 150, height: 140 }}
+ />
+
+
+
+
+ {loader ? : null}
+
+ {t('selectLanguage')}
+
+ {languageTypes.map((item, index) => (
+ changeLanguage(item.code)}
+ style={styles.languageButton}>
+ {item.value}
+
+ ))}
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-restaurant/src/screens/Setting/index.js b/enatega-multivendor-restaurant/src/screens/Setting/index.js
new file mode 100644
index 0000000..6708e20
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Setting/index.js
@@ -0,0 +1 @@
+export { default as SelectLanguage} from './SelectLanguage'
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/src/screens/Setting/styles.js b/enatega-multivendor-restaurant/src/screens/Setting/styles.js
new file mode 100644
index 0000000..92be0f1
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/Setting/styles.js
@@ -0,0 +1,109 @@
+import { StyleSheet } from 'react-native'
+import { colors } from '../../utilities'
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ scrollContainer: {
+ justifyContent: 'center'
+ },
+ topContainer: {
+ backgroundColor: colors.white,
+ flex: 3,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ bgColor: {
+ backgroundColor: colors.white
+ },
+ lowerContainer: {
+ backgroundColor: colors.green,
+ flex: 7,
+ borderTopLeftRadius: 25,
+ borderTopRightRadius: 25,
+ justifyContent: 'space-around'
+ },
+ headingText: {
+ flex: 0.2,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ inputStyle: {
+ borderBottomWidth: 0,
+ borderRadius: 8,
+ height: 50,
+ width: '90%',
+ backgroundColor: colors.white,
+ shadowColor: '#000',
+ shadowOffset: {
+ width: 0,
+ height: 1
+ },
+ shadowOpacity: 0.22,
+ shadowRadius: 2.22,
+
+ elevation: 3
+ },
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ mainContainer: {
+ flex: 1,
+ backgroundColor: colors.white,
+ },
+ topContainer: {
+ flex: 3,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ image: {
+ width: 150,
+ height: 140,
+ },
+ languageContainer: {
+ backgroundColor: colors.green,
+ flex: 7,
+ borderTopLeftRadius: 25,
+ borderTopRightRadius: 25,
+ justifyContent: 'space-around',
+ paddingHorizontal: 20,
+ paddingTop: 20,
+ },
+ headingText: {
+ fontWeight: 'bold',
+ fontSize: 20,
+ textAlign: 'center',
+ marginBottom: 20,
+ },
+ languageButton: {
+ marginBottom: 10,
+ padding: 10,
+ backgroundColor: colors.white,
+ borderRadius: 8,
+ alignItems: 'center',
+ width: '80%'
+ },
+ languageText: {
+ fontSize: 16,
+ backgroundColor: colors.white,
+ color: colors.black
+ },
+ goBackContainer: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: colors.white,
+ width: '40%',
+ borderRadius: 5,
+ marginTop: -50
+ },
+ innerContainer: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ }
+})
+export default styles
\ No newline at end of file
diff --git a/enatega-multivendor-restaurant/src/screens/index.js b/enatega-multivendor-restaurant/src/screens/index.js
new file mode 100644
index 0000000..c66dd51
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/screens/index.js
@@ -0,0 +1,3 @@
+export * from './Login'
+export * from './Orders'
+export * from './OrderDetail'
diff --git a/enatega-multivendor-restaurant/src/ui/context/auth.js b/enatega-multivendor-restaurant/src/ui/context/auth.js
new file mode 100644
index 0000000..6531da1
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/context/auth.js
@@ -0,0 +1,4 @@
+import React from 'react'
+
+const AuthContext = React.createContext()
+export default AuthContext
diff --git a/enatega-multivendor-restaurant/src/ui/context/configuration.js b/enatega-multivendor-restaurant/src/ui/context/configuration.js
new file mode 100644
index 0000000..0491440
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/context/configuration.js
@@ -0,0 +1,19 @@
+/* eslint-disable react/prop-types */
+import React from 'react'
+import { useQuery, gql } from '@apollo/client'
+import { configuration } from '../../apollo'
+
+const Context = React.createContext({})
+
+export const Provider = props => {
+ const { loading, data, error } = useQuery(
+ gql`
+ ${configuration}
+ `
+ )
+ const value =
+ loading || error || !data.configuration ? {} : data.configuration
+
+ return {props.children}
+}
+export default { Context, Provider }
diff --git a/enatega-multivendor-restaurant/src/ui/context/index.js b/enatega-multivendor-restaurant/src/ui/context/index.js
new file mode 100644
index 0000000..d3f76f4
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/context/index.js
@@ -0,0 +1,4 @@
+export { default as AuthContext } from './auth'
+export { default as Restaurant } from './restaurant'
+export { default as Configuration } from './configuration'
+export * from './sound'
diff --git a/enatega-multivendor-restaurant/src/ui/context/restaurant.js b/enatega-multivendor-restaurant/src/ui/context/restaurant.js
new file mode 100644
index 0000000..def7d6e
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/context/restaurant.js
@@ -0,0 +1,100 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { useQuery, gql } from '@apollo/client'
+import { subscribePlaceOrder, orders } from '../../apollo'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import * as SecureStore from 'expo-secure-store'
+
+const Context = React.createContext({})
+const Provider = props => {
+ const [printer, setPrinter] = useState()
+ const [notificationToken, setNotificationToken] = useState()
+
+ useEffect(() => {
+ ;(async () => {
+ const printerStr = await AsyncStorage.getItem('printer')
+ if (printerStr) setPrinter(JSON.parse(printerStr))
+ })()
+ }, [])
+ const {
+ loading,
+ error,
+ data,
+ subscribeToMore,
+ refetch,
+ networkStatus
+ } = useQuery(
+ gql`
+ ${orders}
+ `,
+ { fetchPolicy: 'network-only', pollInterval: 15000, onError }
+ )
+ function onError(error) {
+ console.log(JSON.stringify(error))
+ }
+ let unsubscribe = null
+ useEffect(() => {
+ return () => {
+ unsubscribe && unsubscribe()
+ }
+ }, [])
+
+ useEffect(() => {
+ subscribeToMoreOrders()
+ }, [])
+
+ useEffect(() => {
+ async function GetToken() {
+ const result = await SecureStore.getItemAsync('notification-token')
+ if (result) {
+ setNotificationToken(JSON.parse(result))
+ } else {
+ setNotificationToken(null)
+ }
+ }
+ GetToken()
+ }, [])
+
+ const subscribeToMoreOrders = async () => {
+ const restaurant = await AsyncStorage.getItem('restaurantId')
+ if (!restaurant) return
+ unsubscribe = subscribeToMore({
+ document: gql`
+ ${subscribePlaceOrder}
+ `,
+ variables: { restaurant },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ const { restaurantOrders } = prev
+ const { origin, order } = subscriptionData.data.subscribePlaceOrder
+ if (origin === 'new') {
+ return {
+ restaurantOrders: [order, ...restaurantOrders]
+ }
+ }
+ return prev
+ },
+ onError: error => {
+ console.log('onError', error)
+ }
+ })
+ }
+
+ return (
+
+ {props.children}
+
+ )
+}
+export const useRestaurantContext = () => useContext(Context)
+export default { Context, Provider }
diff --git a/enatega-multivendor-restaurant/src/ui/context/sound.js b/enatega-multivendor-restaurant/src/ui/context/sound.js
new file mode 100644
index 0000000..c7fbc48
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/context/sound.js
@@ -0,0 +1,48 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { Audio } from 'expo-av'
+import { useRestaurantContext } from './restaurant'
+const SoundContext = React.createContext()
+export const SoundContextProvider = ({ children }) => {
+ const [sound, setSound] = useState(null)
+ const { data } = useRestaurantContext()
+
+ useEffect(() => {
+ if (data) {
+ const activeOrders =
+ data &&
+ data.restaurantOrders.filter(order => order.orderStatus === 'PENDING')
+ const shouldPlaySound = activeOrders.some(o => o.isRinged)
+ if (shouldPlaySound) playSound()
+ else stopSound()
+ }
+ }, [data])
+ const playSound = async () => {
+ await stopSound()
+ const { sound } = await Audio.Sound.createAsync(
+ require('../../assets/beep.mp3')
+ )
+ await sound.setIsLoopingAsync(true)
+ await Audio.setAudioModeAsync({
+ allowsRecordingIOS: false,
+ staysActiveInBackground: true,
+ interruptionModeIOS: (Audio.INTERRUPTION_MODE_IOS_DUCK_OTHERS = 2),
+ playsInSilentModeIOS: true,
+ shouldDuckAndroid: true,
+ interruptionModeAndroid: (Audio.INTERRUPTION_MODE_ANDROID_DUCK_OTHERS = 2),
+ playThroughEarpieceAndroid: false
+ })
+ await sound.playAsync()
+ setSound(sound)
+ }
+ const stopSound = async () => {
+ await sound?.unloadAsync()
+ }
+ return (
+
+ {children}
+
+ )
+}
+export const SoundContextConsumer = SoundContext.Consumer
+export const useSoundContext = () => useContext(SoundContext)
+export default SoundContext
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/index.js b/enatega-multivendor-restaurant/src/ui/hooks/index.js
new file mode 100644
index 0000000..550f8e0
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/index.js
@@ -0,0 +1,9 @@
+export { default as useLogin } from './useLogin'
+export { default as useAccount } from './useAccount'
+export { default as useOrders } from './useOrders'
+export { default as useAcceptOrder } from './useAcceptOrder'
+export { default as useCancelOrder } from './useCancelOrder'
+export { default as useOrderStatus } from './useOrderStatus'
+export { default as usePrintOrder } from './usePrintOrder'
+export { default as useOrderPickedUp } from './useOrderPickedUp'
+export { default as useOrderRing } from './useOrderRing'
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useAcceptOrder.js b/enatega-multivendor-restaurant/src/ui/hooks/useAcceptOrder.js
new file mode 100644
index 0000000..26ab0d3
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useAcceptOrder.js
@@ -0,0 +1,16 @@
+import { useMutation, gql } from '@apollo/client'
+
+import { acceptOrder } from '../../apollo'
+
+export default function useAcceptOrder() {
+ const [mutateAccept, { loading, error }] = useMutation(
+ gql`
+ ${acceptOrder}
+ `
+ )
+ const acceptOrderFunc = (_id, time) => {
+ mutateAccept({ variables: { _id, time } })
+ }
+
+ return { loading, error, acceptOrder: acceptOrderFunc }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useAccount.js b/enatega-multivendor-restaurant/src/ui/hooks/useAccount.js
new file mode 100644
index 0000000..963d982
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useAccount.js
@@ -0,0 +1,79 @@
+import { useContext, useState, useEffect } from 'react'
+import { useQuery, useMutation, gql } from '@apollo/client'
+import { AuthContext } from '../context'
+import { restaurantInfo, toggleAvailability } from '../../apollo'
+import { Alert } from 'react-native'
+import { DAYS } from '../../utilities'
+import usePrintOrder from './usePrintOrder'
+
+export default function useAccount() {
+ const [isAvailable, setIsAvailable] = useState(false)
+
+ const toggleSwitch = () => {
+ toggle()
+ setIsAvailable(previousState => !previousState)
+ }
+ const { loading, error, data, refetch, networkStatus } = useQuery(
+ gql`
+ ${restaurantInfo}
+ `,
+ { fetchPolicy: 'network-only' }
+ )
+ const [toggle, { loading: loadingToggle }] = useMutation(
+ gql`
+ ${toggleAvailability}
+ `,
+ { onError, onCompleted }
+ )
+ useEffect(() => {
+ if (!data) return
+ setIsAvailable(data.restaurant.isAvailable)
+ }, [data])
+
+ function onCompleted({ toggleAvailability }) {
+ if (toggleAvailability) {
+ setIsAvailable(toggleAvailability.isAvailable)
+ }
+ }
+
+ function onError() {
+ Alert.alert('Error', 'Please try again later')
+ }
+
+ const isOpenTimings = () => {
+ if (!data) return true
+ const date = new Date()
+ const day = date.getDay()
+ const hours = date.getHours()
+ const minutes = date.getMinutes()
+ const todaysTimings = data.restaurant.openingTimes.find(
+ o => o.day === DAYS[day]
+ )
+ const times = todaysTimings.times.filter(
+ t =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ )
+
+ return times.length > 0
+ }
+
+ const { logout } = useContext(AuthContext)
+ const { printer, selectPrinter } = usePrintOrder()
+ return {
+ logout,
+ loading,
+ error,
+ data,
+ refetch,
+ networkStatus,
+ isAvailable,
+ toggleSwitch,
+ loadingToggle,
+ isOpenTimings,
+ printer,
+ selectPrinter
+ }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useCancelOrder.js b/enatega-multivendor-restaurant/src/ui/hooks/useCancelOrder.js
new file mode 100644
index 0000000..8601f33
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useCancelOrder.js
@@ -0,0 +1,14 @@
+import { useMutation, gql } from '@apollo/client'
+import { cancelOrder } from '../../apollo'
+
+export default function useCancelOrder() {
+ const [mutateCancel, { loading, error }] = useMutation(
+ gql`
+ ${cancelOrder}
+ `
+ )
+ const cancelOrderFunc = (_id, reason) => {
+ mutateCancel({ variables: { _id, reason } })
+ }
+ return { loading, error, cancelOrder: cancelOrderFunc }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useLogin.js b/enatega-multivendor-restaurant/src/ui/hooks/useLogin.js
new file mode 100644
index 0000000..623c929
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useLogin.js
@@ -0,0 +1,67 @@
+import { useState, useRef, useContext } from 'react'
+import { useMutation, gql, useQuery } from '@apollo/client'
+import { FlashMessage } from '../../components'
+import { login as loginQuery, defaultRestaurantCreds } from '../../apollo'
+import { validateLogin } from '../validate'
+import { AuthContext } from '../context'
+
+export default function useLogin() {
+ const [errors, setErrors] = useState()
+ const { login } = useContext(AuthContext)
+ const [username, setUserName] = useState('')
+ const [password, setPassword] = useState('')
+ const usernameRef = useRef()
+ const passwordRef = useRef()
+ const [mutate, { loading, error }] = useMutation(
+ gql`
+ ${loginQuery}
+ `,
+ { onCompleted, onError }
+ )
+ useQuery(gql`${defaultRestaurantCreds}`, { onCompleted, onError })
+ function onCompleted({ restaurantLogin, lastOrderCreds }) {
+ if (lastOrderCreds) {
+ if (lastOrderCreds.restaurantUsername && lastOrderCreds.restaurantPassword) {
+ setUserName(lastOrderCreds.restaurantUsername)
+ setPassword(lastOrderCreds.restaurantPassword)
+ }
+ } else {
+ login(restaurantLogin.token, restaurantLogin.restaurantId)
+ }
+ }
+
+ function onError(error) {
+ FlashMessage({ message: error ? error.message : null })
+ }
+
+ const isValid = async () => {
+ // const username = await usernameRef.current
+ // const password = await passwordRef.current
+ const errors = validateLogin({ username, password })
+ console.log(username + password)
+ setErrors(errors)
+ if (errors) return false
+ return true
+ }
+
+ const onLogin = async () => {
+ if (isValid()) {
+ // const username = await usernameRef.current.value
+ // const password = await passwordRef.current.value
+ mutate({ variables: { username, password } })
+ }
+ }
+ return {
+ onLogin,
+ isValid,
+ loading,
+ errors,
+ error,
+ usernameRef,
+ passwordRef,
+ setPassword,
+ setUserName,
+ username,
+ password
+ }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useNotification.js b/enatega-multivendor-restaurant/src/ui/hooks/useNotification.js
new file mode 100644
index 0000000..bff2cb7
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useNotification.js
@@ -0,0 +1,54 @@
+import { useEffect } from 'react'
+import { useMutation, useQuery, gql } from '@apollo/client'
+import { Platform } from 'react-native'
+import { saveToken, restaurantInfo } from '../../apollo'
+import * as Notifications from 'expo-notifications'
+import * as Device from 'expo-device'
+import { useTranslation } from 'react-i18next'
+
+export default function useNotification() {
+ const {t} = useTranslation()
+ // get permission
+ // request permission
+ // send token to backend
+ // toggle notification status
+ // restaurant current permission on backend
+
+ const { data } = useQuery(
+ gql`
+ ${restaurantInfo}
+ `,
+ { fetchPolicy: 'network-only' }
+ )
+ const [sendTokenToBackend, { loading }] = useMutation(
+ gql`
+ ${saveToken}
+ `
+ )
+ useEffect(() => {
+ registerForPushNotificationsAsync()
+ }, [])
+ async function registerForPushNotificationsAsync() {
+ if (!Device.isDevice) {
+ alert(t('notificationText'))
+ }
+ if (Platform.OS === 'android') {
+ Notifications.setNotificationChannelAsync('default', {
+ name: 'default',
+ importance: Notifications.AndroidImportance.MAX,
+ vibrationPattern: [0, 250, 250, 250],
+ sound: true,
+ lightColor: '#FF231F7C'
+ })
+ }
+ }
+
+ return {
+ getPermission: Notifications.getPermissionsAsync,
+ requestPermission: Notifications.requestPermissionsAsync,
+ getExpoPushToken: Notifications.getExpoPushTokenAsync,
+ sendTokenToBackend,
+ restaurantData: data,
+ savingToken: loading
+ }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useOrderPickedUp.js b/enatega-multivendor-restaurant/src/ui/hooks/useOrderPickedUp.js
new file mode 100644
index 0000000..262f901
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useOrderPickedUp.js
@@ -0,0 +1,15 @@
+import { useMutation, gql } from '@apollo/client'
+import { orderPickedUp } from '../../apollo'
+
+export default function useOrderPickedUp() {
+ const [mutatePickedUp, { loading, error }] = useMutation(
+ gql`
+ ${orderPickedUp}
+ `
+ )
+ const pickedUpOrderFunc = _id => {
+ mutatePickedUp({ variables: { _id } })
+ }
+
+ return { loading, error, pickedUp: pickedUpOrderFunc }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useOrderRing.js b/enatega-multivendor-restaurant/src/ui/hooks/useOrderRing.js
new file mode 100644
index 0000000..6535036
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useOrderRing.js
@@ -0,0 +1,18 @@
+import { useMutation, gql } from '@apollo/client'
+import { muteRingOrder, orders } from '../../apollo'
+
+const MUTE_RING_ORDER = gql`
+ ${muteRingOrder}
+`
+const ORDERS = gql`
+ ${orders}
+`
+export default function useOrderRing() {
+ const [mutate, { loading }] = useMutation(MUTE_RING_ORDER, {
+ refetchQueries: [ORDERS]
+ })
+ const muteRing = id => {
+ mutate({ variables: { orderId: id } })
+ }
+ return { loading, muteRing }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useOrderStatus.js b/enatega-multivendor-restaurant/src/ui/hooks/useOrderStatus.js
new file mode 100644
index 0000000..30e344a
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useOrderStatus.js
@@ -0,0 +1,158 @@
+import { useSubscription, gql } from '@apollo/client'
+import { subscribeOrderStatus, orders } from '../../apollo'
+
+export default function useOrderStatus(_id) {
+ // remove this later
+ // if (!_id) return { loading: false, error: false, data: null }
+ // if (['1', '2', '3', '5', '6', '7', '8', '9', '10'].includes(_id)) return { loading: false, error: false, data: null }
+
+ const { loading, error, data } = useSubscription(
+ gql`
+ ${subscribeOrderStatus}
+ `,
+ { variables: { _id }, onSubscriptionData }
+ )
+
+ function onSubscriptionData({
+ client,
+ subscriptionData: {
+ data: { subscribeOrderStatus: order }
+ }
+ }) {
+ if (!order) return
+ const pending = client.readQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'PENDING' }
+ })
+ const accepted = client.readQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'ACCEPTED' }
+ })
+ const delivered = client.readQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'DELIVERED' }
+ })
+
+ if (order.orderStatus === 'CANCELLED') {
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'PENDING' },
+ data: {
+ restaurantOrders: pending.restaurantOrders.filter(
+ o => o._id !== order._id
+ )
+ }
+ })
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'ACCEPTED' },
+ data: {
+ restaurantOrders: accepted.restaurantOrders.filter(
+ o => o._id !== order._id
+ )
+ }
+ })
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'DELIVERED' },
+ data: {
+ restaurantOrders: delivered.restaurantOrders.filter(
+ o => o._id !== order._id
+ )
+ }
+ })
+ }
+ if (order.orderStatus === 'ACCEPTED') {
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'PENDING' },
+ data: {
+ restaurantOrders: pending.restaurantOrders.filter(
+ o => o._id !== order._id
+ )
+ }
+ })
+ const index = accepted.restaurantOrders.findIndex(
+ o => o._id === order._id
+ )
+ if (index < 0) {
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'ACCEPTED' },
+ data: { restaurantOrders: [order, ...accepted.restaurantOrders] }
+ })
+ } else {
+ accepted.restaurantOrders[index] = order
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'ACCEPTED' },
+ data: { restaurantOrders: [...accepted.restaurantOrders] }
+ })
+ }
+ }
+ if (order.orderStatus === 'DELIVERED') {
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'PENDING' },
+ data: {
+ restaurantOrders: pending.restaurantOrders.filter(
+ o => o._id !== order._id
+ )
+ }
+ })
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'ACCEPTED' },
+ data: {
+ restaurantOrders: accepted.restaurantOrders.filter(
+ o => o._id !== order._id
+ )
+ }
+ })
+ const index = delivered.restaurantOrders.findIndex(
+ o => o._id === order._id
+ )
+ if (index < 0) {
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'DELIVERED' },
+ data: { restaurantOrders: [order, ...delivered.restaurantOrders] }
+ })
+ } else {
+ delivered.restaurantOrders[index] = order
+ client.writeQuery({
+ query: gql`
+ ${orders}
+ `,
+ variables: { orderStatus: 'DELIVERED' },
+ data: { restaurantOrders: [...delivered.restaurantOrders] }
+ })
+ }
+ }
+ }
+ return { loading, error, data }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/useOrders.js b/enatega-multivendor-restaurant/src/ui/hooks/useOrders.js
new file mode 100644
index 0000000..08d3253
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/useOrders.js
@@ -0,0 +1,36 @@
+import { useState, useContext } from 'react'
+import { Restaurant } from '../context'
+
+export default function useOrders() {
+ const [active, setActive] = useState(0)
+
+ const { loading, error, data, refetch, networkStatus } = useContext(
+ Restaurant.Context
+ )
+ const activeOrders =
+ data &&
+ data.restaurantOrders.filter(order => order.orderStatus === 'PENDING')
+ .length
+ const processingOrders =
+ data &&
+ data.restaurantOrders.filter(order =>
+ ['ACCEPTED', 'ASSIGNED', 'PICKED'].includes(order.orderStatus)
+ ).length
+ const deliveredOrders =
+ data &&
+ data.restaurantOrders.filter(order => order.orderStatus === 'DELIVERED')
+ .length
+
+ return {
+ loading,
+ error,
+ data,
+ refetch,
+ networkStatus,
+ activeOrders,
+ processingOrders,
+ deliveredOrders,
+ active,
+ setActive
+ }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/hooks/usePrintOrder.js b/enatega-multivendor-restaurant/src/ui/hooks/usePrintOrder.js
new file mode 100644
index 0000000..a9580a1
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/hooks/usePrintOrder.js
@@ -0,0 +1,32 @@
+import { useContext } from 'react'
+import useOrders from './useOrders'
+import { printAsync, selectPrinterAsync } from '../../utilities'
+import { Configuration, Restaurant } from '../context'
+import { Platform } from 'react-native'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+
+export default function usePrintOrder() {
+ const { currencySymbol } = useContext(Configuration.Context)
+ const { printer, setPrinter } = useContext(Restaurant.Context)
+ const { loading, error, data } = useOrders()
+
+ const printOrder = async id => {
+ if (!loading && !error) {
+ const order = data.restaurantOrders.find(order => order._id === id)
+ const result = await printAsync(
+ { ...order, currencySymbol },
+ Platform.OS === 'ios' ? (printer ? printer.url : null) : null
+ )
+ console.log('result', result)
+ }
+ }
+ const selectPrinter = async () => {
+ const result = await selectPrinterAsync()
+ if (result) {
+ setPrinter(result)
+ await AsyncStorage.setItem('printer', JSON.stringify(result))
+ }
+ console.log('result', result)
+ }
+ return { printOrder, printer, selectPrinter }
+}
diff --git a/enatega-multivendor-restaurant/src/ui/validate/index.js b/enatega-multivendor-restaurant/src/ui/validate/index.js
new file mode 100644
index 0000000..474d7a1
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/validate/index.js
@@ -0,0 +1 @@
+export { default as validateLogin } from './login'
diff --git a/enatega-multivendor-restaurant/src/ui/validate/login.js b/enatega-multivendor-restaurant/src/ui/validate/login.js
new file mode 100644
index 0000000..e1c138b
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/ui/validate/login.js
@@ -0,0 +1,22 @@
+import { validate } from 'validate.js'
+
+const constraints = {
+ username: {
+ presence: true,
+ length: {
+ minimum: 3,
+ maximum: 20
+ }
+ },
+ password: {
+ presence: true,
+ length: {
+ minimum: 3,
+ maximum: 20
+ }
+ }
+}
+
+export default function validateFunc(form) {
+ return validate(form, constraints)
+}
diff --git a/enatega-multivendor-restaurant/src/utilities/alignment.js b/enatega-multivendor-restaurant/src/utilities/alignment.js
new file mode 100644
index 0000000..1c2b7a5
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/alignment.js
@@ -0,0 +1,135 @@
+import { scale } from './scaling'
+
+const XSMALL = 5
+const SMALL = 10
+const MEDIUM = 15
+const LARGE = 20
+export const alignment = {
+ MxSmall: {
+ margin: scale(XSMALL)
+ },
+ MBxSmall: {
+ marginBottom: scale(XSMALL)
+ },
+ MTxSmall: {
+ marginTop: scale(XSMALL)
+ },
+ MRxSmall: {
+ marginRight: scale(XSMALL)
+ },
+ MLxSmall: {
+ marginLeft: scale(XSMALL)
+ },
+
+ Msmall: {
+ margin: scale(SMALL)
+ },
+ MBsmall: {
+ marginBottom: scale(SMALL)
+ },
+ MTsmall: {
+ marginTop: scale(SMALL)
+ },
+ MRsmall: {
+ marginRight: scale(SMALL)
+ },
+ MLsmall: {
+ marginLeft: scale(SMALL)
+ },
+
+ Mmedium: {
+ margin: scale(MEDIUM)
+ },
+ MBmedium: {
+ marginBottom: scale(MEDIUM)
+ },
+ MTmedium: {
+ marginTop: scale(MEDIUM)
+ },
+ MRmedium: {
+ marginRight: scale(MEDIUM)
+ },
+ MLmedium: {
+ marginLeft: scale(MEDIUM)
+ },
+ Mlarge: {
+ margin: scale(LARGE)
+ },
+ MBlarge: {
+ marginBottom: scale(LARGE)
+ },
+ MTlarge: {
+ marginTop: scale(LARGE)
+ },
+ MRlarge: {
+ marginRight: scale(LARGE)
+ },
+ MLlarge: {
+ marginLeft: scale(LARGE)
+ },
+
+ // Padding
+ PxSmall: {
+ padding: scale(XSMALL)
+ },
+ PBxSmall: {
+ paddingBottom: scale(XSMALL)
+ },
+ PTxSmall: {
+ paddingTop: scale(XSMALL)
+ },
+ PRxSmall: {
+ paddingRight: scale(XSMALL)
+ },
+ PLxSmall: {
+ paddingLeft: scale(XSMALL)
+ },
+
+ Psmall: {
+ padding: scale(SMALL)
+ },
+ PBsmall: {
+ paddingBottom: scale(SMALL)
+ },
+ PTsmall: {
+ paddingTop: scale(SMALL)
+ },
+ PRsmall: {
+ paddingRight: scale(SMALL)
+ },
+ PLsmall: {
+ paddingLeft: scale(SMALL)
+ },
+
+ Pmedium: {
+ padding: scale(MEDIUM)
+ },
+ PBmedium: {
+ paddingBottom: scale(MEDIUM)
+ },
+ PTmedium: {
+ paddingTop: scale(MEDIUM)
+ },
+ PRmedium: {
+ paddingRight: scale(MEDIUM)
+ },
+ PLmedium: {
+ paddingLeft: scale(MEDIUM)
+ },
+
+ Plarge: {
+ padding: scale(LARGE)
+ },
+ PBlarge: {
+ paddingBottom: scale(LARGE)
+ },
+ PTlarge: {
+ paddingTop: scale(LARGE)
+ },
+ PRlarge: {
+ paddingRight: scale(LARGE)
+ },
+ PLlarge: {
+ paddingLeft: scale(LARGE)
+ }
+}
diff --git a/enatega-multivendor-restaurant/src/utilities/colors.js b/enatega-multivendor-restaurant/src/utilities/colors.js
new file mode 100644
index 0000000..b7d3d33
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/colors.js
@@ -0,0 +1,26 @@
+export const colors = {
+ themeBackground: '#FAFAFA',
+ iconColor: '#333333',
+ tagColor: '#6FCF97',
+ iconPink: '#6FCF97',
+ radioColor: '#FFF',
+ radioOuterColor: '#6FCF97',
+ spinnerColor: '#6FCF97',
+ orderComplete: '#1DB20D',
+ orderUncomplete: '#fe0000',
+ horizontalLine: '#B8B8B8',
+ buttonBackground: '#6FCF97',
+ buttonText: '#FFF',
+ textErrorColor: '#FA7751',
+ headerBackground: '#FFF',
+ headerText: '#2a2a2a',
+ fontMainColor: '#212121',
+ fontSecondColor: '#949393',
+ cartContainer: '#FFF',
+ startColor: '#6FCF97',
+ white: '#FFF',
+ dimWhite: '#d0d0d0',
+ green: '#90EA93',
+ darkgreen: '#6FCF97',
+ rounded: '#3E6F52'
+}
diff --git a/enatega-multivendor-restaurant/src/utilities/enums.js b/enatega-multivendor-restaurant/src/utilities/enums.js
new file mode 100644
index 0000000..d846562
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/enums.js
@@ -0,0 +1,8 @@
+export const DAYS = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
+export const TIMES = [10, 20, 30, 40, 50, 60, 70, 80, 90]
+export const PRODUCT_URL =
+ 'https://enatega.com/enatega-multi-vendor/'
+export const PRIVACY_URL =
+ 'https://enatega.com/privacy-policy/'
+export const ABOUT_URL = 'https://ninjascode.com/about-us/'
+export const MAX_TIME = 120
diff --git a/enatega-multivendor-restaurant/src/utilities/fontStyles.js b/enatega-multivendor-restaurant/src/utilities/fontStyles.js
new file mode 100644
index 0000000..2730071
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/fontStyles.js
@@ -0,0 +1,5 @@
+export const fontStyles = {
+ MuseoSans300: 'MuseoSans300',
+ MuseoSans500: 'MuseoSans500',
+ MuseoSans700: 'MuseoSans700'
+}
diff --git a/enatega-multivendor-restaurant/src/utilities/formatReceipt.js b/enatega-multivendor-restaurant/src/utilities/formatReceipt.js
new file mode 100644
index 0000000..dde9eff
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/formatReceipt.js
@@ -0,0 +1,177 @@
+export const formatReceipt = order => {
+ const address =
+ order.shippingMethod === 'PICKUP'
+ ? 'PICKUP'
+ : `${order.deliveryAddress.label} ${order.deliveryAddress.details} ${order.deliveryAddress.deliveryAddress}`
+ const {
+ user: { email, phone },
+ taxationAmount: tax,
+ tipping: tip,
+ paidAmount,
+ orderAmount
+ } = order
+ const deliveryCharges = order.deliveryCharges
+ const itemsRow = `${order.items.map(
+ item => `
+ ${item.title}${
+ item.variation.title ? ':' + item.variation.title : ''
+ },${item.addons
+ .map(
+ addon =>
+ ` ${addon.title}: ` +
+ addon.options.map(option => option.title).join(',')
+ )
+ .join(',')}
+ ${item.quantity}
+ ${order.currencySymbol}${(
+ item.variation.price +
+ item.addons
+ .map(addon =>
+ addon.options.reduce((prev, curr) => prev + curr.price, 0)
+ )
+ .reduce((prev, curr) => prev + curr, 0)
+ ).toFixed(2)}
+ `
+ )}`
+ return `
+
+
+
+
+
+
+
+
+
Enatega
+
+
+
+
+
+
Contact Info
+
+ Address : ${address}
+ Email : ${email}
+ Phone : ${phone}
+
+
+
+
+
+
+
+
+ Item
+ Qty
+ Sub Total
+
+ ${itemsRow}
+
+
+ Tax
+ ${order.currencySymbol}${tax.toFixed(
+ 2
+ )}
+
+
+
+ Tip
+ ${order.currencySymbol}${tip.toFixed(
+ 2
+ )}
+
+
+
+ Delivery ch.
+ ${
+ order.currencySymbol
+ }${deliveryCharges.toFixed(2)}
+
+
+
+ Total
+ ${
+ order.currencySymbol
+ }${orderAmount.toFixed(2)}
+
+
+
+ Paid
+ ${
+ order.currencySymbol
+ }${paidAmount.toFixed(2)}
+
+
+
+
+
Thank you for your business!
+
+
+
+
+ `
+}
diff --git a/enatega-multivendor-restaurant/src/utilities/index.js b/enatega-multivendor-restaurant/src/utilities/index.js
new file mode 100644
index 0000000..5ff3b69
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/index.js
@@ -0,0 +1,8 @@
+export * from './alignment'
+export * from './colors'
+export * from './fontStyles'
+export * from './scaling'
+export * from './textStyles'
+export * from './enums'
+export * from './print'
+export * from './formatReceipt'
diff --git a/enatega-multivendor-restaurant/src/utilities/print.js b/enatega-multivendor-restaurant/src/utilities/print.js
new file mode 100644
index 0000000..2c4bae8
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/print.js
@@ -0,0 +1,35 @@
+import * as Print from 'expo-print'
+import { formatReceipt } from './formatReceipt'
+export const printAsync = async (order, printerUrl) => {
+ try {
+ return await Print.printAsync({
+ width: 576, // 80mm=302px,
+ orientation: Print.Orientation.portrait,
+ html: formatReceipt(order),
+ printerUrl
+ })
+ } catch (error) {
+ console.log('error', error)
+ }
+ return null
+}
+export const printToFileAsync = async order => {
+ try {
+ return await Print.printToFileAsync({
+ width: 576, // 80mm=302px,
+ html: formatReceipt(order)
+ })
+ } catch (error) {
+ console.log('error', error)
+ }
+ return null
+}
+export const selectPrinterAsync = async () => {
+ try {
+ const { name, url } = await Print.selectPrinterAsync()
+ return { name, url }
+ } catch (error) {
+ console.log('error', error)
+ }
+ return null
+}
diff --git a/enatega-multivendor-restaurant/src/utilities/scaling.js b/enatega-multivendor-restaurant/src/utilities/scaling.js
new file mode 100644
index 0000000..26f0f56
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/scaling.js
@@ -0,0 +1,12 @@
+import { Dimensions } from 'react-native'
+
+const { width, height } = Dimensions.get('window')
+// Guideline sizes are based on standard ~5" screen mobile device
+const guidelineBaseWidth = 350
+const guidelineBaseHeight = 680
+const scale = size => (width / guidelineBaseWidth) * size
+const verticalScale = size => (height / guidelineBaseHeight) * size
+const moderateScale = (size, factor = 0.5) =>
+ size + (scale(size) - size) * factor
+
+export { scale, verticalScale, moderateScale }
diff --git a/enatega-multivendor-restaurant/src/utilities/textStyles.js b/enatega-multivendor-restaurant/src/utilities/textStyles.js
new file mode 100644
index 0000000..d7d56e6
--- /dev/null
+++ b/enatega-multivendor-restaurant/src/utilities/textStyles.js
@@ -0,0 +1,50 @@
+import { scale } from './scaling'
+import { fontStyles } from './fontStyles'
+
+export const textStyles = {
+ H1: {
+ fontSize: scale(35)
+ },
+ H2: {
+ fontSize: scale(24)
+ },
+ H3: {
+ fontSize: scale(20)
+ },
+ H4: {
+ fontSize: scale(16)
+ },
+ H5: {
+ fontSize: scale(14)
+ },
+ Normal: {
+ fontSize: scale(12)
+ },
+ Small: {
+ fontSize: scale(10)
+ },
+ xSmall: {
+ fontSize: scale(8)
+ },
+ Regular: {
+ fontFamily: fontStyles.MuseoSans300
+ },
+ Bold: {
+ fontFamily: fontStyles.MuseoSans500
+ },
+ Bolder: {
+ fontFamily: fontStyles.MuseoSans700
+ },
+ Center: {
+ textAlign: 'center'
+ },
+ Right: {
+ textAlign: 'right'
+ },
+ UpperCase: {
+ textTransform: 'uppercase'
+ },
+ LineOver: {
+ textDecorationLine: 'line-through'
+ }
+}
diff --git a/enatega-multivendor-restaurant/translations/ar.js b/enatega-multivendor-restaurant/translations/ar.js
new file mode 100644
index 0000000..cd1b90a
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/ar.js
@@ -0,0 +1,55 @@
+export const ar = {
+ titleLogout: 'تسجيل خروج',
+ status: 'حالة',
+ notifications: 'إشعارات',
+ online: 'متصل',
+ closed: 'مغلق',
+ onn: 'آن',
+ off: 'إيقاف',
+ settings: 'الإعدادات',
+ aboutUs: 'حولنا',
+ productPage: 'صفحة المنتج',
+ privacyPolicy: 'سياسة الخصوصية',
+ unReadOrders: 'لا توجد طلبات بعد!',
+ deliveredOrders: 'تم التوصيل',
+ processing: 'يعالج',
+ newOrders: 'طلبات جديدة',
+ titleProfile: 'الملف الشخصي',
+ titleHome: 'الصفحة الرئيسية',
+ selectLanguage: 'اختر اللغة',
+ backBtn: 'العودة',
+ signInWithEmail: 'قم بتسجيل الدخول باستخدام البريد الإلكتروني',
+ email: 'البريد الإلكتروني',
+ password: 'كلمة المرور',
+ login: 'تسجيل الدخول',
+ signIn: 'تسجيل الدخول',
+ orderId: 'رقم الطلب',
+ orderAmount: 'مبلغ الطلب',
+ paymentMethod: 'طريقة الدفع',
+ time: 'الوقت',
+ pending: 'قيد الانتظار',
+ reject: 'رفض',
+ delivered: 'تم التسليم',
+ orderNo: 'رقم الطلب',
+ contact: 'الاتصال',
+ address: 'العنوان',
+ subT: 'المجموع الفرعي',
+ tip: 'بقشيش',
+ taxCharges: 'رسوم الضرائب',
+ deliveryCharges: 'رسوم التوصيل',
+ total: 'المجموع',
+ setTime: 'تحديد الوقت',
+ forPreparation: 'للتحضير',
+ setAndAccept: 'تحديد وقبول',
+ mins: 'دقائق',
+ prepared: 'معدّ',
+ preparing: 'يتم التحضير',
+ accepted: 'مقبول',
+ acceptOrderText: 'يمكنك قبول الطلب بعد الوقت المحدد',
+ timeLeft: 'الوقت المتبقي',
+ orderDetail: 'تفاصيل الطلب',
+ acceptAndPrint: 'قبول وطباعة',
+ accept: 'قبول',
+ language: 'لغة',
+ notificationText: 'يجب استخدام جهاز فيزيائي للإشعارات الفورية'
+}
diff --git a/enatega-multivendor-restaurant/translations/de.js b/enatega-multivendor-restaurant/translations/de.js
new file mode 100644
index 0000000..4be240b
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/de.js
@@ -0,0 +1,57 @@
+export const de = {
+ titleLogout: 'Ausloggen',
+ status: 'Status',
+ notifications: 'meldingen',
+ online: 'Online',
+ closed: 'Geschlossen',
+ onn: 'An',
+ off: 'Aus',
+ settings: 'Einstellungen',
+ aboutUs: 'Über uns',
+ productPage: 'Produktseite',
+ privacyPolicy: 'privacybeleid',
+ unReadOrders: 'Keine Bestellungen vorhanden!',
+ deliveredOrders: 'Afgeleverd',
+ processing: 'verwerken',
+ newOrders: 'Nieuwe bevelen',
+ titleProfile: 'Profil',
+ titleHome: 'Startseite',
+ selectLanguage: 'Sprache auswählen',
+ backBtn: 'Zurück',
+ signInWithEmail: 'Anmelden mit Ihrer E-Mail-Adresse',
+ email: 'E-Mail',
+ password: 'Passwort',
+ login: 'Anmelden',
+ signIn: 'Anmelden',
+ orderId: 'Bestellnummer',
+ orderAmount: 'Bestellmenge',
+ paymentMethod: 'Zahlungsmethode',
+ time: 'Zeit',
+ pending: 'Ausstehend',
+ reject: 'Abgelehnt',
+ delivered: 'Geliefert',
+ orderNo: 'Bestellnummer',
+ contact: 'Kontakt',
+ address: 'Adresse',
+ subT: 'Zwischensumme',
+ tip: 'Trinkgeld',
+ taxCharges: 'Steuern',
+ deliveryCharges: 'Liefergebühren',
+ total: 'Gesamt',
+ setTime: 'Zeit festlegen',
+ forPreparation: 'Zur Vorbereitung',
+ setAndAccept: 'Festlegen & akzeptieren',
+ mins: 'Min.',
+ prepared: 'Bereit',
+ preparing: 'In Vorbereitung',
+ accepted: 'Akzeptiert',
+ acceptOrderText:
+ 'Sie können die Bestellung nach der angegebenen Zeit annehmen',
+ timeLeft: 'Verbleibende Zeit',
+ orderDetail: 'Bestelldetails',
+ acceptAndPrint: 'Akzeptieren und Drucken',
+ accept: 'Akzeptieren',
+ language: 'Sprache',
+ notificationText: 'Muss ein physisches Gerät für Push-Benachrichtigungen verwenden'
+
+}
diff --git a/enatega-multivendor-restaurant/translations/en.js b/enatega-multivendor-restaurant/translations/en.js
new file mode 100644
index 0000000..7adfb4b
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/en.js
@@ -0,0 +1,55 @@
+export const en = {
+ titleLogout: 'Logout',
+ status: 'Status',
+ notifications: 'Notifications',
+ online: 'Online',
+ closed: 'Closed',
+ onn: 'On',
+ off: 'Off',
+ settings: 'Settings',
+ aboutUs: 'About us',
+ productPage: 'Product page',
+ privacyPolicy: 'Privacy policy',
+ unReadOrders: 'No Orders Yet!',
+ deliveredOrders: 'Delivered',
+ processing: 'Processing',
+ newOrders: 'New Orders',
+ titleProfile: 'Profile',
+ titleHome: 'Home',
+ selectLanguage: 'Select Language',
+ backBtn: 'Go Back',
+ signInWithEmail: 'Sign in with your email',
+ email: 'Email',
+ password: 'Password',
+ login: 'Login',
+ signIn: 'Sign In',
+ orderId: 'Order Id',
+ orderAmount: 'Order amount',
+ paymentMethod: 'Payment method',
+ time: 'Time',
+ pending: 'Pending',
+ reject: 'Reject',
+ delivered: 'Delivered',
+ orderNo: 'Order No',
+ contact: 'Contact',
+ address: 'Address',
+ subT: 'Subtotal',
+ tip: 'Tip',
+ taxCharges: 'Tax Charges',
+ deliveryCharges: 'Delivery Charges',
+ total: 'Total',
+ setTime: 'Set Time',
+ forPreparation: 'For Preparation',
+ setAndAccept: 'Set & accept',
+ mins: ' mins ',
+ prepared: 'Prepared',
+ preparing: 'Preparing',
+ accepted: 'Accepted',
+ acceptOrderText: 'You can accept order after the given time',
+ timeLeft: 'Time Left',
+ orderDetail: 'Order Detail',
+ acceptAndPrint: 'Accept & Print',
+ accept: 'Accept',
+ language: 'Language',
+ notificationText: 'Must use physical device for Push Notifications'
+}
diff --git a/enatega-multivendor-restaurant/translations/fr.js b/enatega-multivendor-restaurant/translations/fr.js
new file mode 100644
index 0000000..b578291
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/fr.js
@@ -0,0 +1,55 @@
+export const fr = {
+ titleLogout: 'Connectez - Out',
+ status: 'Statut',
+ notifications: 'Notifications',
+ online: 'En ligne',
+ closed: 'Fermé',
+ onn: 'Onn',
+ off: 'Éteint',
+ settings: 'Paramètres',
+ aboutUs: 'À propos de nous',
+ productPage: 'Page du produit',
+ privacyPolicy: 'Politique de confidentialité',
+ unReadOrders: 'Aucune commande pour le moment !',
+ deliveredOrders: 'livré',
+ processing: 'traitement',
+ newOrders: 'nouvel ordre',
+ titleProfile: 'Profil',
+ titleHome: 'Accueil',
+ selectLanguage: 'Sélectionner la langue',
+ backBtn: 'Retour',
+ signInWithEmail: 'Se connecter avec votre e-mail',
+ email: 'E-mail',
+ password: 'Mot de passe',
+ login: 'Connexion',
+ signIn: 'Se connecter',
+ orderId: 'Identifiant de commande',
+ orderAmount: 'Montant de la commande',
+ paymentMethod: 'Méthode de paiement',
+ time: 'Temps',
+ pending: 'En attente',
+ reject: 'Rejeté',
+ delivered: 'Livré',
+ orderNo: 'Numéro de commande',
+ contact: 'Contact',
+ address: 'Adresse',
+ subT: 'Sous-total',
+ tip: 'Pourboire',
+ taxCharges: 'Frais de taxe',
+ deliveryCharges: 'Frais de livraison',
+ total: 'Total',
+ setTime: "Définir l'heure",
+ forPreparation: 'Pour la préparation',
+ setAndAccept: 'Définir et accepter',
+ mins: 'mins',
+ prepared: 'Préparé',
+ preparing: 'En cours de préparation',
+ accepted: 'Accepté',
+ acceptOrderText: "Vous pouvez accepter la commande après l'heure indiquée",
+ timeLeft: 'Temps restant',
+ orderDetail: 'Détails de la commande',
+ acceptAndPrint: 'Accepter et Imprimer',
+ accept: 'Accepter',
+ language: 'Langue',
+ notificationText: 'Doit utiliser un appareil physique pour les notifications push'
+}
diff --git a/enatega-multivendor-restaurant/translations/km.js b/enatega-multivendor-restaurant/translations/km.js
new file mode 100644
index 0000000..edad3a4
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/km.js
@@ -0,0 +1,55 @@
+export const km = {
+ titleLogout: 'ចាកចេញ',
+ status: 'ស្ថានភាព',
+ notifications: 'ការជូនដំណឹង',
+ online: 'បើកបរិច្ឆេទ',
+ closed: 'បិទ',
+ onn: 'លោក',
+ off: 'បិទ',
+ settings: 'ការកំណត់',
+ aboutUs: 'អំពីពួកយើង',
+ productPage: 'ទំព័រផលិតផល',
+ privacyPolicy: 'គោលការណ៍ភាពឯកជន',
+ unReadOrders: 'វ៏បរត',
+ deliveredOrders: 'ប្រគល់ជូន',
+ processing: 'ដំណើរការ',
+ newOrders: 'ការកុម្មង់ថ្មី',
+ titleProfile: 'ប្ដូរបានភាញ',
+ titleHome: 'ទំព័រដើម',
+ selectLanguage: 'ជ្រើសរើសភាសា',
+ backBtn: 'ត្រឡប់ក្រោយ',
+ signInWithEmail: 'ចូលជាមួយអ៊ីមែលរបស់អ្នក',
+ email: 'អ៊ីមែល',
+ password: 'ពាក្យសម្ងាត់',
+ login: 'ចូល',
+ signIn: 'ចូល',
+ orderId: 'លេខកម្មង់',
+ orderAmount: 'ចំនួនទឹកប្រាក់កម្មង់',
+ paymentMethod: 'វិធីសាស្រ្តបង់ប្រាក់',
+ time: 'ពេលវេលា',
+ pending: 'កំពុងរង់ចាំ',
+ reject: 'បានបដិសេធ',
+ delivered: 'បញ្ជូនបាន',
+ orderNo: 'លេខកម្មង់',
+ contact: 'ទំនាក់ទំនង',
+ address: 'អាសយដ្ឋាន',
+ subT: 'សរុបរង',
+ tip: 'ប្រាក់រំពឹង',
+ taxCharges: 'ថ្លៃពន្ធបន្ថែម',
+ deliveryCharges: 'ថ្លៃសេវាដឹកជញ្ជូន',
+ total: 'សរុប',
+ setTime: 'កំណត់ពេល',
+ forPreparation: 'សម្រាប់ការរៀបចំ',
+ setAndAccept: 'កំណត់ និង ទទួលសម្រាប់ការបង់ប្រាក់',
+ mins: 'នាទី',
+ prepared: 'រៀបរាប់រួចហើយ',
+ preparing: 'កំពុងរៀបចំ',
+ accepted: 'បានទទួលយក',
+ acceptOrderText: 'អ្នកអាចទទួលបានការបញ្ជាទិញបន្ទាប់ពីពេលដែលបានផ្ដល់ឲ្យ',
+ timeLeft: 'ពេលវេលាដែលនៅសល់',
+ orderDetail: 'ព័ត៌មានលម្អិតអំពីការបញ្ជាទិញ',
+ acceptAndPrint: 'ទទួលយក និង បោះពុម្ព',
+ accept: 'ទទួលយក',
+ language: 'ភាសា',
+ notificationText: 'ត្រូវតែប្រើឧបករណ៍សំបុត្រសម្រាប់ការជូនដំណឹងរហ័ស'
+}
diff --git a/enatega-multivendor-restaurant/translations/sv.js b/enatega-multivendor-restaurant/translations/sv.js
new file mode 100644
index 0000000..61ac4bd
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/sv.js
@@ -0,0 +1,55 @@
+export const sv = {
+ titleLogout: 'Logga ut',
+ status: 'Status',
+ notifications: 'Meddelanden',
+ online: 'Online',
+ closed: 'Stängd',
+ onn: 'På',
+ off: 'Av',
+ settings: 'Inställningar',
+ aboutUs: 'Om oss',
+ productPage: 'Produktsida',
+ privacyPolicy: 'Sekretesspolicy',
+ unReadOrders: 'Inga beställningar än!',
+ deliveredOrders: 'levereras',
+ processing: 'Behandlas',
+ newOrders: 'nya order',
+ titleProfile: 'Profil',
+ titleHome: 'Hem',
+ selectLanguage: 'Välj språk',
+ backBtn: 'Tillbaka',
+ signInWithEmail: 'Logga in med din e-post',
+ email: 'E-post',
+ password: 'Lösenord',
+ login: 'Logga in',
+ signIn: 'Logga in',
+ orderId: 'Beställnings-ID',
+ orderAmount: 'Orderbelopp',
+ paymentMethod: 'Betalningsmetod',
+ time: 'Tid',
+ pending: 'Avvaktande',
+ reject: 'Avvisa',
+ delivered: 'Levererad',
+ orderNo: 'Beställningsnummer',
+ contact: 'Kontakt',
+ address: 'Adress',
+ subT: 'Delsumma',
+ tip: 'Dricks',
+ taxCharges: 'Skatteavgifter',
+ deliveryCharges: 'Leveransavgifter',
+ total: 'Totalt',
+ setTime: 'Ställ in tid',
+ forPreparation: 'För beredning',
+ setAndAccept: 'Ställ in och acceptera',
+ mins: 'min',
+ prepared: 'Färdig',
+ preparing: 'Förbereder',
+ accepted: 'Accepterad',
+ acceptOrderText: 'Du kan acceptera beställningen efter angiven tid',
+ timeLeft: 'Tid kvar',
+ orderDetail: 'Orderdetaljer',
+ acceptAndPrint: 'Acceptera och Skriv ut',
+ accept: 'Acceptera',
+ language: 'Språk',
+ notificationText: 'Måste använda en fysisk enhet för push-meddelanden'
+}
diff --git a/enatega-multivendor-restaurant/translations/zh.js b/enatega-multivendor-restaurant/translations/zh.js
new file mode 100644
index 0000000..5f610c3
--- /dev/null
+++ b/enatega-multivendor-restaurant/translations/zh.js
@@ -0,0 +1,55 @@
+export const zh = {
+ titleLogout: '登出',
+ status: '状态',
+ notifications: '通知',
+ online: '在线',
+ closed: '关闭',
+ onn: '打开',
+ off: '关闭',
+ settings: '设置',
+ aboutUs: '关于我们',
+ productPage: '产品页面',
+ privacyPolicy: '隐私政策',
+ unReadOrders: '还没有订单!',
+ deliveredOrders: '已交付订单',
+ processing: '处理中',
+ newOrders: '新订单',
+ titleProfile: '个人资料',
+ titleHome: '主页',
+ selectLanguage: '选择语言',
+ backBtn: '返回',
+ signInWithEmail: '使用电子邮件登录',
+ email: '电子邮件',
+ password: '密码',
+ login: '登录',
+ signIn: '登录',
+ orderId: '订单号',
+ orderAmount: '订单金额',
+ paymentMethod: '付款方式',
+ time: '时间',
+ pending: '待处理',
+ reject: '拒绝',
+ delivered: '已交付',
+ orderNo: '订单号',
+ contact: '联系方式',
+ address: '地址',
+ subT: '小计',
+ tip: '小费',
+ taxCharges: '税费',
+ deliveryCharges: '送货费',
+ total: '总计',
+ setTime: '设定时间',
+ forPreparation: '准备时间',
+ setAndAccept: '设定并接受',
+ mins: '分钟',
+ prepared: '已准备好',
+ preparing: '准备中',
+ accepted: '已接受',
+ acceptOrderText: '您可以在规定时间后接受订单',
+ timeLeft: '剩余时间',
+ orderDetail: '订单详情',
+ acceptAndPrint: '接受并打印',
+ accept: '接受',
+ language: '语言',
+ notificationText: '必须使用物理设备进行推送通知'
+}
diff --git a/enatega-multivendor-rider/.eslintrc.json b/enatega-multivendor-rider/.eslintrc.json
new file mode 100644
index 0000000..a34b277
--- /dev/null
+++ b/enatega-multivendor-rider/.eslintrc.json
@@ -0,0 +1,28 @@
+{
+ "env": {
+ "browser": true,
+ "es6": true
+ },
+ "extends": [
+ "plugin:react/recommended",
+ "standard"
+ ],
+ "globals": {
+ "Atomics": "readonly",
+ "SharedArrayBuffer": "readonly"
+ },
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 11,
+ "sourceType": "module"
+ },
+ "plugins": [
+ "react"
+ ],
+ "rules": {
+ "space-before-function-paren": ["error", "never"],
+ "react/prop-types": 0
+ }
+}
diff --git a/enatega-multivendor-rider/.gitignore b/enatega-multivendor-rider/.gitignore
new file mode 100644
index 0000000..07e6e47
--- /dev/null
+++ b/enatega-multivendor-rider/.gitignore
@@ -0,0 +1 @@
+/node_modules
diff --git a/enatega-multivendor-rider/.npmrc b/enatega-multivendor-rider/.npmrc
new file mode 100644
index 0000000..e9ee3cb
--- /dev/null
+++ b/enatega-multivendor-rider/.npmrc
@@ -0,0 +1 @@
+legacy-peer-deps=true
\ No newline at end of file
diff --git a/enatega-multivendor-rider/.prettierrc.js b/enatega-multivendor-rider/.prettierrc.js
new file mode 100644
index 0000000..2fc75e2
--- /dev/null
+++ b/enatega-multivendor-rider/.prettierrc.js
@@ -0,0 +1 @@
+module.exports = 'prettier-config-standard'
diff --git a/enatega-multivendor-rider/App.js b/enatega-multivendor-rider/App.js
new file mode 100644
index 0000000..85b847e
--- /dev/null
+++ b/enatega-multivendor-rider/App.js
@@ -0,0 +1,167 @@
+import React, { useState, useEffect } from 'react'
+import {
+ ActivityIndicator,
+ View,
+ StatusBar,
+ StyleSheet,
+ LogBox
+} from 'react-native'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import * as Font from 'expo-font'
+import { ApolloProvider } from '@apollo/client'
+import FlashMessage from 'react-native-flash-message'
+import * as Location from 'expo-location'
+import * as SplashScreen from 'expo-splash-screen'
+import * as Updates from 'expo-updates'
+import * as Sentry from 'sentry-expo'
+import AppContainer from './src/routes/index'
+import colors from './src/utilities/colors'
+import setupApolloClient from './src/apollo/index'
+import { ConfigurationProvider } from './src/context/configuration'
+import { AuthContext } from './src/context/auth'
+import { TabsContext } from './src/context/tabs'
+import TextDefault from './src/components/Text/TextDefault/TextDefault'
+import { LocationProvider } from './src/context/location'
+import getEnvVars from './environment'
+import moment from 'moment-timezone'
+import { useTranslation } from 'react-i18next'
+
+moment.tz.setDefault('Asia/Karachi')
+LogBox.ignoreLogs([
+ 'Warning: ...',
+ 'Sentry Logger ',
+ 'Constants.deviceYearClass'
+]) // Ignore log notification by message
+LogBox.ignoreAllLogs() // Ignore all log notifications
+
+export default function App() {
+ // const { t } = useTranslation();
+ const [appIsReady, setAppIsReady] = useState(false)
+ const [token, setToken] = useState(null)
+ const [isUpdating, setIsUpdating] = useState(false)
+ const [active, setActive] = useState('NewOrder')
+
+ const client = setupApolloClient()
+ const { SENTRY_DSN } = getEnvVars()
+ useEffect(() => {
+ if (SENTRY_DSN) {
+ Sentry.init({
+ dsn: SENTRY_DSN,
+ enableInExpoDevelopment: true,
+ debug: true,
+ tracesSampleRate: 1.0 // to be changed to 0.2 in production
+ })
+ }
+ }, [SENTRY_DSN])
+
+ useEffect(() => {
+ ;(async () => {
+ await SplashScreen.preventAutoHideAsync()
+
+ await Font.loadAsync({
+ MuseoSans300: require('./src/assets/font/MuseoSans/MuseoSans300.ttf'),
+ MuseoSans500: require('./src/assets/font/MuseoSans//MuseoSans500.ttf'),
+ MuseoSans700: require('./src/assets/font/MuseoSans/MuseoSans700.ttf')
+ })
+ const token = await AsyncStorage.getItem('rider-token')
+ if (token) setToken(token)
+ setAppIsReady(true)
+ await SplashScreen.hideAsync()
+ })()
+ }, [])
+
+ useEffect(() => {
+ // eslint-disable-next-line no-undef
+ if (__DEV__) return
+ ;(async () => {
+ const { isAvailable } = await Updates.checkForUpdateAsync()
+ if (isAvailable) {
+ try {
+ setIsUpdating(true)
+ const { isNew } = await Updates.fetchUpdateAsync()
+ if (isNew) {
+ await Updates.reloadAsync()
+ }
+ } catch (error) {
+ console.log('error while updating app', JSON.stringify(error))
+ } finally {
+ setIsUpdating(false)
+ }
+ }
+ })()
+ }, [])
+
+ const setTokenAsync = async token => {
+ await AsyncStorage.setItem('rider-token', token)
+ client.clearStore()
+ setToken(token)
+ }
+
+ const logout = async () => {
+ try {
+ client.clearStore()
+ await AsyncStorage.removeItem('rider-token')
+
+ setToken(null)
+ if (await Location.hasStartedLocationUpdatesAsync('RIDER_LOCATION')) {
+ await Location.stopLocationUpdatesAsync('RIDER_LOCATION')
+ }
+ } catch (e) {
+ console.log('Logout Error: ', e)
+ }
+ }
+
+ if (isUpdating) {
+ return (
+
+
+ {/* {t('updating')} */}
+ updating
+ {/* {.t('updating')} */}
+
+
+
+ )
+ }
+
+ if (appIsReady) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+ }
+ return (
+
+
+
+ )
+}
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ mainContainer: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
diff --git a/enatega-multivendor-rider/app.json b/enatega-multivendor-rider/app.json
new file mode 100644
index 0000000..6cad305
--- /dev/null
+++ b/enatega-multivendor-rider/app.json
@@ -0,0 +1,89 @@
+{
+ "expo": {
+ "name": "Enatega Multivendor Rider",
+ "description": "Enatega is a starter kit food ordering app built in React Native using Expo for IOS and Android. It's made keeping good aesthetics in mind as well keeping the best coding practices in mind. Its fully customisable to easily help you in your next food delivery project. https://market.nativebase.io/view/react-native-food-delivery-backend-app",
+ "version": "1.1.22",
+ "slug": "food-delivery-rider-multivendor",
+ "privacy": "public",
+ "plugins": [
+ [
+ "expo-updates",
+ {
+ "username": "ninjas_code"
+ }
+ ],
+ "expo-font",
+ "expo-localization",
+ "sentry-expo"
+ ],
+ "androidStatusBar": {
+ "backgroundColor": "#000"
+ },
+ "platforms": [
+ "ios",
+ "android"
+ ],
+ "orientation": "portrait",
+ "icon": "./assets/icon.png",
+ "splash": {
+ "image": "./assets/splash.png",
+ "resizeMode": "cover",
+ "backgroundColor": "#6FCF97"
+ },
+ "assetBundlePatterns": [
+ "**/*"
+ ],
+ "ios": {
+ "supportsTablet": true,
+ "bundleIdentifier": "com.enatega.multirider",
+ "config": {
+ "googleMapsApiKey": "AIzaSyCzNP5qQql2a5y8lOoO-1yj1lj_tzjVImA"
+ },
+ "infoPlist": {
+ "NSLocationWhenInUseUsageDescription": "$(PRODUCT_NAME) uses your location for features like finding orders nearby and tracking customer orders!.",
+ "UIBackgroundModes": [
+ "location",
+ "fetch",
+ "remote-notification"
+ ]
+ }
+ },
+ "android": {
+ "versionCode": 30,
+ "googleServicesFile": "./google-services.json",
+ "permissions": [
+ "ACCESS_COARSE_LOCATION",
+ "ACCESS_FINE_LOCATION"
+ ],
+ "config": {
+ "googleMaps": {
+ "apiKey": "AIzaSyCzNP5qQql2a5y8lOoO-1yj1lj_tzjVImA"
+ }
+ },
+ "package": "com.enatega.multirider"
+ },
+ "extra": {
+ "eas": {
+ "projectId": "9144a7fc-b205-464a-8fb6-64eb66fc8743"
+ }
+ },
+ "runtimeVersion": {
+ "policy": "sdkVersion"
+ },
+ "updates": {
+ "url": "https://u.expo.dev/9144a7fc-b205-464a-8fb6-64eb66fc8743"
+ }
+ },
+ "hooks": {
+ "postPublish": [
+ {
+ "file": "sentry-expo/upload-sourcemaps",
+ "config": {
+ "organization": "ninjas-code",
+ "project": "enatega-multivendor-app",
+ "authToken": "744ed798e04a40a896b0269c25f945de0e166db8362e41969b64d5e07ca80e65"
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/assets/icon.png b/enatega-multivendor-rider/assets/icon.png
new file mode 100644
index 0000000..90a0e3c
Binary files /dev/null and b/enatega-multivendor-rider/assets/icon.png differ
diff --git a/enatega-multivendor-rider/assets/images/ui/placeholder.png b/enatega-multivendor-rider/assets/images/ui/placeholder.png
new file mode 100644
index 0000000..c13e0c3
Binary files /dev/null and b/enatega-multivendor-rider/assets/images/ui/placeholder.png differ
diff --git a/enatega-multivendor-rider/assets/images/ui/transparent-icon.png b/enatega-multivendor-rider/assets/images/ui/transparent-icon.png
new file mode 100644
index 0000000..b1f3b47
Binary files /dev/null and b/enatega-multivendor-rider/assets/images/ui/transparent-icon.png differ
diff --git a/enatega-multivendor-rider/assets/splash.png b/enatega-multivendor-rider/assets/splash.png
new file mode 100644
index 0000000..2eca75d
Binary files /dev/null and b/enatega-multivendor-rider/assets/splash.png differ
diff --git a/enatega-multivendor-rider/babel.config.js b/enatega-multivendor-rider/babel.config.js
new file mode 100644
index 0000000..c2d4a14
--- /dev/null
+++ b/enatega-multivendor-rider/babel.config.js
@@ -0,0 +1,7 @@
+module.exports = function(api) {
+ api.cache(true)
+ return {
+ presets: ['babel-preset-expo'],
+ plugins: ['react-native-reanimated/plugin']
+ }
+}
diff --git a/enatega-multivendor-rider/dist/assetmap.json b/enatega-multivendor-rider/dist/assetmap.json
new file mode 100644
index 0000000..0c76344
--- /dev/null
+++ b/enatega-multivendor-rider/dist/assetmap.json
@@ -0,0 +1 @@
+{"6a4582aa1a054cd883065d734dfe8085":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_success.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_success@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_success@3x.png"],"hash":"6a4582aa1a054cd883065d734dfe8085","name":"fm_icon_success","type":"png","fileHashes":["4dbc10fd34db70b75c821f766659cb81","80286c9b992fad5b500d5a1f06434b5f","84ad3fe438ba116b007697ae568e22de"]},"b3ba8421448ed5de3c73b15c3ea0e195":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_info.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_info@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_info@3x.png"],"hash":"b3ba8421448ed5de3c73b15c3ea0e195","name":"fm_icon_info","type":"png","fileHashes":["9098f279a79458551f75c67a0f741e7d","dfc580f63d59d8ffbe6a62d000388e86","25be4da7236d5add94db4c612d243b2c"]},"895ec59f4e20939f7bfc6cb0b6174df3":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_warning.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_warning@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_warning@3x.png"],"hash":"895ec59f4e20939f7bfc6cb0b6174df3","name":"fm_icon_warning","type":"png","fileHashes":["f52efad4d6a123c4c4e09241036b80ed","da4303c980b7f993076b634937adaa6b","121f3bcfa420e77f48064983d90ea544"]},"f4c4db1327125793635a1ae504a9d8c2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons","httpServerLocation":"/assets/node_modules/react-native-flash-message/src/icons","width":21,"height":21,"scales":[1,2,3],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_danger.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_danger@2x.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/react-native-flash-message/src/icons/fm_icon_danger@3x.png"],"hash":"f4c4db1327125793635a1ae504a9d8c2","name":"fm_icon_danger","type":"png","fileHashes":["d37ddbcd08c865194a83f47664629ccd","07ff227fc7d39db4d4903e8367fa30e9","61b13cb6db14eea1a4e083c331ef816c"]},"c90fb4585dd852a3d67af39baf923f67":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/stack/src/views/assets","width":12,"height":21,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@1x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@1.5x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@2x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@3x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@4x.ios.png"],"hash":"c90fb4585dd852a3d67af39baf923f67","name":"back-icon","type":"png","fileHashes":["7d40544b395c5949f4646f5e150fe020","cdd04e13d4ec83ff0cd13ec8dabdc341","a132ecc4ba5c1517ff83c0fb321bc7fc","0ea69b5077e7c4696db85dbcba75b0e1","f5b790e2ac193b3d41015edb3551f9b8"]},"5223c8d9b0d08b82a5670fb5f71faf78":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/stack/src/views/assets","width":50,"height":85,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon-mask.png"],"hash":"5223c8d9b0d08b82a5670fb5f71faf78","name":"back-icon-mask","type":"png","fileHashes":["5223c8d9b0d08b82a5670fb5f71faf78"]},"2a8b5fff19012916a50a2032b5b1cf07":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/drawer/src/views/assets","width":24,"height":24,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1.5x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@2x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@3x.ios.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@4x.ios.png"],"hash":"2a8b5fff19012916a50a2032b5b1cf07","name":"toggle-drawer-icon","type":"png","fileHashes":["a4e0725c66112486cc6f4ab4e0025528","d916e34c419b7246d59efe2dc965ff75","92342ace2ac52e29a7fce51b89c2cbd0","7c519c6f00d65602c16b98bdffddc6f4","ccb993f31c04afbcca02178df04f4170"]},"76d5972e1d6413fb135558bf5ceb2d0a":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg","httpServerLocation":"/assets/src/assets/svg","width":680,"height":407,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg/RiderLogin.png"],"hash":"76d5972e1d6413fb135558bf5ceb2d0a","name":"RiderLogin","type":"png","fileHashes":["76d5972e1d6413fb135558bf5ceb2d0a"]},"3a2ba31570920eeb9b1d217cabe58315":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf"],"hash":"3a2ba31570920eeb9b1d217cabe58315","name":"AntDesign","type":"ttf","fileHashes":["3a2ba31570920eeb9b1d217cabe58315"]},"31b5ffea3daddc69dd01a1f3d6cf63c5":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Entypo.ttf"],"hash":"31b5ffea3daddc69dd01a1f3d6cf63c5","name":"Entypo","type":"ttf","fileHashes":["31b5ffea3daddc69dd01a1f3d6cf63c5"]},"140c53a7643ea949007aa9a282153849":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/EvilIcons.ttf"],"hash":"140c53a7643ea949007aa9a282153849","name":"EvilIcons","type":"ttf","fileHashes":["140c53a7643ea949007aa9a282153849"]},"a76d309774d33d9856f650bed4292a23":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Feather.ttf"],"hash":"a76d309774d33d9856f650bed4292a23","name":"Feather","type":"ttf","fileHashes":["a76d309774d33d9856f650bed4292a23"]},"b49ae8ab2dbccb02c4d11caaacf09eab":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Fontisto.ttf"],"hash":"b49ae8ab2dbccb02c4d11caaacf09eab","name":"Fontisto","type":"ttf","fileHashes":["b49ae8ab2dbccb02c4d11caaacf09eab"]},"b06871f281fee6b241d60582ae9369b9":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome.ttf"],"hash":"b06871f281fee6b241d60582ae9369b9","name":"FontAwesome","type":"ttf","fileHashes":["b06871f281fee6b241d60582ae9369b9"]},"1f77739ca9ff2188b539c36f30ffa2be":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"],"hash":"1f77739ca9ff2188b539c36f30ffa2be","name":"FontAwesome5_Regular","type":"ttf","fileHashes":["1f77739ca9ff2188b539c36f30ffa2be"]},"605ed7926cf39a2ad5ec2d1f9d391d3d":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"],"hash":"605ed7926cf39a2ad5ec2d1f9d391d3d","name":"FontAwesome5_Solid","type":"ttf","fileHashes":["605ed7926cf39a2ad5ec2d1f9d391d3d"]},"3b89dd103490708d19a95adcae52210e":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"],"hash":"3b89dd103490708d19a95adcae52210e","name":"FontAwesome5_Brands","type":"ttf","fileHashes":["3b89dd103490708d19a95adcae52210e"]},"e20945d7c929279ef7a6f1db184a4470":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Foundation.ttf"],"hash":"e20945d7c929279ef7a6f1db184a4470","name":"Foundation","type":"ttf","fileHashes":["e20945d7c929279ef7a6f1db184a4470"]},"b3263095df30cb7db78c613e73f9499a":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Ionicons.ttf"],"hash":"b3263095df30cb7db78c613e73f9499a","name":"Ionicons","type":"ttf","fileHashes":["b3263095df30cb7db78c613e73f9499a"]},"b62641afc9ab487008e996a5c5865e56":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"],"hash":"b62641afc9ab487008e996a5c5865e56","name":"MaterialCommunityIcons","type":"ttf","fileHashes":["b62641afc9ab487008e996a5c5865e56"]},"8ef52a15e44481b41e7db3c7eaf9bb83":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf"],"hash":"8ef52a15e44481b41e7db3c7eaf9bb83","name":"MaterialIcons","type":"ttf","fileHashes":["8ef52a15e44481b41e7db3c7eaf9bb83"]},"f7c53c47a66934504fcbc7cc164895a7":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Octicons.ttf"],"hash":"f7c53c47a66934504fcbc7cc164895a7","name":"Octicons","type":"ttf","fileHashes":["f7c53c47a66934504fcbc7cc164895a7"]},"d2285965fe34b05465047401b8595dd0":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"],"hash":"d2285965fe34b05465047401b8595dd0","name":"SimpleLineIcons","type":"ttf","fileHashes":["d2285965fe34b05465047401b8595dd0"]},"1681f34aaca71b8dfb70756bca331eb2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","httpServerLocation":"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Zocial.ttf"],"hash":"1681f34aaca71b8dfb70756bca331eb2","name":"Zocial","type":"ttf","fileHashes":["1681f34aaca71b8dfb70756bca331eb2"]},"1e680240df3b15b2376f4d23b40d358a":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets","httpServerLocation":"/assets/src/assets","width":1242,"height":2436,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/rider.png"],"hash":"1e680240df3b15b2376f4d23b40d358a","name":"rider","type":"png","fileHashes":["1e680240df3b15b2376f4d23b40d358a"]},"9847393b4879d94d9c54c45c7829fb52":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg","httpServerLocation":"/assets/src/assets/svg","width":4096,"height":4096,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg/tick.png"],"hash":"9847393b4879d94d9c54c45c7829fb52","name":"tick","type":"png","fileHashes":["9847393b4879d94d9c54c45c7829fb52"]},"951632a4a39b14833b855f8ba4753102":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg","httpServerLocation":"/assets/src/assets/svg","width":94,"height":95,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg/restaurant.png"],"hash":"951632a4a39b14833b855f8ba4753102","name":"restaurant","type":"png","fileHashes":["951632a4a39b14833b855f8ba4753102"]},"7acec707b8351fab2dc980d7b6412591":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg","httpServerLocation":"/assets/src/assets/svg","width":42,"height":151,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg/DeliveryBoy.png"],"hash":"7acec707b8351fab2dc980d7b6412591","name":"DeliveryBoy","type":"png","fileHashes":["7acec707b8351fab2dc980d7b6412591"]},"6200100f32c037b5667ec7da17d26f4f":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets","httpServerLocation":"/assets/src/assets","width":102,"height":112,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/rest_icon.png"],"hash":"6200100f32c037b5667ec7da17d26f4f","name":"rest_icon","type":"png","fileHashes":["6200100f32c037b5667ec7da17d26f4f"]},"377645c92b0ad9d5ac4d65afd0dacc20":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets","httpServerLocation":"/assets/src/assets","width":102,"height":112,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/home_icon.png"],"hash":"377645c92b0ad9d5ac4d65afd0dacc20","name":"home_icon","type":"png","fileHashes":["377645c92b0ad9d5ac4d65afd0dacc20"]},"fd67f47863a11fc2e0a20971a8919fb0":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets","httpServerLocation":"/assets/src/assets","width":152,"height":167,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/rider_icon.png"],"hash":"fd67f47863a11fc2e0a20971a8919fb0","name":"rider_icon","type":"png","fileHashes":["fd67f47863a11fc2e0a20971a8919fb0"]},"2704d90fae219756b59c42cd9eceec05":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg","httpServerLocation":"/assets/src/assets/svg","width":779,"height":757,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg/WalletBg.png"],"hash":"2704d90fae219756b59c42cd9eceec05","name":"WalletBg","type":"png","fileHashes":["2704d90fae219756b59c42cd9eceec05"]},"5db0a6ea78cf252eb50635cefa7554fd":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg","httpServerLocation":"/assets/src/assets/svg","width":201,"height":160,"scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/svg/doneIcon.png"],"hash":"5db0a6ea78cf252eb50635cefa7554fd","name":"doneIcon","type":"png","fileHashes":["5db0a6ea78cf252eb50635cefa7554fd"]},"d60502bc5a0fdefa08e5a98ed2d47c9c":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets","httpServerLocation":"/assets/src/assets","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/beep3.mp3"],"hash":"d60502bc5a0fdefa08e5a98ed2d47c9c","name":"beep3","type":"mp3","fileHashes":["d60502bc5a0fdefa08e5a98ed2d47c9c"]},"ee01ab27438661d75d4098c4f9239ac2":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/font/MuseoSans","httpServerLocation":"/assets/src/assets/font/MuseoSans","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans300.ttf"],"hash":"ee01ab27438661d75d4098c4f9239ac2","name":"MuseoSans300","type":"ttf","fileHashes":["ee01ab27438661d75d4098c4f9239ac2"]},"00b9402278151d933c0c4e467bb759c4":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/font/MuseoSans","httpServerLocation":"/assets/src/assets/font/MuseoSans","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans500.ttf"],"hash":"00b9402278151d933c0c4e467bb759c4","name":"MuseoSans500","type":"ttf","fileHashes":["00b9402278151d933c0c4e467bb759c4"]},"af882e20c950f9cb6443dfc4162bba53":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/font/MuseoSans","httpServerLocation":"/assets/src/assets/font/MuseoSans","scales":[1],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans700.ttf"],"hash":"af882e20c950f9cb6443dfc4162bba53","name":"MuseoSans700","type":"ttf","fileHashes":["af882e20c950f9cb6443dfc4162bba53"]},"a364dc7a784101f7c8f6791c7b4514ce":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/stack/src/views/assets","width":24,"height":24,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@1x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@1.5x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@2x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@3x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/stack/src/views/assets/back-icon@4x.android.png"],"hash":"a364dc7a784101f7c8f6791c7b4514ce","name":"back-icon","type":"png","fileHashes":["778ffc9fe8773a878e9c30a6304784de","376d6a4c7f622917c39feb23671ef71d","c79c3606a1cf168006ad3979763c7e0c","02bc1fa7c0313217bde2d65ccbff40c9","35ba0eaec5a4f5ed12ca16fabeae451d"]},"8ca25a8090835447d6d606ecaac9e240":{"__packager_asset":true,"fileSystemLocation":"/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets","httpServerLocation":"/assets/node_modules/@react-navigation/drawer/src/views/assets","width":24,"height":24,"scales":[1,1.5,2,3,4],"files":["/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@1.5x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@2x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@3x.android.png","/Users/ninjascode-4/Projects/Marketplace-Food-Delivery-Solution-1/enatega-multivendor-rider/node_modules/@react-navigation/drawer/src/views/assets/toggle-drawer-icon@4x.android.png"],"hash":"8ca25a8090835447d6d606ecaac9e240","name":"toggle-drawer-icon","type":"png","fileHashes":["665d9d6a3227c85fcb50f3f86ccad80c","f39b4d4f351495ad948f880253d58943","ddf6610eb512edae2ba722a7212c3ecc","a5e0abbdbd82bc804c2eb86eff046d52","ae74bb20586a731af545e6b00fe14a09"]}}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/dist/debug.html b/enatega-multivendor-rider/dist/debug.html
new file mode 100644
index 0000000..3c838dd
--- /dev/null
+++ b/enatega-multivendor-rider/dist/debug.html
@@ -0,0 +1,6 @@
+
+
+
+ Open up this file in Chrome. In the JavaScript developer console, navigate to the Source tab.
+ You can see a red colored folder containing the original source code from your bundle.
+
\ No newline at end of file
diff --git a/enatega-multivendor-rider/dist/metadata.json b/enatega-multivendor-rider/dist/metadata.json
new file mode 100644
index 0000000..8bdbe35
--- /dev/null
+++ b/enatega-multivendor-rider/dist/metadata.json
@@ -0,0 +1 @@
+{"version":0,"bundler":"metro","fileMetadata":{"ios":{"bundle":"bundles/ios-57ce6f2ad7450f014f877e954bdf7d67.js","assets":[{"path":"assets/4dbc10fd34db70b75c821f766659cb81","ext":"png"},{"path":"assets/80286c9b992fad5b500d5a1f06434b5f","ext":"png"},{"path":"assets/84ad3fe438ba116b007697ae568e22de","ext":"png"},{"path":"assets/9098f279a79458551f75c67a0f741e7d","ext":"png"},{"path":"assets/dfc580f63d59d8ffbe6a62d000388e86","ext":"png"},{"path":"assets/25be4da7236d5add94db4c612d243b2c","ext":"png"},{"path":"assets/f52efad4d6a123c4c4e09241036b80ed","ext":"png"},{"path":"assets/da4303c980b7f993076b634937adaa6b","ext":"png"},{"path":"assets/121f3bcfa420e77f48064983d90ea544","ext":"png"},{"path":"assets/d37ddbcd08c865194a83f47664629ccd","ext":"png"},{"path":"assets/07ff227fc7d39db4d4903e8367fa30e9","ext":"png"},{"path":"assets/61b13cb6db14eea1a4e083c331ef816c","ext":"png"},{"path":"assets/7d40544b395c5949f4646f5e150fe020","ext":"png"},{"path":"assets/cdd04e13d4ec83ff0cd13ec8dabdc341","ext":"png"},{"path":"assets/a132ecc4ba5c1517ff83c0fb321bc7fc","ext":"png"},{"path":"assets/0ea69b5077e7c4696db85dbcba75b0e1","ext":"png"},{"path":"assets/f5b790e2ac193b3d41015edb3551f9b8","ext":"png"},{"path":"assets/5223c8d9b0d08b82a5670fb5f71faf78","ext":"png"},{"path":"assets/a4e0725c66112486cc6f4ab4e0025528","ext":"png"},{"path":"assets/d916e34c419b7246d59efe2dc965ff75","ext":"png"},{"path":"assets/92342ace2ac52e29a7fce51b89c2cbd0","ext":"png"},{"path":"assets/7c519c6f00d65602c16b98bdffddc6f4","ext":"png"},{"path":"assets/ccb993f31c04afbcca02178df04f4170","ext":"png"},{"path":"assets/76d5972e1d6413fb135558bf5ceb2d0a","ext":"png"},{"path":"assets/3a2ba31570920eeb9b1d217cabe58315","ext":"ttf"},{"path":"assets/31b5ffea3daddc69dd01a1f3d6cf63c5","ext":"ttf"},{"path":"assets/140c53a7643ea949007aa9a282153849","ext":"ttf"},{"path":"assets/a76d309774d33d9856f650bed4292a23","ext":"ttf"},{"path":"assets/b49ae8ab2dbccb02c4d11caaacf09eab","ext":"ttf"},{"path":"assets/b06871f281fee6b241d60582ae9369b9","ext":"ttf"},{"path":"assets/1f77739ca9ff2188b539c36f30ffa2be","ext":"ttf"},{"path":"assets/605ed7926cf39a2ad5ec2d1f9d391d3d","ext":"ttf"},{"path":"assets/3b89dd103490708d19a95adcae52210e","ext":"ttf"},{"path":"assets/e20945d7c929279ef7a6f1db184a4470","ext":"ttf"},{"path":"assets/b3263095df30cb7db78c613e73f9499a","ext":"ttf"},{"path":"assets/b62641afc9ab487008e996a5c5865e56","ext":"ttf"},{"path":"assets/8ef52a15e44481b41e7db3c7eaf9bb83","ext":"ttf"},{"path":"assets/f7c53c47a66934504fcbc7cc164895a7","ext":"ttf"},{"path":"assets/d2285965fe34b05465047401b8595dd0","ext":"ttf"},{"path":"assets/1681f34aaca71b8dfb70756bca331eb2","ext":"ttf"},{"path":"assets/1e680240df3b15b2376f4d23b40d358a","ext":"png"},{"path":"assets/9847393b4879d94d9c54c45c7829fb52","ext":"png"},{"path":"assets/951632a4a39b14833b855f8ba4753102","ext":"png"},{"path":"assets/7acec707b8351fab2dc980d7b6412591","ext":"png"},{"path":"assets/6200100f32c037b5667ec7da17d26f4f","ext":"png"},{"path":"assets/377645c92b0ad9d5ac4d65afd0dacc20","ext":"png"},{"path":"assets/fd67f47863a11fc2e0a20971a8919fb0","ext":"png"},{"path":"assets/2704d90fae219756b59c42cd9eceec05","ext":"png"},{"path":"assets/5db0a6ea78cf252eb50635cefa7554fd","ext":"png"},{"path":"assets/d60502bc5a0fdefa08e5a98ed2d47c9c","ext":"mp3"},{"path":"assets/ee01ab27438661d75d4098c4f9239ac2","ext":"ttf"},{"path":"assets/00b9402278151d933c0c4e467bb759c4","ext":"ttf"},{"path":"assets/af882e20c950f9cb6443dfc4162bba53","ext":"ttf"}]},"android":{"bundle":"bundles/android-1105df838a8725fa091c15566a93eae5.js","assets":[{"path":"assets/4dbc10fd34db70b75c821f766659cb81","ext":"png"},{"path":"assets/80286c9b992fad5b500d5a1f06434b5f","ext":"png"},{"path":"assets/84ad3fe438ba116b007697ae568e22de","ext":"png"},{"path":"assets/9098f279a79458551f75c67a0f741e7d","ext":"png"},{"path":"assets/dfc580f63d59d8ffbe6a62d000388e86","ext":"png"},{"path":"assets/25be4da7236d5add94db4c612d243b2c","ext":"png"},{"path":"assets/f52efad4d6a123c4c4e09241036b80ed","ext":"png"},{"path":"assets/da4303c980b7f993076b634937adaa6b","ext":"png"},{"path":"assets/121f3bcfa420e77f48064983d90ea544","ext":"png"},{"path":"assets/d37ddbcd08c865194a83f47664629ccd","ext":"png"},{"path":"assets/07ff227fc7d39db4d4903e8367fa30e9","ext":"png"},{"path":"assets/61b13cb6db14eea1a4e083c331ef816c","ext":"png"},{"path":"assets/778ffc9fe8773a878e9c30a6304784de","ext":"png"},{"path":"assets/376d6a4c7f622917c39feb23671ef71d","ext":"png"},{"path":"assets/c79c3606a1cf168006ad3979763c7e0c","ext":"png"},{"path":"assets/02bc1fa7c0313217bde2d65ccbff40c9","ext":"png"},{"path":"assets/35ba0eaec5a4f5ed12ca16fabeae451d","ext":"png"},{"path":"assets/5223c8d9b0d08b82a5670fb5f71faf78","ext":"png"},{"path":"assets/665d9d6a3227c85fcb50f3f86ccad80c","ext":"png"},{"path":"assets/f39b4d4f351495ad948f880253d58943","ext":"png"},{"path":"assets/ddf6610eb512edae2ba722a7212c3ecc","ext":"png"},{"path":"assets/a5e0abbdbd82bc804c2eb86eff046d52","ext":"png"},{"path":"assets/ae74bb20586a731af545e6b00fe14a09","ext":"png"},{"path":"assets/76d5972e1d6413fb135558bf5ceb2d0a","ext":"png"},{"path":"assets/3a2ba31570920eeb9b1d217cabe58315","ext":"ttf"},{"path":"assets/31b5ffea3daddc69dd01a1f3d6cf63c5","ext":"ttf"},{"path":"assets/140c53a7643ea949007aa9a282153849","ext":"ttf"},{"path":"assets/a76d309774d33d9856f650bed4292a23","ext":"ttf"},{"path":"assets/b49ae8ab2dbccb02c4d11caaacf09eab","ext":"ttf"},{"path":"assets/b06871f281fee6b241d60582ae9369b9","ext":"ttf"},{"path":"assets/1f77739ca9ff2188b539c36f30ffa2be","ext":"ttf"},{"path":"assets/605ed7926cf39a2ad5ec2d1f9d391d3d","ext":"ttf"},{"path":"assets/3b89dd103490708d19a95adcae52210e","ext":"ttf"},{"path":"assets/e20945d7c929279ef7a6f1db184a4470","ext":"ttf"},{"path":"assets/b3263095df30cb7db78c613e73f9499a","ext":"ttf"},{"path":"assets/b62641afc9ab487008e996a5c5865e56","ext":"ttf"},{"path":"assets/8ef52a15e44481b41e7db3c7eaf9bb83","ext":"ttf"},{"path":"assets/f7c53c47a66934504fcbc7cc164895a7","ext":"ttf"},{"path":"assets/d2285965fe34b05465047401b8595dd0","ext":"ttf"},{"path":"assets/1681f34aaca71b8dfb70756bca331eb2","ext":"ttf"},{"path":"assets/1e680240df3b15b2376f4d23b40d358a","ext":"png"},{"path":"assets/9847393b4879d94d9c54c45c7829fb52","ext":"png"},{"path":"assets/951632a4a39b14833b855f8ba4753102","ext":"png"},{"path":"assets/7acec707b8351fab2dc980d7b6412591","ext":"png"},{"path":"assets/6200100f32c037b5667ec7da17d26f4f","ext":"png"},{"path":"assets/377645c92b0ad9d5ac4d65afd0dacc20","ext":"png"},{"path":"assets/fd67f47863a11fc2e0a20971a8919fb0","ext":"png"},{"path":"assets/2704d90fae219756b59c42cd9eceec05","ext":"png"},{"path":"assets/5db0a6ea78cf252eb50635cefa7554fd","ext":"png"},{"path":"assets/d60502bc5a0fdefa08e5a98ed2d47c9c","ext":"mp3"},{"path":"assets/ee01ab27438661d75d4098c4f9239ac2","ext":"ttf"},{"path":"assets/00b9402278151d933c0c4e467bb759c4","ext":"ttf"},{"path":"assets/af882e20c950f9cb6443dfc4162bba53","ext":"ttf"}]}}}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/eas.json b/enatega-multivendor-rider/eas.json
new file mode 100644
index 0000000..d44bfc3
--- /dev/null
+++ b/enatega-multivendor-rider/eas.json
@@ -0,0 +1,36 @@
+{
+ "build": {
+ "development": {
+ "developmentClient": false,
+ "releaseChannel": "development",
+ "distribution": "internal"
+ },
+ "staging": {
+ "developmentClient": false,
+ "releaseChannel": "staging",
+ "distribution": "internal"
+ },
+ "production": {
+ "channel": "production",
+ "android": {
+ "buildType": "apk"
+ }
+ }
+ },
+ "submit": {
+ "production": {
+ "android": {
+ "serviceAccountKeyPath": "./google-service-account.json",
+ "track": "production"
+ },
+ "ios": {
+ "appleId": "sharan.gohar@icloud.com",
+ "ascAppId": "1526674511",
+ "appleTeamId": "GDFK7MVY6P"
+ }
+ }
+ },
+ "cli": {
+ "version": ">= 0.43.0"
+ }
+}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/environment.js b/enatega-multivendor-rider/environment.js
new file mode 100644
index 0000000..7a8471d
--- /dev/null
+++ b/enatega-multivendor-rider/environment.js
@@ -0,0 +1,29 @@
+import * as Updates from 'expo-updates'
+import { useContext } from 'react'
+import ConfigurationContext from './src/context/configuration'
+
+const getEnvVars = (env = Updates.releaseChannel) => {
+ const configuration = useContext(ConfigurationContext)
+
+ console.log('configuration', configuration)
+
+ if (env === 'production' || env === 'staging') {
+ return {
+ GRAPHQL_URL: 'https://enatega-multivendor.up.railway.app/graphql',
+ WS_GRAPHQL_URL: 'wss://enatega-multivendor.up.railway.app/graphql',
+ SENTRY_DSN: configuration.riderAppSentryUrl,
+ GOOGLE_MAPS_KEY: configuration.googleApiKey
+ }
+ }
+ return {
+ GRAPHQL_URL: 'https://enatega-multivendor.up.railway.app/graphql',
+ WS_GRAPHQL_URL: 'wss://enatega-multivendor.up.railway.app/graphql',
+ SENTRY_DSN: configuration.riderAppSentryUrl,
+ GOOGLE_MAPS_KEY: configuration.googleApiKey
+ // SENTRY_DSN:
+ // 'https://e963731ba0f84e5d823a2bbe2968ea4d@o1103026.ingest.sentry.io/6135261', // [Add your own Sentry DSN link][example: https://e963731ba0f84e5d823a2bbe2968ea4d@o1103026.ingest.sentry.io/5135261]
+ // GOOGLE_MAPS_KEY: 'AIzaSyCzNP5qQql2a5y8lOoO-1yj1lj_tzjVImA'
+ }
+}
+
+export default getEnvVars
diff --git a/enatega-multivendor-rider/i18next.js b/enatega-multivendor-rider/i18next.js
new file mode 100644
index 0000000..1cdc870
--- /dev/null
+++ b/enatega-multivendor-rider/i18next.js
@@ -0,0 +1,46 @@
+import i18next from 'i18next'
+import { initReactI18next } from 'react-i18next'
+import * as Localization from 'expo-localization'
+import { Platform } from 'react-native'
+import { en } from './languages/en'
+import { de } from './languages/de'
+import { fr } from './languages/fr'
+import { km } from './languages/km'
+import { zh } from './languages/zh'
+import { ar } from './languages/ar'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+export const languageResources = {
+ en: { translation: en },
+ zh: { translation: zh },
+ de: { translation: de },
+ fr: { translation: fr },
+ km: { translation: km },
+ ar: { translation: ar }
+}
+
+const getStoredLanguage = async () => {
+ const lng = await AsyncStorage.getItem('enatega-language')
+ console.log(lng)
+ i18next.use(initReactI18next).init({
+ compatibilityJSON: 'v3',
+ lng: lng,
+ fallbackLng: 'en',
+ resources: languageResources
+ })
+}
+if (Platform.OS === 'android') {
+ getStoredLanguage()
+}
+if (Platform.OS === 'ios') {
+ i18next.locale = Localization.locale
+ i18next.use(initReactI18next).init({
+ compatibilityJSON: 'v3',
+ lng: i18next.locale,
+ fallbackLng: 'en',
+ resources: languageResources
+ })
+ console.log('language:', Localization.locale)
+ i18next.changeLanguage(i18next.locale)
+}
+
+export default i18next
diff --git a/enatega-multivendor-rider/index.js b/enatega-multivendor-rider/index.js
new file mode 100644
index 0000000..f59b280
--- /dev/null
+++ b/enatega-multivendor-rider/index.js
@@ -0,0 +1,9 @@
+import 'expo-dev-client'
+import { registerRootComponent } from 'expo'
+
+import App from './App'
+
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
+// It also ensures that whether you load the app in Expo Go or in a native build,
+// the environment is set up appropriately
+registerRootComponent(App)
diff --git a/enatega-multivendor-rider/languages/ar.js b/enatega-multivendor-rider/languages/ar.js
new file mode 100644
index 0000000..2efa70d
--- /dev/null
+++ b/enatega-multivendor-rider/languages/ar.js
@@ -0,0 +1,207 @@
+export const ar = {
+ title0: 'اللغة المحددة',
+ subtitle0: 'الإنجليزية',
+ description0:
+ 'اختر أي لغة تفضلها لتغيير محتوى التطبيق إلى اللغة التي ترغب فيها.',
+ title1: 'لذيذ',
+ subtitle1: 'فطور',
+ description1:
+ 'الفطور هو كل شيء. البداية، الشيء الأول. إنه اللقمة التي تعتبر التزامًا ليوم جديد، حياة مستمرة.',
+ title2: 'منعش',
+ subtitle2: 'المشروبات',
+ description2:
+ 'الصمت الحقيقي هو راحة العقل، وهو للروح ما هو النوم للجسم، غذاء وانتعاش.',
+ title3: 'لذيذ',
+ subtitle3: 'الآيس كريم',
+ description3:
+ 'العمر لا يقلل من خيبة الأمل الشديدة التي تنتابك عندما يسقط الآيس كريم من البوظة',
+ getStarted: 'ابدأ الآن!',
+ welcome:
+ 'مرحبًا بك في إنتيجا، في بعض الأحيان كل ما تحتاجه هو الحب. ولكن القليل من الطعام بين الحين والآخر لن يضر.',
+ loginBtn: 'تسجيل الدخول',
+registerBtn: 'تسجيل',
+name: 'الاسم',
+phone: 'الهاتف',
+email: 'البريد الإلكتروني',
+emailphone: 'البريد الإلكتروني أو الهاتف',
+username: 'اسم المستخدم',
+password: 'كلمة المرور',
+deliveryAddress: 'عنوان التوصيل',
+registerText: 'أو سجّل بواسطة',
+forgotPassword: 'هل نسيت كلمة المرور؟',
+loginText: 'أو قم بتسجيل الدخول بواسطة',
+deliveryLocation: 'قم بتشغيل الموقع لنتمكن من إرسال لك مذاقًا لا ينتهي من الطعام اللذيذ.',
+locationBtn: 'تشغيل الموقع',
+locationPermissionDenied: 'تم رفض إذن الوصول إلى الموقع',
+cameraRollPermissionDenied: 'تم رفض إذن الوصول إلى Camera Roll',
+locationOff: 'قم بتشغيل الموقع وحاول مرة أخرى',
+titleLanguage: 'تغيير اللغة',
+titleMenu: 'القائمة',
+titleOrders: 'طلباتي',
+NewOrders: 'طلبات جديدة',
+titleNotifications: 'الإشعارات',
+titleReviews: 'التقييمات',
+titleSettings: 'الإعدادات',
+titleHelp: 'المساعدة',
+titleLogout: 'تسجيل الخروج',
+titleCart: 'عربة التسوق الخاصة بي',
+titlePayment: 'الدفع',
+totalOrderAmount: 'إجمالي مبلغ الطلب',
+reOrder: 'إعادة الطلب',
+unReadNotifications: 'لا يوجد إشعارات غير مقروءة',
+upload: 'رفع',
+saveBtn: 'حفظ',
+emailUs: 'راسلنا عبر البريد الإلكتروني على',
+question1: 'أين يمكننا العثور على الطعام؟',
+question2: 'كيف يمكننا التواصل؟',
+question3: 'كيف يمكنني دفع مبلغ التوصيل؟',
+question4: 'هل الخدمة متوفرة في مدينتي؟',
+answer1:
+ 'يمكنك العثور على الطعام في أقرب متجر لك دون دفع أي شيء لخدمة العملاء. رسومنا منخفضة للغاية مقارنة بالآخرين.',
+answer2: 'يمكنك التواصل معنا من خلال بريدنا الإلكتروني أو رقم الهاتف أو موقعنا على الويب.',
+answer3:
+ 'يمكنك دفع مبلغ التوصيل للشخص المسؤول عن التوصيل شخصيًا أو الدفع عبر الإنترنت عن طريق بطاقة الائتمان أو الخصم.',
+answer4:
+ 'حاليًا هذه الخدمة متوفرة في مدن إسلام أباد وكراتشي يمكنك الاتصال بنا للاستفادة من هذه الخدمة في مدينتك.',
+ add: 'إضافة',
+ quantity: 'الكمية',
+ size: 'الحجم',
+ addToCart: 'أضف إلى السلة',
+ orderNow: 'اطلب الآن',
+ addToCartMessage: 'تمت الإضافة إلى السلة',
+ emptyCart: 'لا توجد عناصر في السلة',
+ itemTotal: 'إجمالي العنصر',
+ delvieryCharges: 'رسوم التوصيل',
+ total: 'الإجمالي',
+ contactInfo: 'معلومات الاتصال',
+ deliveryAddressmessage: 'حدد عنوان التسليم',
+ proceedCheckout: 'المتابعة إلى الدفع',
+ paymentText: 'كيف ترغب في الدفع؟',
+ checkout: 'الدفع',
+ header_title1: 'بطاقة الائتمان / الخصم',
+ header_subscript1: 'ادفع باستخدام بطاقة الائتمان أو الخصم',
+ header_title2: 'PayPal',
+ header_subscript2: 'ادفع عبر الإنترنت باستخدام PayPal',
+ header_title3: 'الدفع عند الاستلام',
+ header_subscript3: 'ادفع عند استلام الطلب',
+ thankYou: 'شكرًا لك!',
+ orderConfirmed: 'تم تأكيد طلبك',
+ orderId: 'رقم الطلب',
+ orderAmount: 'مبلغ طلبك',
+ orderDetail: 'تفاصيل الطلب',
+ paymentMethod: 'طريقة الدفع',
+ trackOrder: 'تتبع الطلب',
+ backToMenu: 'العودة إلى القائمة',
+ foodItem: 'العنصر الغذائي',
+ deliveredTo: 'تم التوصيل إلى',
+ writeAReview: 'كتابة تقييم',
+ orderReceived: 'تم استلام الطلب',
+ cancelled: 'تم الإلغاء',
+ foodPreparing: 'يتم إعداد الطعام',
+ DELIVERED: 'تم التوصيل',
+ rateAndReview: 'قيم وأكتب تقييمًا',
+ reviewPlaceholder: 'التقييمات التفصيلية تحصل على رؤية أكبر...',
+ submit: 'إرسال',
+ noWorriesText: 'لا تقلق، دعنا نساعدك!',
+ yourEmail: 'بريدك الإلكتروني',
+ send: 'إرسال',
+ apply: 'تطبيق',
+ checkEmail: 'تحقق من بريدك الإلكتروني لرابط إعادة تعيين كلمة المرور',
+ languageText: 'يرجى تحديد اللغة المطلوبة',
+ countryCodePickerTranslation: 'eng',
+ countryCodeSelect: 'حدد رمز البلد',
+ paymentNotSupported: 'هذه الطريقة الدفع لا تدعم هذه العملة',
+ Orders: 'الطلبات',
+ signInText: 'تسجيل الدخول باستخدام البريد الإلكتروني',
+ signInBtn: 'تسجيل الدخول',
+ status: 'الحالة',
+ available: 'متوفر',
+ notAvailable: 'غير متوفر',
+ myorders: 'طلباتي',
+ updating: 'يرجى الانتظار بينما يتم تحديث التطبيق',
+ orderID: 'رقم الطلب:',
+ deliveryTime: 'وقت التوصيل',
+ timeLeft: 'الوقت المتبقي',
+ inProgress: 'قيد التقدم',
+ assignMe: 'تعيين لي',
+ preparing: 'جارٍ التحضير',
+ timeLeftForMeal: 'الوقت المتبقي لتحضير الوجبة',
+ distanceToDestination: 'المسافة إلى الوجهة',
+ durationToDestination: 'المدة للوصول إلى الوجهة',
+ pick: 'اختيار',
+ markAsDelivered: 'وضع علامة كمستلم',
+ OrderDetail: 'تفاصيل الطلب',
+ yourOrderFrom: 'طلبك من',
+ orderNo: 'رقم الطلب',
+ subTotal: 'الإجمالي الفرعي',
+ tip: 'بقشيش',
+ taxCharges: 'رسوم الضرائب',
+ chatWithCustomer: 'الدردشة مع العميل',
+ errorText: 'حدث خطأ. حاول مرة أخرى لاحقًا!',
+ welcomeText: 'مرحبًا',
+ productPage: 'صفحة المنتج',
+ walletFeature: 'ميزة المحفظة قريبًا',
+ youPickedParcel: 'لقد اخترت الطرد.',
+ parcelDelivered: 'تم توصيل الطرد.',
+ orderDelivered: 'تم توصيل الطلب.',
+ newOrder: 'لديك طلب جديد.',
+ hurryUp: 'بادر!',
+ orderAssigned: 'تم تعيين الطلب.',
+ orderAssignedSubText: 'تم تعيين هذا الطلب لك.',
+ orderNotAvailable: 'الطلب غير متوفر.',
+ orderNotAvailableSubText: 'هذا الطلب لم يعد متاحًا.',
+ deliveryFee: 'رسوم التوصيل:',
+ orderStatus: 'حالة الطلب',
+ requestID: 'رقم الطلب:',
+ accountNumber: 'رقم الحساب',
+ requestAmount: 'مبلغ الطلب',
+ requestTime: 'وقت الطلب',
+ errorFetchingRider: 'حدث خطأ أثناء جلب معلومات السائق',
+ errorOccured: 'حدث خطأ!',
+ totalAmount: 'المبلغ الإجمالي',
+ chatWithRider: 'لنتحدث مع سائقك',
+ message: 'رسالة',
+ docs: 'المستندات',
+ blog: 'المدونة',
+ aboutUs: 'معلومات عنا',
+ noNewOrders: 'لا توجد طلبات جديدة حتى الآن!',
+ pullToRefresh: 'اسحب لأسفل للتحديث',
+ notAnyOrdersYet: 'ليس لديك أي طلبات حتى الآن!',
+ errorFetchingRiderProfile: 'حدث خطأ أثناء جلب ملف تعريف السائق',
+ minAmountWithdrawl: 'الحد الأدنى لسحب المبلغ هو',
+ withdrawMoney: 'سحب الأموال',
+walletHistory: 'تاريخ المحفظة',
+totalEarned: 'الإجمالي المكتسب',
+requestSent: 'تم إرسال الطلب',
+withdrawlRequestSent:
+ 'تم إرسال طلبك لسحب الأموال. تحقق من بريدك الإلكتروني للحصول على مزيد من التفاصيل.',
+availableAmount: 'المبلغ المتاح',
+enteramount: 'أدخل المبلغ',
+confirmWithdraw: 'تأكيد السحب',
+selectLanguage: 'اختر اللغة',
+edit: 'تعديل',
+language: 'اللغة',
+cancel: 'إلغاء',
+select: 'اختيار',
+home: "الصفحة الرئيسية",
+orders: "طلباتي",
+wallet: "المحفظة",
+profile: "الملف الشخصي",
+privacyPolicy: "سياسة الخصوصية",
+orderAssingnedFlash: "تم تعيين الطلب بنجاح",
+locationAccess: 'وصول الموقع',
+ locationAccessText: 'الإذن بالموقع مطلوب لاستخدام هذا التطبيق. يُرجى فتح الإعدادات للسماح بوصول الموقع.',
+ allowLocation: 'السماح بالموقع',
+ enategaLocationText: 'تستخدم إناتيجا موقعك لميزات مثل البحث عن الطلبات القريبة وتتبع طلبات العملاء!',
+ emptyUsernameError: 'اسم المستخدم مطلوب!',
+emptyPasswordError: 'كلمة المرور مطلوبة!',
+loginFlashMsg: 'تم تسجيل الدخول',
+enategaCash: 'كاش إناتيغا',
+ASSIGNED: "تم التعيين",
+PICKED: "تم الاختيار",
+contactCustomer: 'اتصل بالعميل',
+orderMarkedAs: 'تم وضع علامة على الطلب ',
+withdrawAmountError: 'يجب أن يكون مبلغ السحب أقل من أو يساوي مبلغ المحفظة!',
+amountGreater: 'يجب أن يكون المبلغ أكبر من',
+amountReq: 'المبلغ مطلوب!'
+}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/languages/de.js b/enatega-multivendor-rider/languages/de.js
new file mode 100644
index 0000000..82e2954
--- /dev/null
+++ b/enatega-multivendor-rider/languages/de.js
@@ -0,0 +1,211 @@
+export const de = {
+ title0: 'Ausgewählte Sprache',
+ subtitle0: 'Deutsch',
+ description0:
+ 'Wählen Sie eine Sprache Ihrer Wahl aus, um den Inhalt der App in Ihre gewünschte Sprache zu ändern.',
+ title1: 'Lecker',
+ subtitle1: 'Frühstück',
+ description1:
+ 'Frühstück ist alles. Der Anfang, das Erste. Es ist der Bissen, der das Engagement für einen neuen Tag, ein fortgesetztes Leben ist.',
+ title2: 'Erfrischend',
+ subtitle2: 'Getränke',
+ description2:
+ 'Wahre Stille ist die Ruhe des Geistes und ist für den Geist das, was der Schlaf für den Körper ist: Nahrung und Erfrischung.',
+ title3: 'Lecker',
+ subtitle3: 'Eiscreme',
+ description3:
+ 'Das Alter mindert nicht die extreme Enttäuschung, wenn eine Kugel Eis vom Hörnchen fällt',
+ getStarted: 'Los geht’s!',
+ welcome:
+ 'Willkommen bei Enatega, manchmal braucht man nur Liebe. Aber ab und zu schadet auch ein wenig Essen nicht.',
+ loginBtn: 'Anmelden',
+ registerBtn: 'Registrieren',
+ name: 'Name',
+ phone: 'Telefon',
+ email: 'E-Mail',
+ emailphone: 'E-Mail oder Telefon',
+ username: 'Benutzername',
+ password: 'Passwort',
+ deliveryAddress: 'Lieferadresse',
+ registerText: 'Oder registrieren Sie sich mit',
+ forgotPassword: 'Passwort vergessen?',
+ loginText: 'Oder anmelden mit',
+ deliveryLocation:
+ 'Aktivieren Sie den Standort, damit wir Ihnen endlose Geschmacksproben von köstlichem Essen schicken können.',
+ locationBtn: 'Standort aktivieren',
+ locationPermissionDenied: 'Zugriff auf den Standort verweigert',
+ cameraRollPermissionDenied: 'Zugriff auf die Kamerarolle verweigert',
+ locationOff: 'Aktivieren Sie den Standort und versuchen Sie es erneut',
+ titleLanguage: 'Sprache ändern',
+ titleMenu: 'Menü',
+ titleOrders: 'Meine Bestellungen',
+ NewOrders: 'Neue Bestellungen',
+
+ titleNotifications: 'Benachrichtigungen',
+ titleReviews: 'Bewertungen',
+ titleSettings: 'Einstellungen',
+ titleHelp: 'Hilfe',
+ titleLogout: 'Abmelden',
+ titleCart: 'Mein Warenkorb',
+ titlePayment: 'Bezahlung',
+ totalOrderAmount: 'Gesamtbetrag der Bestellung',
+ reOrder: 'Erneut bestellen',
+ unReadNotifications: 'Keine ungelesenen Benachrichtigungen',
+ upload: 'Hochladen',
+ saveBtn: 'Speichern',
+ emailUs: 'Schreiben Sie uns eine E-Mail an',
+ question1: 'Wo finden wir das Essen?',
+ question2: 'Wie kontaktieren wir?',
+ question3: 'Wie kann ich dem Lieferanten bezahlen?',
+ question4: 'Ist der Service in meiner Stadt verfügbar?',
+ answer1:
+ 'Sie können das Essen in Ihrem nächstgelegenen Geschäft finden, ohne dem Kundendienst etwas zu zahlen. Unsere Gebühren sind im Vergleich zu anderen sehr niedrig.',
+ answer2:
+ 'Sie können uns über unsere E-Mail, Telefonnummer oder unsere Website kontaktieren.',
+ answer3:
+ 'Sie können dem Lieferanten persönlich bezahlen oder auch online per Kredit- oder Debitkarte bezahlen.',
+ answer4:
+ 'Derzeit ist dieser Service in den Städten Islamabad und Karachi verfügbar. Sie können uns kontaktieren, um diesen Service in Ihrer Stadt zu nutzen.',
+ add: 'HINZUFÜGEN',
+ quantity: 'Menge',
+ size: 'Größe',
+ addToCart: 'In den Warenkorb legen',
+ orderNow: 'Jetzt bestellen',
+ addToCartMessage: 'Zum Warenkorb hinzugefügt',
+ emptyCart: 'Keine Artikel im Warenkorb',
+ itemTotal: 'Artikel Gesamt',
+ delvieryCharges: 'Liefergebühren',
+ total: 'Gesamt',
+ contactInfo: 'Kontaktinformationen',
+ deliveryAddressmessage: 'Lieferadresse festlegen',
+ proceedCheckout: 'Zur Kasse gehen',
+ paymentText: 'Wie möchten Sie bezahlen?',
+ checkout: 'Auschecken',
+ header_title1: 'Kreditkarte/Debitkarte',
+ header_subscript1: 'Mit Kredit- oder Debitkarte bezahlen',
+ header_title2: 'PayPal',
+ header_subscript2: 'Online mit PayPal bezahlen',
+ header_title3: 'Barzahlung bei Lieferung',
+ header_subscript3: 'Bezahlen, wenn Sie den Artikel erhalten',
+ thankYou: 'Danke!',
+ orderConfirmed: 'Ihre Bestellung ist bestätigt',
+ orderId: 'Bestellnummer',
+ orderAmount: 'Ihr Bestellbetrag',
+ orderDetail: 'Bestelldetail',
+ paymentMethod: 'Zahlungsmethode',
+ trackOrder: 'Bestellung verfolgen',
+ backToMenu: 'Zurück zum Menü',
+ foodItem: 'Lebensmittel',
+ deliveredTo: 'Geliefert an',
+ writeAReview: 'Eine Bewertung schreiben',
+ orderReceived: 'Bestellung erhalten',
+ cancelled: 'Abgebrochen',
+ foodPreparing: 'Das Essen wird zubereitet',
+ DELIVERED: 'Geliefert',
+ rateAndReview: 'Bewerten und Rezension schreiben',
+ reviewPlaceholder: 'Detailliertere Bewertungen erhalten mehr Sichtbarkeit...',
+ submit: 'Einreichen',
+ noWorriesText: 'Keine Sorge, lassen Sie uns Ihnen helfen!',
+ yourEmail: 'Ihre E-Mail',
+ send: 'Senden',
+ apply: 'Anwenden',
+ checkEmail:
+ 'Überprüfen Sie Ihre E-Mail auf den Link zum Zurücksetzen des Passworts',
+ languageText: 'Bitte wählen Sie Ihre gewünschte Sprache aus',
+ countryCodePickerTranslation: 'deu',
+ countryCodeSelect: 'Landescode auswählen',
+ paymentNotSupported: 'Diese Zahlungsmethode unterstützt diese Währung nicht',
+ Orders: 'Bestellungen',
+ signInText: 'Anmelden mit Ihrer E-Mail',
+ signInBtn: 'Anmelden',
+ status: 'Status',
+ available: 'Verfügbar',
+ notAvailable: 'Nicht verfügbar',
+ myorders: 'Meine Bestellungen',
+ updating: 'Bitte warten Sie, während die App aktualisiert wird',
+ orderID: ' Bestellnummer:',
+ deliveryTime: 'Lieferzeit',
+ timeLeft: ' Verbleibende Zeit',
+ inProgress: 'In Bearbeitung',
+ assignMe: 'Mir zuweisen',
+ preparing: 'Bereitet vor',
+ timeLeftForMeal: 'Verbleibende Zeit bis zur Zubereitung der Mahlzeit',
+ distanceToDestination: 'Entfernung zum Ziel',
+ durationToDestination: 'Dauer bis zum Ziel erreicht ist',
+ pick: 'Abholen',
+ markAsDelivered: 'Als geliefert markieren',
+ OrderDetail: 'Bestelldetails',
+ yourOrderFrom: 'Ihre Bestellung von',
+ orderNo: 'Bestellnummer',
+ subTotal: ' Zwischensumme',
+ tip: 'Trinkgeld',
+ taxCharges: 'Steuern',
+ chatWithCustomer: ' Mit dem Kunden chatten',
+ errorText: 'Etwas ist schief gelaufen. Versuchen Sie es später erneut!',
+ welcomeText: 'Willkommen',
+ productPage: 'Produktseite',
+ walletFeature: 'Wallet-Funktion kommt bald',
+ youPickedParcel: 'Sie haben das Paket abgeholt.',
+ parcelDelivered: 'Paket wurde geliefert.',
+ orderDelivered: 'Bestellung wurde geliefert.',
+ newOrder: 'Sie haben eine neue Bestellung.',
+ hurryUp: 'Beeil dich!',
+ orderAssigned: 'Bestellung zugewiesen.',
+ orderAssignedSubText: 'Diese Bestellung wurde Ihnen zugewiesen.',
+ orderNotAvailable: 'Bestellung nicht verfügbar.',
+ orderNotAvailableSubText: 'Diese Bestellung ist nicht mehr verfügbar.',
+ deliveryFee: 'Liefergebühr: ',
+ orderStatus: 'Bestellstatus',
+ requestID: 'Anfrage-ID:',
+ accountNumber: 'Kontonummer',
+ requestAmount: 'Anfragebetrag',
+ requestTime: 'Anfragezeit',
+ errorFetchingRider: 'Fehler beim Abrufen von Fahrerinformationen',
+ errorOccured: 'Ein Fehler ist aufgetreten!',
+ totalAmount: 'Gesamtbetrag',
+ chatWithRider: 'Lass uns mit deinem Fahrer chatten',
+ message: 'Nachricht',
+ docs: 'Dokumente',
+ blog: 'Blog',
+ aboutUs: 'Über uns',
+ noNewOrders: 'Noch keine neuen Bestellungen!',
+ pullToRefresh: 'Zum Aktualisieren nach unten ziehen',
+ notAnyOrdersYet: 'Sie haben noch keine Bestellungen!',
+ errorFetchingRiderProfile: 'Fehler beim Abrufen des Fahrerprofils',
+ minAmountWithdrawl: 'Mindestbetrag für die Auszahlung ist',
+ withdrawMoney: 'Geld abheben',
+ walletHistory: 'Wallet-Verlauf',
+ totalEarned: 'Insgesamt verdient',
+ requestSent: ' Anfrage gesendet',
+ withdrawlRequestSent:
+ 'Ihre Anfrage zur Geldauszahlung wurde gesendet. Überprüfen Sie Ihre E-Mail für weitere Details.',
+ availableAmount: 'Verfügbarer Betrag',
+ enteramount: 'Betrag eingeben',
+ confirmWithdraw: 'Auszahlung bestätigen',
+ selectLanguage: 'Sprache auswählen',
+edit: 'Bearbeiten',
+language: 'Sprache',
+cancel: 'Abbrechen',
+select: 'Auswählen',
+home: "Startseite",
+orders: "Meine Bestellungen",
+wallet: "Brieftasche",
+profile: "Profil",
+privacyPolicy: "Datenschutzrichtlinie",
+orderAssingnedFlash: "Bestellung erfolgreich zugewiesen",
+locationAccess: 'Standortzugriff',
+ locationAccessText: 'Standortberechtigungen sind erforderlich, um diese App zu verwenden. Bitte öffnen Sie die Einstellungen, um den Standortzugriff zu erlauben.',
+ allowLocation: 'Standort erlauben',
+ enategaLocationText: 'Enatega verwendet Ihren Standort für Funktionen wie das Finden von Bestellungen in der Nähe und das Verfolgen von Kundenbestellungen!',
+ emptyUsernameError: 'Benutzername ist erforderlich!',
+emptyPasswordError: 'Passwort ist erforderlich!',
+loginFlashMsg: 'Angemeldet',
+enategaCash: 'Enatega Bargeld',
+ASSIGNED: "ZUGEWIESEN",
+PICKED: "GEWÄHLT",
+contactCustomer: 'Kundenkontakt',
+orderMarkedAs: 'Bestellung markiert als ',
+withdrawAmountError: 'Abhebungsbetrag muss kleiner oder gleich dem Brieftaschenbetrag sein!',
+amountGreater: 'Betrag muss größer sein als',
+amountReq: 'Betrag ist erforderlich!'
+}
diff --git a/enatega-multivendor-rider/languages/en.js b/enatega-multivendor-rider/languages/en.js
new file mode 100644
index 0000000..ce4f130
--- /dev/null
+++ b/enatega-multivendor-rider/languages/en.js
@@ -0,0 +1,212 @@
+export const en = {
+ title0: 'Selected Language',
+ subtitle0: 'English',
+ description0:
+ 'Select any language of your choice to change the content of the app to your required language.',
+ title1: 'Tasty',
+ subtitle1: 'BreakFast',
+ description1:
+ 'Breakfast is everything. The beginning, the first thing. It is the mouthful that is the commitment to a new day, a continuing life.',
+ title2: 'Refreshing',
+ subtitle2: 'Drinks',
+ description2:
+ 'True silence is the rest of the mind, and is to the spirit what sleep is to the body, nourishment and refreshment.',
+ title3: 'Delicous',
+ subtitle3: 'Icecream',
+ description3:
+ 'Age does not diminish the extreme disappointment of having a scoop of ice cream fall from the cone',
+ getStarted: 'Get Started!',
+ welcome:
+ "Welcome to Enatega, sometimes all you need is love. But a little food now and then doesn't hurt.",
+ loginBtn: 'Login',
+ registerBtn: 'Register',
+ name: 'Name',
+ phone: 'Phone',
+ email: 'Email',
+ emailphone: 'Email or Phone',
+ username: 'Username',
+ password: 'Password',
+ deliveryAddress: 'Delivery Address',
+ registerText: 'Or Register With',
+ forgotPassword: 'Forgot Password?',
+ loginText: 'Or Login With',
+ deliveryLocation:
+ 'Turn on location so we could send you endless taste of delicious food.',
+ locationBtn: 'Turn on Location',
+ locationPermissionDenied: 'Permission to access location was denied',
+ cameraRollPermissionDenied: 'Permission to access Camera Roll was denied',
+ locationOff: 'Turn on location and try again',
+ titleLanguage: 'Change Language',
+ titleMenu: 'Menu',
+ titleOrders: 'My Orders',
+ NewOrders: 'New Orders',
+ titleNotifications: 'Notifications',
+ titleReviews: 'Reviews',
+ titleSettings: 'Settings',
+ titleHelp: 'Help',
+ titleLogout: 'Logout',
+ titleCart: 'My Cart',
+ titlePayment: 'Payment',
+ totalOrderAmount: 'Total Order Amount',
+ reOrder: 'Reorder',
+ unReadNotifications: 'No unread notifications',
+ upload: 'Upload',
+ saveBtn: 'Save',
+ emailUs: 'Email us at',
+ question1: 'Where do we find the food?',
+ question2: 'How do we contact?',
+ question3: 'How can I pay the delivery person?',
+ question4: 'Is the service available in my city?',
+ answer1:
+ 'You can find the food at your nearest store without paying anything to customer service.Our charges are extremely low as compared to others.',
+ answer2: 'You can contact us through our email, phone number or our website.',
+ answer3:
+ 'You can pay the delivery person in person or pay online as well through credit or debit card.',
+ answer4:
+ 'Currently this service is available in cities Islamabad and Karachi you can contact us to avail this service in your city.',
+ add: 'ADD',
+ quantity: 'Quantity',
+ size: 'Size',
+ addToCart: 'Add to Cart',
+ orderNow: 'Order Now',
+ addToCartMessage: 'Added to cart',
+ emptyCart: 'No items in cart',
+ itemTotal: 'Item Total',
+ delvieryCharges: 'Delivery Charges',
+ total: 'Total',
+ contactInfo: 'Contact Info',
+ deliveryAddressmessage: 'Set delivery address',
+ proceedCheckout: 'Proceed to Checkout',
+ paymentText: 'How do you wish to pay?',
+ checkout: 'Checkout',
+ header_title1: 'Credit Card/Debit Card',
+ header_subscript1: 'Pay with Credit or Debit Card',
+ header_title2: 'PayPal',
+ header_subscript2: 'Pay online with PayPal',
+ header_title3: 'Cash on delivery',
+ header_subscript3: 'Pay when you recieve the item',
+ thankYou: 'Thank You!',
+ orderConfirmed: 'Your Order is confirmed',
+ orderId: 'Order Id',
+ orderDetail: 'Order Detail',
+ paymentMethod: 'Payment Method',
+ trackOrder: 'Track Order',
+ backToMenu: 'Back To Menu',
+ foodItem: 'Food item',
+ deliveredTo: 'Delivered to',
+ writeAReview: 'Write a Review',
+ orderReceived: 'Order Received',
+ cancelled: 'Cancelled',
+ foodPreparing: 'Food is being prepared',
+ DELIVERED: 'DELIVERED',
+ rateAndReview: 'Rate and Review',
+ reviewPlaceholder: 'More detailed reviews get more visibility...',
+ submit: 'Submit',
+ noWorriesText: 'No worries, let us help you out!',
+ yourEmail: 'Your Email',
+ send: 'Send',
+ apply: 'Apply',
+ checkEmail: 'Check your email for reset password link',
+ languageText: 'Please select your required language',
+ countryCodePickerTranslation: 'eng',
+ countryCodeSelect: 'Select Country Code',
+ paymentNotSupported: 'This payment method does not support this Currency',
+ Orders: 'Orders',
+ signInText: 'Sign in with your email',
+ signInBtn: 'Sign In',
+ status: 'Status',
+ available: 'Available',
+ notAvailable: 'Not Available',
+ myorders: 'My Orders',
+ ///////////////////
+ updating: 'Please wait while app is updating',
+ orderID: ' Order ID:',
+ orderAmount: 'Order Amount',
+ deliveryTime: 'Delivery Time',
+ timeLeft: ' Time Left',
+ inProgress: 'In Progress',
+ assignMe: 'Assign Me',
+ preparing: 'Preparing',
+ timeLeftForMeal: 'Time Left To Prepare Meal',
+ distanceToDestination: 'Distance to destination',
+ durationToDestination: 'Duration to reach destination',
+ pick: 'Pick',
+ markAsDelivered: 'Mark As Delivered',
+ OrderDetail: 'Order Details',
+ yourOrderFrom: 'Your Order From',
+ orderNo: 'Order No.',
+ subTotal: 'Sub Total',
+ tip: 'Tip',
+ taxCharges: 'Tax Charges',
+ chatWithCustomer: ' Chat with Customer',
+ errorText: 'Something went wrong. Try again later!',
+ welcomeText: 'Welcome',
+ productPage: 'Product Page',
+ walletFeature: 'Wallet feature coming soon',
+ youPickedParcel: 'You picked the parcel.',
+ parcelDelivered: 'Parcel is delivered.',
+ orderDelivered: 'Order is delivered.',
+ newOrder: 'You have a new order.',
+ hurryUp: 'Hurry Up!',
+ orderAssigned: 'Order assigned.',
+ orderAssignedSubText: 'This order was assigned to you.',
+ orderNotAvailable: 'Order not available.',
+ orderNotAvailableSubText: 'This order is no longer available.',
+ deliveryFee: 'Delivery Fee: ',
+ orderStatus: 'Order Status',
+ requestID: 'Request ID:',
+ accountNumber: 'Account Number',
+ requestAmount: 'Request Amount',
+ requestTime: 'RequestTime',
+ errorFetchingRider: 'an error occured while fetching rider information',
+ errorOccured: 'An Error occured!',
+ totalAmount: 'Total Amount',
+ chatWithRider: 'Lets chat with your rider',
+ message: 'Message',
+ docs: 'Docs',
+ blog: 'Blog',
+ aboutUs: 'About Us',
+ noNewOrders: 'No new orders yet!',
+ pullToRefresh: 'Pull down to refresh',
+ notAnyOrdersYet: 'You dont have any orders yet!',
+ errorFetchingRiderProfile: 'Error occured while fetching rider Profile',
+ minAmountWithdrawl: 'Min amount for withdrawl is',
+ withdrawMoney: 'Withdraw Money',
+ walletHistory: 'Wallet History',
+ totalEarned: 'Total Earned',
+ requestSent: ' Request Sent',
+ withdrawlRequestSent:
+ 'Your request for money withdrawl has been sent. Check your email for further details.',
+ availableAmount: 'Available Amount',
+ enteramount: 'Enter amount',
+ confirmWithdraw: 'Confirm Withdraw',
+ selectLanguage: 'Select Language',
+ edit: 'Edit',
+ language: 'Language',
+ cancel: 'Cancel',
+ select: 'Select',
+ home: 'Home',
+ orders: 'MyOrders',
+ wallet: 'Wallet',
+ profile: 'Profile',
+ privacyPolicy: 'Privacy Policy',
+ orderAssingnedFlash: 'Order assigned successfully',
+ locationAccess: 'Location access',
+ locationAccessText:
+ 'Location permissions are required to use this app. Kindly open settings to allow location access.',
+ allowLocation: 'Allow Location',
+ enategaLocationText:
+ 'Enatega uses your location for features like finding orders nearby and tracking customer orders!',
+ emptyUsernameError: 'Username is required!',
+ emptyPasswordError: 'Password is required!',
+ loginFlashMsg: 'Logged in',
+ enategaCash: 'Enatega Cash',
+ ASSIGNED: 'ASSIGNED',
+ PICKED: 'PICKED',
+ contactCustomer: 'Contact Customer',
+ orderMarkedAs: 'Order marked as ',
+ withdrawAmountError:
+ 'Withdraw amount must be less than or equal to wallet amount!',
+ amountGreater: 'Amount must be grater than',
+ amountReq: 'Amount is required!'
+}
diff --git a/enatega-multivendor-rider/languages/fr.js b/enatega-multivendor-rider/languages/fr.js
new file mode 100644
index 0000000..f462874
--- /dev/null
+++ b/enatega-multivendor-rider/languages/fr.js
@@ -0,0 +1,211 @@
+export const fr = {
+ title0: 'Langue sélectionnée',
+ subtitle0: 'English',
+ description0:
+ "Sélectionnez la langue de votre choix pour modifier le contenu de l'application dans la langue de votre choix.",
+ title1: 'Savoureux',
+ subtitle1: 'Petit déjeuner',
+ description1:
+ "Le petit déjeuner est tout. Le début, la première chose. C'est la bouchée qui est l'engagement pour un nouveau jour, une vie continue.",
+ title2: 'Rafraîchissant',
+ subtitle2: 'Boissons',
+ description2:
+ "Le vrai silence est le reste de l'esprit, et à l'esprit ce que le sommeil est pour le corps, nourriture et rafraîchissement.",
+ title3: 'Délicieux',
+ subtitle3: 'Crème glacée',
+ description3:
+ "L'âge ne diminue en rien l'extrême déception d'avoir une boule de glace tombée du cône.",
+ getStarted: 'Commencer!',
+ welcome:
+ "Bienvenue dans Enatega, parfois tout ce dont vous avez besoin est de l'amour. Mais un peu de nourriture maintenant et ensuite ne fait pas mal.",
+ loginBtn: "S'identifier",
+ registerBtn: 'registre',
+ name: 'prénom',
+ phone: 'Téléphone',
+ email: 'Email',
+ emailphone: 'Email ou téléphone',
+ username: "Nom d'utilisateur",
+ password: 'Mot de passe',
+ deliveryAddress: 'Adresse de livraison',
+ registerText: "Ou s'inscrire avec",
+ forgotPassword: 'Mot de passe oublié?',
+ loginText: 'Ou connectez-vous avec',
+ deliveryLocation:
+ 'Définissez votre lieu de livraison afin que nous puissions vous envoyer un goût infini de plats délicieux.',
+ locationBtn: "Activer l'emplacement",
+ locationPermissionDenied:
+ "La permission d'accéder à l'emplacement a été refusée",
+ locationOff: "Activer l'emplacement et réessayer",
+ titleLanguage: 'Changer de langue',
+ titleMenu: 'Menu',
+ titleOrders: 'Mes commandes',
+ NewOrders: 'Nouvelles Commandes',
+ titleNotifications: 'Les notifications',
+ titleReviews: 'Avis',
+ titleSettings: 'Réglages',
+ titleHelp: 'Aidez-moi',
+ titleLogout: 'Connectez - Out',
+ titleCart: 'Mon panier',
+ titlePayment: 'Paiement',
+ totalOrderAmount: 'Total de la commande',
+ reOrder: 'Réorganiser',
+ unReadNotifications: 'Pas de notifications non lues',
+ upload: 'Télécharger',
+ saveBtn: 'sauvegarder',
+ emailUs: 'écrivez-nous à',
+ question1: 'Où trouvons-nous la nourriture?',
+ question2: 'Comment pouvons-nous contacter?',
+ question3: 'Comment puis-je payer le livreur?',
+ question4: 'Le service est-il disponible dans ma ville?',
+ answer1:
+ 'Vous pouvez trouver la nourriture dans le magasin le plus proche sans rien payer au service client. Nos frais sont extrêmement bas comparés aux autres.',
+ answer2:
+ 'Vous pouvez nous contacter via notre email, numéro de téléphone ou notre site web.',
+ answer3:
+ 'Vous pouvez payer le livreur en personne ou en ligne, par carte de crédit ou de débit.',
+ answer4:
+ "Actuellement, ce service est disponible dans les villes d'Islamabad et de Karachi. Vous pouvez nous contacter pour bénéficier de ce service dans votre ville.",
+ add: 'AJOUTER',
+ quantity: 'Quantité',
+ size: 'Taille',
+ addToCart: 'Ajouter au panier',
+ orderNow: 'Commandez maintenant',
+ addToCartMessage: 'Ajouté au panier',
+ emptyCart: 'Aucun article dans le panier',
+ itemTotal: 'Objet total',
+ delvieryCharges: 'Frais de livraison',
+ total: 'Total',
+ contactInfo: 'Informations de contact',
+ deliveryAddressmessage: "Définir l'adresse de livraison",
+ proceedCheckout: 'Passer à la caisse',
+ paymentText: 'Comment souhaitez-vous payer?',
+ checkout: 'Check-out',
+ header_title1: 'Carte de crédit carte de débit',
+ header_subscript1: 'Payer avec une carte de crédit ou de débit',
+ header_title2: 'PayPal',
+ header_subscript2: 'Payez en ligne avec PayPal',
+ header_title3: 'Paiement à la livraison',
+ header_subscript3: "Payer quand vous recevez l'article",
+ thankYou: 'Je vous remercie!',
+ orderConfirmed: 'Votre commande est confirmée',
+ orderId: 'Votre identifiant de commande',
+ orderDetail: 'Détails de la commande',
+ paymentMethod: 'Mode de paiement',
+ trackOrder: 'Suivi de commande',
+ backToMenu: 'Suivi de commande',
+ foodItem: 'Produit alimentaire',
+ deliveredTo: 'livré à',
+ writeAReview: 'Écrire une critique',
+ orderReceived: 'Ordre reçu',
+ cancelled: 'Annulé',
+ foodPreparing: 'La nourriture est en cours de préparation',
+ DELIVERED: 'Livré',
+ rateAndReview: 'Notez et évaluez',
+ reviewPlaceholder: 'Des revues plus détaillées ont plus de visibilité ...',
+ submit: 'Soumettre',
+ noWorriesText: 'Pas de soucis, laissez-nous vous aider!',
+ yourEmail: 'Votre email',
+ send: 'Envoyer',
+ apply: 'Appliquer',
+ checkEmail:
+ 'Vérifiez votre email pour le lien de réinitialisation du mot de passe',
+ languageText: "S'il vous plaît sélectionnez votre langue requise",
+ countryCodePickerTranslation: 'fra',
+ countryCodeSelect: 'Sélectionnez le code pays',
+ paymentNotSupported:
+ 'Ce mode de paiement ne prend pas en charge cette devise',
+ orders: 'Commandes',
+ signInText: 'Connectez-vous avec votre e-mail',
+ signInBtn: 'Se connecter',
+ status: 'Statut',
+ available: 'Disponible',
+ notAvailable: 'Non disponible',
+ myorders: 'Mes Commandes',
+ updating: `Veuillez patienter pendant la mise à jour de l'application`,
+ orderID: ' Numéro de commande :',
+ orderAmount: 'Montant de la commande',
+ deliveryTime: 'Temps de livraison',
+ timeLeft: ' Temps restant',
+ inProgress: 'En cours',
+ assignMe: `M'assigner`,
+ preparing: 'En préparation',
+ timeLeftForMeal: 'Temps restant pour préparer le repas',
+ distanceToDestination: `Distance jusqu'à la destination`,
+ durationToDestination: `Durée pour atteindre la destination`,
+ pick: 'Ramasser',
+ markAsDelivered: 'Marquer comme livré',
+ OrderDetail: 'Détails de la commande',
+ yourOrderFrom: 'Votre commande de',
+ orderNo: 'Numéro de commande',
+ subTotal: ' Sous-total',
+ tip: 'Pourboire',
+ taxCharges: 'Frais de taxe',
+ chatWithCustomer: ' Discuter avec le client',
+ errorText: `Quelque chose s'est mal passé. Réessayez plus tard !`,
+ welcomeText: 'Bienvenue',
+ productPage: 'Page du produit',
+ walletFeature: 'Fonction portefeuille bientôt disponible',
+ youPickedParcel: 'Vous avez récupéré le colis.',
+ parcelDelivered: 'Colis livré.',
+ orderDelivered: 'Commande livrée.',
+ newOrder: 'Vous avez une nouvelle commande.',
+ hurryUp: 'Dépêchez-vous !',
+ orderAssigned: 'Commande attribuée.',
+ orderAssignedSubText: 'Cette commande vous a été attribuée.',
+ orderNotAvailable: 'Commande non disponible.',
+ orderNotAvailableSubText: `Cette commande n'est plus disponible.`,
+ deliveryFee: 'Frais de livraison : ',
+ orderStatus: 'Statut de la commande',
+ requestID: 'ID de demande :',
+ accountNumber: 'Numéro de compte',
+ requestAmount: 'Montant de la demande',
+ requestTime: 'Temps de la demande',
+ errorFetchingRider: `Une erreur s'est produite lors de la récupération des informations du livreur`,
+ errorOccured: `Une erreur s'est produite !`,
+ totalAmount: 'Montant total',
+ chatWithRider: 'Discutons avec votre livreur',
+ message: 'Message',
+ docs: 'Documents',
+ blog: 'Blog',
+ aboutUs: 'À propos de nous',
+ noNewOrders: 'Aucune nouvelle commande pour le moment !',
+ pullToRefresh: 'Tirez vers le bas pour rafraîchir',
+ notAnyOrdersYet: `Vous n'avez encore aucune commande !`,
+ errorFetchingRiderProfile:
+ 'Erreur lors de la récupération du profil du livreur',
+ minAmountWithdrawl: 'Le montant minimum pour le retrait est',
+ withdrawMoney: `Retirer de l'argent`,
+ walletHistory: 'Historique du portefeuille',
+ totalEarned: 'Total gagné',
+ requestSent: ' Demande envoyée',
+ withdrawlRequestSent: `Votre demande de retrait d'argent a été envoyée. Consultez votre e-mail pour plus de détails.`,
+ availableAmount: 'Montant disponible',
+ enteramount: 'Entrez le montant',
+ confirmWithdraw: 'Confirmer le retrait',
+ selectLanguage: 'Sélectionner la langue',
+edit: 'Modifier',
+language: 'Langue',
+cancel: 'Annuler',
+select: 'Sélectionner',
+home: "Accueil",
+orders: "Mes commandes",
+wallet: "Portefeuille",
+profile: "Profil",
+privacyPolicy: "Politique de confidentialité",
+orderAssingnedFlash: "Commande attribuée avec succès",
+locationAccess: 'Accès à la localisation',
+ locationAccessText: 'Des autorisations de localisation sont nécessaires pour utiliser cette application. Veuillez ouvrir les paramètres pour autoriser l’accès à la localisation.',
+ allowLocation: 'Autoriser la localisation',
+ enategaLocationText: 'Enatega utilise votre emplacement pour des fonctionnalités telles que la recherche de commandes à proximité et le suivi des commandes des clients !',
+ emptyUsernameError: 'Le nom dutilisateur est requis!',
+emptyPasswordError: 'Le mot de passe est requis!',
+loginFlashMsg: 'Connecté',
+enategaCash: 'Enatega Argent Liquide',
+ASSIGNED: "ASSIGNÉ",
+PICKED: "CHOISI",
+contactCustomer: 'Contacter le client',
+orderMarkedAs: 'Commande marquée comme ',
+withdrawAmountError: 'Le montant du retrait doit être inférieur ou égal au montant du portefeuille !',
+amountGreater: 'Le montant doit être supérieur à',
+amountReq: 'Le montant est requis !'
+}
diff --git a/enatega-multivendor-rider/languages/km.js b/enatega-multivendor-rider/languages/km.js
new file mode 100644
index 0000000..e8312fa
--- /dev/null
+++ b/enatega-multivendor-rider/languages/km.js
@@ -0,0 +1,207 @@
+export const km = {
+ title0: 'ភាសាដែលបានជ្រើស',
+ subtitle0: 'English',
+ description0:
+ 'ជ្រើសរើសភាសាណាមួយនៃជម្រើសរបស់អ្នកដើម្បីប្តូរមាតិកានៃកម្មវិធីទៅភាសាដែលអ្នកត្រូវការ។',
+ title1: 'ហ៊ាន',
+ subtitle1: 'អាហារពេលព្រឹក',
+ description1:
+ 'អាហារពេលព្រឹកគឺជាអ្វីគ្រប់យ៉ាង។ ការចាប់ផ្តើមរឿងដំបូង។ វាគឺជាមាត់ដែលជាការប្តេជ្ញាចិត្តចំពោះថ្ងៃថ្មីនិងជីវិតដែលនៅតែបន្ត។',
+ title2: 'ធ្វើឱ្យស្រស់',
+ subtitle2: 'ភេសជ្ជៈ',
+ description2:
+ 'ភាពស្ងៀមស្ងាត់ពិតគឺជាគំនិតដែលនៅសល់ហើយជាវិញ្ញាណដែលជាការដេកលក់ដល់រាងកាយការថែទាំនិងការសំរាក។',
+ title3: 'ឆ្ងាញ់',
+ subtitle3: 'ការ៉េម',
+ description3:
+ 'អាយុមិនបន្ថយនូវការខកចិត្តយ៉ាងខ្លាំងនៃការធ្លាក់ចុះនៃការ៉េមពីកោណទេ',
+ getStarted: 'ចាប់ផ្ដើម!',
+ welcome:
+ 'សូមស្វាគមន៏ទៅ Enatega ពេលខ្លះអ្វីដែលអ្នកត្រូវការគឺស្នេហា។ ប៉ុន្តែអាហារតិចតួចឥឡូវនេះហើយបន្ទាប់មកមិនឈឺទេ។',
+ loginBtn: 'ចូល',
+ registerBtn: 'ចុះឈ្មោះ',
+ name: 'ឈ្មោះ',
+ phone: 'ទូរស័ព្ទ',
+ email: 'អ៊ីមែល',
+ emailphone: 'អីុម៉ែលឬទូរស័ព្ទ',
+ username: 'ឈ្មោះអ្នកប្រើប្រាស់',
+ password: 'ពាក្យសម្ងាត់',
+ deliveryAddress: 'អាស័យដ្ឋានសំរាប់ការដឹកជញ្ជូន',
+ registerText: 'ឬចុះឈ្មោះជាមួយ',
+ forgotPassword: 'ភ្លេចលេខសំងាត់?',
+ loginText: 'ឬចូលជាមួយ',
+ deliveryLocation:
+ 'កំណត់ទីតាំងដឹកជញ្ជូនរបស់អ្នកដូច្នេះយើងអាចផ្ញើឱ្យអ្នកនូវរសជាតិអាហារឆ្ងាញ់គ្មានទីបញ្ចប់។',
+ locationBtn: 'បើកទីតាំង',
+ locationPermissionDenied: 'ការអនុញ្ញាតចូលទៅកាន់ទីតាំងត្រូវបានបដិសេធ',
+ locationOff: 'បើកទីតាំងហើយព្យាយាមម្តងទៀត',
+ titleLanguage: 'ប្ដូរភាសា',
+ titleMenu: 'ម៉ឺនុយ',
+ titleOrders: 'ការបញ្ជាទិញរបស់ខ្ញុំ',
+ titleNotifications: 'ការជូនដំណឹង',
+ NewOrders: 'បញ្ជាទិញថ្មី',
+ titleReviews: 'ពិនិត្យ',
+ titleSettings: 'ការកំណត់',
+ titleHelp: 'ជំនួយ',
+ titleLogout: 'ចាកចេញ',
+ titleCart: 'កន្ត្រករបស់ខ្ញុំ',
+ titlePayment: 'ការទូទាត់',
+ totalOrderAmount: 'បរិមាណសរុប',
+ reOrder: 'តម្រៀបឡើងវិញ',
+ unReadNotifications: 'គ្មានការជូនដំណឹងមិនទាន់អាន',
+ upload: 'ផ្ទុកឡើង',
+ saveBtn: 'រក្សាទុក',
+ emailUs: 'អ៊ីម៉ែលមកយើងនៅ',
+ question1: 'តើយើងរកម្ហូបបាននៅឯណា?',
+ question2: 'តើយើងទាក់ទងយ៉ាងដូចម្តេច?',
+ question3: 'តើខ្ញុំអាចបង់ប្រាក់ដល់មនុស្សដែលត្រូវដឹកជញ្ជូន?',
+ question4: 'តើសេវាកម្មនេះមាននៅក្នុងទីក្រុងរបស់ខ្ញុំដែរឬទេ?',
+ answer1:
+ 'អ្នកអាចរកឃើញម្ហូបអាហារនៅហាងដែលនៅជិតបំផុតរបស់អ្នកដោយមិនបង់អ្វីឱ្យសេវាកម្មបំរើអតិថិជន។ ការចោទប្រកាន់របស់យើងមានកម្រិតទាបខ្លាំងបើប្រៀបធៀបទៅនឹងអ្នកដទៃ។',
+ answer2: 'អ្នកអាចទាក់ទងយើងតាមរយៈអ៊ីម៉ែលលេខទូរស័ព្ទឬវេបសាយរបស់យើង។',
+ answer3:
+ 'អ្នកអាចបង់ប្រាក់ទៅកាន់បុគ្គលដឹកជញ្ជូនដោយផ្ទាល់ឬបង់ប្រាក់តាមរយៈអ៊ីនធឺណេតតាមរយៈប័ណ្ណឥណទានឬឥណពន្ធផងដែរ។',
+ answer4:
+ 'បច្ចុប្បន្នសេវាកម្មនេះអាចរកបាននៅក្នុងទីក្រុងអ៊ីស្លាម៉ាបាតនិងការ៉ាជីដែលអ្នកអាចទាក់ទងមកយើងដើម្បីទទួលបានសេវាកម្មនេះនៅក្នុងទីក្រុងរបស់អ្នក។',
+ add: 'បន្ថែម',
+ quantity: 'បរិមាណ',
+ size: 'ទំហំ',
+ addToCart: 'បន្ថែមទៅកន្ត្រក',
+ orderNow: 'បញ្ជាទិញឥឡូវ',
+ addToCartMessage: 'បានបន្ថែមទៅរទេះ',
+ emptyCart: 'គ្មានធាតុក្នុងរទេះទេ',
+ itemTotal: 'ធាតុសរុប',
+ delvieryCharges: 'ការដឹកជញ្ជូន',
+ total: 'សរុប',
+ contactInfo: 'ព័ត៌មានទំនាក់ទំនង',
+ deliveryAddressmessage: 'កំណត់អាសយដ្ឋានបញ្ជូន',
+ proceedCheckout: 'បន្តដើម្បីពិនិត្យចេញ',
+ paymentText: 'តើអ្នកចង់បង់ប្រាក់ដោយរបៀបណា?',
+ checkout: 'ពិនិត្យមុនពេលចេញ',
+ header_title1: 'ប័ណ្ណឥណទាន / ប័ណ្ណឥណពន្ធ',
+ header_subscript1: 'ទូទាត់ជាមួយកាតឥណទានឬឥណពន្ធ',
+ header_title2: 'PayPal',
+ header_subscript2: 'ទូទាត់លើបណ្តាញ PayPal',
+ header_title3: 'សាច់ប្រាក់នៅពេលប្រគល់',
+ header_subscript3: 'បង់ពេលអ្នកទទួលបានធាតុ',
+ thankYou: 'សូមអរគុណ!',
+ orderConfirmed: 'បញ្ជាទិញរបស់អ្នកត្រូវបានបញ្ជាក់',
+ orderId: 'លេខសម្គាល់លំដាប់របស់អ្នក',
+ orderDetail: 'លំអិតលំដាប់',
+ paymentMethod: 'វិធីសាស្រ្តទូទាត់',
+ trackOrder: 'លំដាប់តាមបទ',
+ backToMenu: 'លំដាប់តាមបទ',
+ foodItem: 'ម្ហូបអាហារ',
+ deliveredTo: 'បញ្ជូនទៅ',
+ writeAReview: 'សរសេរសង្ខេបឡើងវិញ',
+ orderReceived: 'បញ្ជាទិញដែលទទួលបាន',
+ cancelled: 'បានបោះបង់',
+ foodPreparing: 'ម្ហូបកំពុងត្រូវបានរៀបចំ',
+ DELIVERED: 'បានបញ្ជូន',
+ rateAndReview: 'វាយតម្លៃនិងពិនិត្យ',
+ reviewPlaceholder: 'ការពិនិត្យលម្អិតបន្ថែមទៀតទទួលបានភាពមើលឃើញកាន់តែច្រើន ...',
+ submit: 'ដាក់ស្នើ',
+ noWorriesText: 'គ្មានការព្រួយបារម្ភសូមឱ្យយើងជួយអ្នកចេញ!',
+ yourEmail: 'អ៊ីមែលរបស់អ្នក',
+ send: 'ផ្ញើ',
+ apply: 'អនុវត្ត',
+ checkEmail: 'ពិនិត្យអ៊ីមែលរបស់អ្នកសម្រាប់តំណពាក្យសម្ងាត់ឡើងវិញ',
+ languageText: 'សូមជ្រើសរើសភាសាដែលអ្នកត្រូវការ',
+ countryCodePickerTranslation: 'eng',
+ countryCodeSelect: 'ជ្រើសរើសលេខកូដប្រទេស',
+ paymentNotSupported: 'វិធីសាស្ត្រទូទាត់នេះមិនគាំទ្ររូបិយប័ណ្ណនេះទេ',
+ Orders: 'ការបញ្ជាទិញ',
+ signInText: 'ចូលដោយអ៊ីម៉ែលរបស់អ្នក',
+ signInBtn: 'ចូល',
+ status: 'ស្ថានភាព',
+ available: 'មានទេ',
+ notAvailable: 'មិនមានទេ',
+ myorders: 'ការបញ្ជាទិញរបស់ខ្ញុំ',
+ updating: 'សូមរង់ចាំដោយសេវាកម្មកំពុងធ្វើបច្ចុប្បន្ន',
+ orderID: 'លេខសម្គាល់ការកុម្មង់:',
+ orderAmount: 'ចំនួនទឹកប្រាក់បញ្ជាក់',
+ deliveryTime: 'ពេលវេលាដឹកជញ្ជូន',
+ timeLeft: 'ពេលដែលនៅសល់',
+ inProgress: 'កំពុងដំណើរការ',
+ assignMe: 'បញ្ជាក់ទៅខ្ញុំ',
+ preparing: 'កំពុងរៀបចំ',
+ timeLeftForMeal: 'ពេលដែលនៅសល់ដើម',
+ distanceToDestination: 'ចម្ងាយទៅសំបុត្រ',
+ durationToDestination: 'រយៈពេលទៅសំបុត្រ',
+ pick: 'យក',
+ markAsDelivered: 'សម្គាល់ថាបានដឹកជញ្ជូន',
+ OrderDetail: 'ព័ត៌មានលំអិតការកុម្មង់',
+ yourOrderFrom: 'ការកុម្មង់របស់អ្នកពី',
+ orderNo: 'លេខកុម្មង់',
+ subTotal: 'សរុបរង',
+ tip: 'ទឹកថ្លែង',
+ taxCharges: 'ថ្លែងពន្ធជាក់ស្តង់ទៀត',
+ chatWithCustomer: 'ការជជែកអតិថិជន',
+ errorText: 'មានបញ្ហាកើតឡើង។ ព្យាយាមម្តងទៀត!',
+ welcomeText: 'ស្វាគមន៍',
+ productPage: 'ទំព័រផលិតផល',
+ walletFeature: 'មុខងារបន្ទាន់មកដល់ទំព័រ',
+ youPickedParcel: 'អ្នកបានយកតុល្ហុងហាត់រួចហើយ។',
+ parcelDelivered: 'តុល្ហុងហាត់បានដឹកជញ្ជូន។',
+ orderDelivered: 'ការកុម្មង់បានដឹកជញ្ជូន។',
+ newOrder: 'អ្នកមានការកុម្មង់ថ្មី។',
+ hurryUp: 'បន្តដោយរហ័ស!',
+ orderAssigned: 'ការកុម្មង់បានចាត់ថ្នាក់។',
+ orderAssignedSubText: 'ការនេះត្រូវបានចាត់ថ្នាក់ទៅអ្នក។',
+ orderNotAvailable: 'ការកុម្មង់មិនមាន។',
+ orderNotAvailableSubText: 'ការនេះមិនអាចប្រើបានទេ។',
+ deliveryFee: 'ថ្លែងដឹកជញ្ជូន: ',
+ orderStatus: 'ស្ថានភាពការកុម្មង់',
+ requestID: 'លេខសម្គាល់សំបុត្រ:',
+ accountNumber: 'លេខគណនី',
+ requestAmount: 'ចំនួនទឹកប្រាក់សំបុត្រ',
+ requestTime: 'ពេលសំបុត្រ',
+ errorFetchingRider: 'មានកំហុសពេលកំពុងទាញយកពេលការបញ្ជូន',
+ errorOccured: 'មានកំហុសមកឡើង!',
+ totalAmount: 'ចំនួនទឹកប្រាក់សរុប',
+ chatWithRider: 'ទំនាក់ទំនងជាមួយកងតសេវារបស់អ្នក',
+ message: 'សារ',
+ docs: 'ឯកសារ',
+ blog: 'ប្លុក',
+ aboutUs: 'អំពីយើង',
+ noNewOrders: 'ទំនិញថ្មីមិនទាន់មានឡើយ!',
+ pullToRefresh: 'ទាញយកដើមដល់បង្ហាញ',
+ notAnyOrdersYet: 'អ្នកមិនទាន់មានការកុម្មង់ទេ!',
+ errorFetchingRiderProfile: 'មានកំហុសពេលកំពុងទាញយកប្រវត្តិរបស់កងត',
+ minAmountWithdrawl: 'ចំនួនទឹកប្រាក់អប្បបរមាសំបុត្រគឺ',
+ withdrawMoney: 'ដកប្រាក់',
+ walletHistory: 'ប្រវត្តិសំបុត្រ',
+ totalEarned: 'ចំនួនទឹកប្រាក់សរុប',
+ requestSent: 'សំបុត្រត្រូវបានផ្ញើ',
+ withdrawlRequestSent:
+ 'សំបុត្រដកប្រាក់របស់អ្នកត្រូវបានផ្ញើ។ ពិនិត្យអ៊ីម៉ែលរបស់អ្នកសម្រាប់ព័ត៌មានបន្ថែម។',
+ availableAmount: 'ចំនួនទឹកប្រាក់ដែលអាចរក្សាទុក',
+ enteramount: 'បញ្ចូលចំនួន',
+ confirmWithdraw: 'បញ្ជាក់ដកប្រាក់',
+ selectLanguage: 'ជ្រើសរើសភាសា',
+edit: 'កែសម្រួល',
+language: 'ភាសា',
+cancel: 'បោះបង់',
+select: 'ជ្រើសរើស',
+home: "ទំព័រដើម",
+orders: "ការបញ្ជាទិញរបស់ខ្ញុំ",
+wallet: "ការប្រាក់",
+profile: "ប្រវត្តិរូប",
+privacyPolicy: "គោលគំនិតអំពីភាពឯកជន",
+orderAssingnedFlash: "បានគោរពិសាកវារបាយជាប់បានដោយជោគជ័យ",
+locationAccess: 'ចូលដំណើរការទីតាំង',
+ locationAccessText: 'តម្រូវការការអនុញ្ញាតិទីតាំងដើម្បីប្រើកម្មវិធីនេះ។ សូមបើកការកំណត់ដើម្បីអនុញ្ញាតឱ្យចូលដំណើរការទីតាំង។',
+ allowLocation: 'អនុញ្ញាតឱ្យចូលដំណើរការទីតាំង',
+ enategaLocationText: 'Enatega ប្រើទីតាំងរបស់អ្នកសម្រាប់មុខងារដូចជារកឃើញបន្ទប់បន្ទាប់និងតាមដានការកុម្មង់របស់អតិថិជន។',
+ emptyUsernameError: 'ត្រូវការឈ្មោះអ្នកប្រើប្រាស់!',
+emptyPasswordError: 'ត្រូវការពាក្យសម្ងាត់!',
+loginFlashMsg: 'ចូលប្រើរួចហើយ',
+enategaCash: 'លុយអេណាត់ហ្គា',
+ASSIGNED: "បានគោរព",
+PICKED: "បានជ្រើសរើស",
+contactCustomer: 'ទំនាក់ទំនងអតិថិជន',
+orderMarkedAs: 'ការបញ្ជាទិញត្រូវបានសម្គាល់ថាជាចាប់ពី ',
+withdrawAmountError: 'ចំនួនទឹកប្រាក់ដែលត្រូវដកគឺតិចជាងឬស្មើសំរាប់ចំនួនទឹកប្រាក់នៅក្នុងការរក្សាសុវត្ថិភាព!',
+amountGreater: 'តម្លៃគិតត្រូវមានតិចជាង',
+amountReq: 'តម្លៃគិតត្រូវបានទាមទារ!'
+}
diff --git a/enatega-multivendor-rider/languages/zh.js b/enatega-multivendor-rider/languages/zh.js
new file mode 100644
index 0000000..7fd2886
--- /dev/null
+++ b/enatega-multivendor-rider/languages/zh.js
@@ -0,0 +1,202 @@
+export const zh = {
+ title0: '选定的语言',
+ subtitle0: 'English',
+ description0: '选择您选择的任何语言,将应用内容更改为您所需的语言。',
+ title1: '可口',
+ subtitle1: '早餐',
+ description1:
+ '早餐就是一切。一开始,第一件事。这是对新的一天,持续生活的承诺。',
+ title2: '清爽',
+ subtitle2: '饮料',
+ description2:
+ '真正的沉默是心灵的其余部分,对于精神来说,睡眠对身体,营养和茶点来说都是如此。',
+ title3: '美味的',
+ subtitle3: '冰淇淋',
+ description3: '年龄不会减少从冰锥中舀出一勺冰淇淋的极度失望',
+ getStarted: '开始吧!',
+ welcome:
+ '欢迎来到Enatega,有时您需要的只是爱。但是偶尔会有点食物不会受到伤害。',
+ loginBtn: '登录',
+ registerBtn: '寄存器',
+ name: '名称',
+ phone: '电话',
+ email: '电子邮件',
+ emailphone: '邮件或者电话',
+ username: '用户名',
+ password: '密码',
+ deliveryAddress: '邮寄地址',
+ registerText: '或注册',
+ forgotPassword: '忘记密码?',
+ loginText: '或登录',
+ deliveryLocation: '设置您的送货地点,以便我们可以向您发送无尽的美味食物。',
+ locationBtn: '打开位置',
+ locationPermissionDenied: '访问位置的权限被拒绝',
+ locationOff: '访问位置的权限被拒绝',
+ titleLanguage: '改变语言',
+ titleMenu: '菜单',
+ titleOrders: '我的订单',
+ titleNotifications: '通知',
+ titleReviews: '评测',
+ titleSettings: '设置',
+ titleHelp: '救命',
+ NewOrders: '新订单',
+ titleLogout: '登出',
+ titleCart: '我的车',
+ titlePayment: '付款',
+ totalOrderAmount: '总订单金额',
+ reOrder: '重新排序',
+ unReadNotifications: '没有未读通知',
+ upload: '上传',
+ saveBtn: '保存',
+ emailUs: '给我们发电子邮件',
+ question1: '我们在哪里找到食物?',
+ question2: '我们如何联系?',
+ question3: '我该如何付款给送货人?',
+ question4: '我的城市有这项服务吗?',
+ answer1:
+ '您可以在离您最近的商店找到食物,而无需向客户支付任何费用。与其他人相比,我们的收费极低。',
+ answer2: '您可以通过我们的电子邮件,电话号码或我们的网站联系我们。',
+ answer3: '您可以亲自向付款人付款或使用信用卡或借记卡在线付款。',
+ answer4:
+ '目前,这项服务在伊斯兰堡和卡拉奇市提供,您可以联系我们以便在您所在的城市使用此服务。',
+ add: '加',
+ quantity: '数量',
+ size: '尺寸',
+ addToCart: '添加到购物车',
+ orderNow: '现在下单',
+ addToCartMessage: '已添加到购物车',
+ emptyCart: '购物车中没有商品',
+ itemTotal: '项目总计',
+ delvieryCharges: '送货费',
+ total: '总',
+ contactInfo: '联系信息',
+ deliveryAddressmessage: '设置送货地址',
+ proceedCheckout: '进行结算',
+ paymentText: '你想怎么付钱?',
+ checkout: '查看',
+ header_title1: '信用卡/借记卡',
+ header_subscript1: '使用信用卡或借记卡付款',
+ header_title2: '贝宝',
+ header_subscript2: '使用PayPal在线支付',
+ header_title3: '货到付款',
+ header_subscript3: '收到物品时付款',
+ thankYou: 'ស谢谢!',
+ orderConfirmed: '您的订单已确认',
+ orderId: '您的订单ID',
+ orderDetail: '订单详情',
+ paymentMethod: '付款方法',
+ trackOrder: '跟踪订单',
+ backToMenu: '跟踪订单',
+ foodItem: '食品',
+ deliveredTo: '送到了(送去了',
+ writeAReview: '写评论',
+ orderReceived: '订单已经收到',
+ cancelled: '取消',
+ foodPreparing: '食物正在准备中',
+ DELIVERED: '交付',
+ rateAndReview: '打分和评论',
+ reviewPlaceholder: '更详细的评论获得更多可见性......',
+ submit: '提交',
+ noWorriesText: '不用担心,让我们帮帮你吧!',
+ yourEmail: '你的邮件',
+ send: '发送',
+ apply: '应用',
+ checkEmail: '查看您的电子邮件以重置密码链接',
+ languageText: '请选择您需要的语言',
+ countryCodePickerTranslation: 'zho',
+ countryCodeSelect: '选择国家代码',
+ paymentNotSupported: '此付款方式不支持此货币',
+ Orders: '订单',
+ signInText: '使用您的电子邮件登录',
+ signInBtn: '登录',
+ status: '状态',
+ available: '可用',
+ notAvailable: '不可用',
+ myorders: '我的订单',
+ updating: '请稍候,应用程序正在更新',
+ orderID: '订单编号:',
+ orderAmount: '订单金额',
+ deliveryTime: '送货时间',
+ timeLeft: '剩余时间',
+ inProgress: '进行中',
+ assignMe: '分配给我',
+ preparing: '准备中',
+ timeLeftForMeal: '剩余制作时间',
+ distanceToDestination: '到目的地的距离',
+ durationToDestination: '到达目的地的时间',
+ pick: '取货',
+ markAsDelivered: '标记为已送达',
+ OrderDetail: '订单详情',
+ yourOrderFrom: '您的订单来自',
+ orderNo: '订单编号',
+ subTotal: '小计',
+ tip: '小费',
+ taxCharges: '税费',
+ chatWithCustomer: '与客户聊天',
+ errorText: '出错了。请稍后重试!',
+ welcomeText: '欢迎',
+ productPage: '产品页面',
+ walletFeature: '钱包功能即将推出',
+ youPickedParcel: '您已取走包裹。',
+ parcelDelivered: '包裹已送达。',
+ orderDelivered: '订单已送达。',
+ newOrder: '您有一个新订单。',
+ hurryUp: '赶紧!',
+ orderAssigned: '订单已分配。',
+ orderAssignedSubText: '此订单已分配给您。',
+ orderNotAvailable: '订单不可用。',
+ orderNotAvailableSubText: '此订单不再可用。',
+ deliveryFee: '运费:',
+ orderStatus: '订单状态',
+ requestID: '请求编号:',
+ accountNumber: '账户号码',
+ requestAmount: '请求金额',
+ requestTime: '请求时间',
+ errorFetchingRider: '获取骑手信息时发生错误',
+ errorOccured: '发生错误!',
+ totalAmount: '总金额',
+ chatWithRider: '与您的骑手聊天',
+ message: '消息',
+ docs: '文档',
+ blog: '博客',
+ aboutUs: '关于我们',
+ noNewOrders: '暂无新订单!',
+ pullToRefresh: '下拉刷新',
+ notAnyOrdersYet: '您还没有任何订单!',
+ errorFetchingRiderProfile: '获取骑手档案时发生错误',
+ minAmountWithdrawl: '提现的最小金额为',
+ withdrawMoney: '提现',
+ walletHistory: '钱包历史',
+ totalEarned: '总收入',
+ requestSent: '请求已发送',
+ withdrawlRequestSent: '您的提现请求已发送。请查看电子邮件获取详细信息。',
+ availableAmount: '可用金额',
+ enteramount: '输入金额',
+ confirmWithdraw: '确认提现',
+ selectLanguage: '选择语言',
+edit: '编辑',
+language: '语言',
+cancel: '取消',
+select: '选择',
+home: "首页",
+orders: "我的订单",
+wallet: "钱包",
+profile: "个人资料",
+privacyPolicy: "隐私政策",
+orderAssingnedFlash: "成功分配订单",
+locationAccess: '位置访问',
+ locationAccessText: '需要位置权限才能使用此应用程序。请打开设置以允许位置访问。',
+ allowLocation: '允许位置',
+ enategaLocationText: 'Enatega 使用您的位置来进行诸如查找附近订单和跟踪客户订单等功能!',
+ emptyUsernameError: '需要用户名!',
+emptyPasswordError: '需要密码!',
+loginFlashMsg: '已登录',
+enategaCash: '恩特加现金',
+ASSIGNED: "已分配",
+PICKED: "已挑选",
+contactCustomer: '联系客户',
+orderMarkedAs: '订单标记为 ',
+withdrawAmountError: '提款金额必须小于或等于钱包金额!',
+amountGreater: '金额必须大于',
+amountReq: '金额是必需的!'
+}
diff --git a/enatega-multivendor-rider/metro.config.js b/enatega-multivendor-rider/metro.config.js
new file mode 100644
index 0000000..039dc76
--- /dev/null
+++ b/enatega-multivendor-rider/metro.config.js
@@ -0,0 +1,4 @@
+const { getDefaultConfig } = require('@expo/metro-config')
+const defaultConfig = getDefaultConfig(__dirname)
+defaultConfig.resolver.sourceExts.push('cjs')
+module.exports = defaultConfig
diff --git a/enatega-multivendor-rider/package-lock.json b/enatega-multivendor-rider/package-lock.json
new file mode 100644
index 0000000..386146a
--- /dev/null
+++ b/enatega-multivendor-rider/package-lock.json
@@ -0,0 +1,30721 @@
+{
+ "name": "enatega-rider-app",
+ "version": "5.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "enatega-rider-app",
+ "version": "5.0.0",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@apollo/client": "^3.7.10",
+ "@expo/vector-icons": "^14.0.0",
+ "@react-native-async-storage/async-storage": "1.21.0",
+ "@react-native-community/masked-view": "0.1.10",
+ "@react-navigation/bottom-tabs": "6.5.8",
+ "@react-navigation/drawer": "^6.3.0",
+ "@react-navigation/elements": "^1.3.22",
+ "@react-navigation/native": "^6.0.6",
+ "@react-navigation/stack": "6.0.11",
+ "@sentry/react-native": "5.17.0",
+ "@types/react": "~18.2.45",
+ "deprecated-react-native-prop-types": "^4.0.0",
+ "expo": "~50.0.3",
+ "expo-application": "~5.8.3",
+ "expo-av": "~13.10.5",
+ "expo-camera": "~14.0.5",
+ "expo-constants": "~15.4.5",
+ "expo-dev-client": "~3.3.8",
+ "expo-device": "~5.9.3",
+ "expo-font": "~11.10.3",
+ "expo-image-picker": "~14.7.1",
+ "expo-localization": "~14.8.3",
+ "expo-location": "~16.5.3",
+ "expo-notifications": "~0.27.6",
+ "expo-splash-screen": "~0.26.4",
+ "expo-status-bar": "~1.11.1",
+ "expo-task-manager": "~11.7.2",
+ "expo-updates": "~0.24.11",
+ "graphql": "^15.8.0",
+ "i18n-js": "^3.7.1",
+ "i18next": "^23.7.6",
+ "lottie-react-native": "6.5.1",
+ "moment": "^2.29.1",
+ "moment-timezone": "^0.5.34",
+ "patch-package": "^6.2.2",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-i18next": "^13.5.0",
+ "react-native": "0.73.4",
+ "react-native-animatable": "^1.3.3",
+ "react-native-countdown-component": "^2.7.1",
+ "react-native-flash-message": "^0.1.21",
+ "react-native-gesture-handler": "~2.14.0",
+ "react-native-gifted-chat": "^2.4.0",
+ "react-native-loading-spinner-overlay": "^3.0.0",
+ "react-native-maps": "1.10.0",
+ "react-native-maps-directions": "^1.8.0",
+ "react-native-material-textfield": "^0.16.1",
+ "react-native-modal": "^13.0.1",
+ "react-native-reanimated": "3.6.2",
+ "react-native-safe-area-context": "4.8.2",
+ "react-native-screens": "~3.29.0",
+ "react-native-vector-icons": "^9.2.0",
+ "react-native-web": "~0.19.6",
+ "react-native-webview": "13.6.4",
+ "sentry-expo": "~7.2.0",
+ "subscriptions-transport-ws": "^0.9.19"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.20.0",
+ "@expo/metro-config": "~0.17.1",
+ "babel-preset-expo": "^10.0.0",
+ "eslint": "^7.1.0",
+ "eslint-config-standard": "^14.1.1",
+ "eslint-plugin-import": "^2.20.2",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^4.2.1",
+ "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-standard": "^4.0.1",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.7",
+ "prettier": "2.0.5",
+ "prettier-config-standard": "^1.0.1"
+ }
+ },
+ "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/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@apollo/client": {
+ "version": "3.9.5",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.5.tgz",
+ "integrity": "sha512-7y+c8MTPU+hhTwvcGVtMMGIgWduzrvG1mz5yJMRyqYbheBkkky3Lki6ADWVSBXG1lZoOtPYvB2zDgVfKb2HSsw==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@wry/caches": "^1.0.0",
+ "@wry/equality": "^0.5.6",
+ "@wry/trie": "^0.5.0",
+ "graphql-tag": "^2.12.6",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.18.0",
+ "prop-types": "^15.7.2",
+ "rehackt": "0.0.5",
+ "response-iterator": "^0.2.6",
+ "symbol-observable": "^4.0.0",
+ "ts-invariant": "^0.10.3",
+ "tslib": "^2.3.0",
+ "zen-observable-ts": "^1.2.5"
+ },
+ "peerDependencies": {
+ "graphql": "^15.0.0 || ^16.0.0",
+ "graphql-ws": "^5.5.5",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "subscriptions-transport-ws": "^0.9.0 || ^0.11.0"
+ },
+ "peerDependenciesMeta": {
+ "graphql-ws": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "subscriptions-transport-ws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dependencies": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.23.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
+ "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dependencies": {
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "dependencies": {
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "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.23.3",
+ "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.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
+ "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz",
+ "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.23.9",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-decorators": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-default-from": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
+ "dependencies": {
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.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-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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-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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz",
+ "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
+ "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
+ "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-flow-strip-types": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-flow": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
+ "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
+ "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-numeric-separator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-assign": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.23.3.tgz",
+ "integrity": "sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
+ "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.3",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-optional-chaining": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz",
+ "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz",
+ "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/types": "^7.23.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
+ "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz",
+ "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz",
+ "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz",
+ "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz",
+ "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz",
+ "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@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-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.9",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.4",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.4",
+ "@babel/plugin-transform-classes": "^7.23.8",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.4",
+ "@babel/plugin-transform-for-of": "^7.23.6",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.4",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.9",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
+ "@babel/plugin-transform-numeric-separator": "^7.23.4",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@babel/plugin-transform-optional-chaining": "^7.23.4",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-flow": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz",
+ "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-flow-strip-types": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz",
+ "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-react-display-name": "^7.23.3",
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
+ "@babel/plugin-transform-react-jsx-development": "^7.22.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/register": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz",
+ "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "find-cache-dir": "^2.0.0",
+ "make-dir": "^2.1.0",
+ "pirates": "^4.0.6",
+ "source-map-support": "^0.5.16"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
+ "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@egjs/hammerjs": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
+ "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
+ "dependencies": {
+ "@types/hammerjs": "^2.0.36"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@expo/bunyan": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
+ "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==",
+ "engines": [
+ "node >=0.10.0"
+ ],
+ "dependencies": {
+ "uuid": "^8.0.0"
+ },
+ "optionalDependencies": {
+ "mv": "~2",
+ "safe-json-stringify": "~1"
+ }
+ },
+ "node_modules/@expo/cli": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.17.5.tgz",
+ "integrity": "sha512-9cMquL/5bBfV73CbZcWipk3KZSo8mBqdgvkoWCtEtnnlm/879ayxzMWjVIgT5yV4w+X7+N6KkBSUIIj4t9Xqew==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/devcert": "^1.0.0",
+ "@expo/env": "~0.2.0",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "@expo/metro-config": "~0.17.0",
+ "@expo/osascript": "^2.0.31",
+ "@expo/package-manager": "^1.1.1",
+ "@expo/plist": "^0.1.0",
+ "@expo/prebuild-config": "6.7.4",
+ "@expo/rudder-sdk-node": "1.1.1",
+ "@expo/spawn-async": "1.5.0",
+ "@expo/xcpretty": "^4.3.0",
+ "@react-native/dev-middleware": "^0.73.6",
+ "@urql/core": "2.3.6",
+ "@urql/exchange-retry": "0.3.0",
+ "accepts": "^1.3.8",
+ "arg": "5.0.2",
+ "better-opn": "~3.0.2",
+ "bplist-parser": "^0.3.1",
+ "cacache": "^15.3.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.3.0",
+ "connect": "^3.7.0",
+ "debug": "^4.3.4",
+ "env-editor": "^0.4.1",
+ "find-yarn-workspace-root": "~2.0.0",
+ "form-data": "^3.0.1",
+ "freeport-async": "2.0.0",
+ "fs-extra": "~8.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.1.7",
+ "graphql": "15.8.0",
+ "graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
+ "internal-ip": "4.3.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
+ "js-yaml": "^3.13.1",
+ "json-schema-deref-sync": "^0.13.0",
+ "lodash.debounce": "^4.0.8",
+ "md5hex": "^1.0.0",
+ "minimatch": "^3.0.4",
+ "minipass": "3.3.6",
+ "node-fetch": "^2.6.7",
+ "node-forge": "^1.3.1",
+ "npm-package-arg": "^7.0.0",
+ "open": "^8.3.0",
+ "ora": "3.4.0",
+ "picomatch": "^3.0.1",
+ "pretty-bytes": "5.6.0",
+ "progress": "2.0.3",
+ "prompts": "^2.3.2",
+ "qrcode-terminal": "0.11.0",
+ "require-from-string": "^2.0.2",
+ "requireg": "^0.2.2",
+ "resolve": "^1.22.2",
+ "resolve-from": "^5.0.0",
+ "resolve.exports": "^2.0.2",
+ "semver": "^7.5.3",
+ "send": "^0.18.0",
+ "slugify": "^1.3.4",
+ "source-map-support": "~0.5.21",
+ "stacktrace-parser": "^0.1.10",
+ "structured-headers": "^0.4.1",
+ "tar": "^6.0.5",
+ "temp-dir": "^2.0.0",
+ "tempy": "^0.7.1",
+ "terminal-link": "^2.1.1",
+ "text-table": "^0.2.0",
+ "url-join": "4.0.0",
+ "wrap-ansi": "^7.0.0",
+ "ws": "^8.12.1"
+ },
+ "bin": {
+ "expo-internal": "build/bin/cli"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/cli/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/cli/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/@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "dependencies": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/@expo/config": {
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-8.5.4.tgz",
+ "integrity": "sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~7.8.2",
+ "@expo/config-types": "^50.0.0",
+ "@expo/json-file": "^8.2.37",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "slugify": "^1.3.4",
+ "sucrase": "3.34.0"
+ }
+ },
+ "node_modules/@expo/config-plugins": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.4.tgz",
+ "integrity": "sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==",
+ "dependencies": {
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/fingerprint": "^0.6.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/plist": "^0.1.0",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.0"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-plugins/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/config-plugins/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/@expo/config-plugins/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/@expo/config-types": {
+ "version": "50.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz",
+ "integrity": "sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw=="
+ },
+ "node_modules/@expo/config/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/config/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@expo/config/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/@expo/config/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/config/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/@expo/devcert": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
+ "dependencies": {
+ "application-config-path": "^0.1.0",
+ "command-exists": "^1.2.4",
+ "debug": "^3.1.0",
+ "eol": "^0.9.1",
+ "get-port": "^3.2.0",
+ "glob": "^7.1.2",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "password-prompt": "^1.0.4",
+ "rimraf": "^2.6.2",
+ "sudo-prompt": "^8.2.0",
+ "tmp": "^0.0.33",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@expo/devcert/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/@expo/env": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.2.1.tgz",
+ "integrity": "sha512-deZmRS7Dvp18VM8s559dq/ZjPlV1D9vtLoLXwHmCK/JYOvtNptdKsfxcWjI7ewmo6ln2PqgNI9HRI74q6Wk2eA==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "debug": "^4.3.4",
+ "dotenv": "~16.0.3",
+ "dotenv-expand": "~10.0.0",
+ "getenv": "^1.0.0"
+ }
+ },
+ "node_modules/@expo/env/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/@expo/env/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/@expo/env/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/@expo/env/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/@expo/env/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/@expo/env/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/@expo/fingerprint": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz",
+ "integrity": "sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.4",
+ "find-up": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^3.1.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "fingerprint": "bin/cli.js"
+ }
+ },
+ "node_modules/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/fingerprint/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/@expo/image-utils": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.1.tgz",
+ "integrity": "sha512-EZb+VHSmw+a5s2hS9qksTcWylY0FDaIAVufcxoaRS9tHIXLjW5zcKW7Rhj9dSEbZbRVy9yXXdHKa3GQdUQIOFw==",
+ "dependencies": {
+ "@expo/spawn-async": "1.5.0",
+ "chalk": "^4.0.0",
+ "fs-extra": "9.0.0",
+ "getenv": "^1.0.0",
+ "jimp-compact": "0.16.1",
+ "node-fetch": "^2.6.0",
+ "parse-png": "^2.1.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "tempy": "0.3.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-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/@expo/image-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/@expo/image-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/@expo/image-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/@expo/image-utils/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/fs-extra": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/image-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/@expo/image-utils/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@expo/image-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/@expo/image-utils/node_modules/temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/tempy": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "dependencies": {
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@expo/image-utils/node_modules/universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/@expo/image-utils/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/@expo/json-file": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz",
+ "integrity": "sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^2.2.2",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/@expo/json-file/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/metro-config": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.17.4.tgz",
+ "integrity": "sha512-PxqDMuVjXQeboa6Aj8kNj4iTxIpwpfoYlF803qOjf1LE1ePlREnWNwqy65ESCBnCmekYIO5hhm1Nksa+xCvuyg==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.5",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "@expo/config": "~8.5.0",
+ "@expo/env": "~0.2.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/spawn-async": "^1.7.2",
+ "babel-preset-fbjs": "^3.4.0",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "find-yarn-workspace-root": "~2.0.0",
+ "fs-extra": "^9.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.2.3",
+ "jsc-safe-url": "^0.2.4",
+ "lightningcss": "~1.19.0",
+ "postcss": "~8.4.32",
+ "resolve-from": "^5.0.0",
+ "sucrase": "3.34.0"
+ },
+ "peerDependencies": {
+ "@react-native/babel-preset": "*"
+ }
+ },
+ "node_modules/@expo/metro-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/@expo/metro-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/@expo/metro-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/@expo/metro-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/@expo/metro-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/@expo/metro-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/@expo/osascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.0.tgz",
+ "integrity": "sha512-bOhuFnlRaS7CU33+rFFIWdcET/Vkyn1vsN8BYFwCDEF5P1fVVvYN7bFOsQLTMD3nvi35C1AGmtqUr/Wfv8Xaow==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "exec-async": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/package-manager": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.4.2.tgz",
+ "integrity": "sha512-LKdo/6y4W7llZ6ghsg1kdx2CeH/qR/c6QI/JI8oPUvppsZoeIYjSkdflce978fAMfR8IXoi0wt0jA2w0kWpwbg==",
+ "dependencies": {
+ "@expo/json-file": "^8.2.37",
+ "@expo/spawn-async": "^1.5.0",
+ "ansi-regex": "^5.0.0",
+ "chalk": "^4.0.0",
+ "find-up": "^5.0.0",
+ "find-yarn-workspace-root": "~2.0.0",
+ "js-yaml": "^3.13.1",
+ "micromatch": "^4.0.2",
+ "npm-package-arg": "^7.0.0",
+ "ora": "^3.4.0",
+ "split": "^1.0.1",
+ "sudo-prompt": "9.1.1"
+ }
+ },
+ "node_modules/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/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/@expo/package-manager/node_modules/sudo-prompt": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
+ "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
+ },
+ "node_modules/@expo/package-manager/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/@expo/plist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz",
+ "integrity": "sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.7",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config": {
+ "version": "6.7.4",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz",
+ "integrity": "sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "debug": "^4.3.1",
+ "fs-extra": "^9.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "xml2js": "0.6.0"
+ },
+ "peerDependencies": {
+ "expo-modules-autolinking": ">=0.8.1"
+ }
+ },
+ "node_modules/@expo/prebuild-config/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/@expo/prebuild-config/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/prebuild-config/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/@expo/react-native-action-sheet": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/react-native-action-sheet/-/react-native-action-sheet-4.0.1.tgz",
+ "integrity": "sha512-FwCFpjpB6yzrK8CIWssLlh/i6zQFytFBiJfNdz0mJ2ckU4hWk8SrjB37P0Q4kF7w0bnIdYzPgRbdPR9hnfFqPw==",
+ "dependencies": {
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0"
+ }
+ },
+ "node_modules/@expo/rudder-sdk-node": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz",
+ "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==",
+ "dependencies": {
+ "@expo/bunyan": "^4.0.0",
+ "@segment/loosely-validate-event": "^2.0.0",
+ "fetch-retry": "^4.1.1",
+ "md5": "^2.2.1",
+ "node-fetch": "^2.6.1",
+ "remove-trailing-slash": "^0.1.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/sdk-runtime-versions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz",
+ "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="
+ },
+ "node_modules/@expo/spawn-async": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
+ "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/vector-icons": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.0.tgz",
+ "integrity": "sha512-5orm59pdnBQlovhU9k4DbjMUZBHNlku7IRgFY56f7pcaaCnXq9yaLJoOQl9sMwNdFzf4gnkTyHmR5uN10mI9rA=="
+ },
+ "node_modules/@expo/xcpretty": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz",
+ "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==",
+ "dependencies": {
+ "@babel/code-frame": "7.10.4",
+ "chalk": "^4.1.0",
+ "find-up": "^5.0.0",
+ "js-yaml": "^4.1.0"
+ },
+ "bin": {
+ "excpretty": "build/cli.js"
+ }
+ },
+ "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@expo/xcpretty/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/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "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==",
+ "dev": true
+ },
+ "node_modules/@ide/backoff": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@ide/backoff/-/backoff-1.0.0.tgz",
+ "integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g=="
+ },
+ "node_modules/@isaacs/ttlcache": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz",
+ "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jest/create-cache-key-function": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz",
+ "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==",
+ "dependencies": {
+ "@jest/types": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "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=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "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/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/fs/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/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/@react-native-async-storage/async-storage": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz",
+ "integrity": "sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==",
+ "dependencies": {
+ "merge-options": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react-native": "^0.0.0-0 || >=0.60 <1.0"
+ }
+ },
+ "node_modules/@react-native-community/cli": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz",
+ "integrity": "sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==",
+ "dependencies": {
+ "@react-native-community/cli-clean": "12.3.2",
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-doctor": "12.3.2",
+ "@react-native-community/cli-hermes": "12.3.2",
+ "@react-native-community/cli-plugin-metro": "12.3.2",
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native-community/cli-types": "12.3.2",
+ "chalk": "^4.1.2",
+ "commander": "^9.4.1",
+ "deepmerge": "^4.3.0",
+ "execa": "^5.0.0",
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.1.0",
+ "graceful-fs": "^4.1.3",
+ "prompts": "^2.4.2",
+ "semver": "^7.5.2"
+ },
+ "bin": {
+ "react-native": "build/bin.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz",
+ "integrity": "sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean/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-native-community/cli-clean/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-native-community/cli-clean/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-native-community/cli-clean/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-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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-native-community/cli-clean/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/@react-native-community/cli-clean/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/@react-native-community/cli-clean/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-native-community/cli-config": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.2.tgz",
+ "integrity": "sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "cosmiconfig": "^5.1.0",
+ "deepmerge": "^4.3.0",
+ "glob": "^7.1.3",
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-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/@react-native-community/cli-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/@react-native-community/cli-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/@react-native-community/cli-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/@react-native-community/cli-config/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-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/@react-native-community/cli-config/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-config/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-config/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-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/@react-native-community/cli-debugger-ui": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz",
+ "integrity": "sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==",
+ "dependencies": {
+ "serve-static": "^1.13.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz",
+ "integrity": "sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==",
+ "dependencies": {
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "command-exists": "^1.2.8",
+ "deepmerge": "^4.3.0",
+ "envinfo": "^7.10.0",
+ "execa": "^5.0.0",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5",
+ "node-stream-zip": "^1.9.1",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1",
+ "yaml": "^2.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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-native-community/cli-doctor/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-native-community/cli-doctor/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-native-community/cli-doctor/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-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/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/@react-native-community/cli-doctor/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/ora/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/@react-native-community/cli-doctor/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/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-native-community/cli-doctor/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/@react-native-community/cli-doctor/node_modules/yaml": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@react-native-community/cli-hermes": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz",
+ "integrity": "sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==",
+ "dependencies": {
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5"
+ }
+ },
+ "node_modules/@react-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-hermes/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-native-community/cli-platform-android": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz",
+ "integrity": "sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.2.4",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-android/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-native-community/cli-platform-android/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-native-community/cli-platform-android/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-native-community/cli-platform-android/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-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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/@react-native-community/cli-platform-android/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-native-community/cli-platform-ios": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz",
+ "integrity": "sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.0.12",
+ "glob": "^7.1.3",
+ "ora": "^5.4.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/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/@react-native-community/cli-platform-ios/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios/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-native-community/cli-plugin-metro": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz",
+ "integrity": "sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g=="
+ },
+ "node_modules/@react-native-community/cli-server-api": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz",
+ "integrity": "sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==",
+ "dependencies": {
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "compression": "^1.7.1",
+ "connect": "^3.6.5",
+ "errorhandler": "^1.5.1",
+ "nocache": "^3.0.1",
+ "pretty-format": "^26.6.2",
+ "serve-static": "^1.13.1",
+ "ws": "^7.5.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/@react-native-community/cli-tools": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz",
+ "integrity": "sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==",
+ "dependencies": {
+ "appdirsjs": "^1.2.4",
+ "chalk": "^4.1.2",
+ "find-up": "^5.0.0",
+ "mime": "^2.4.1",
+ "node-fetch": "^2.6.0",
+ "open": "^6.2.0",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "shell-quote": "^1.7.3",
+ "sudo-prompt": "^9.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/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-native-community/cli-tools/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/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/@react-native-community/cli-tools/node_modules/open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+ "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
+ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ },
+ "node_modules/@react-native-community/cli-tools/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-native-community/cli-tools/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/@react-native-community/cli-types": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.2.tgz",
+ "integrity": "sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==",
+ "dependencies": {
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli/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-native-community/cli/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-native-community/cli/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-native-community/cli/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-native-community/cli/node_modules/commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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-native-community/cli/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/@react-native-community/cli/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/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/@react-native-community/cli/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@react-native-community/cli/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-native-community/cli/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/@react-native-community/cli/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/@react-native-community/masked-view": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.10.tgz",
+ "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==",
+ "deprecated": "Repository was moved to @react-native-masked-view/masked-view",
+ "peerDependencies": {
+ "react": "^16.0",
+ "react-native": ">=0.57"
+ }
+ },
+ "node_modules/@react-native/assets-registry": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz",
+ "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/babel-plugin-codegen": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz",
+ "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==",
+ "dependencies": {
+ "@react-native/codegen": "0.73.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/babel-preset": {
+ "version": "0.73.21",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz",
+ "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.18.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.18.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.20.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.20.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.20.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@react-native/babel-plugin-codegen": "0.73.4",
+ "babel-plugin-transform-flow-enums": "^0.0.2",
+ "react-refresh": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native/codegen": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz",
+ "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==",
+ "dependencies": {
+ "@babel/parser": "^7.20.0",
+ "flow-parser": "^0.206.0",
+ "glob": "^7.1.1",
+ "invariant": "^2.2.4",
+ "jscodeshift": "^0.14.0",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin": {
+ "version": "0.73.16",
+ "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz",
+ "integrity": "sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==",
+ "dependencies": {
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native/dev-middleware": "0.73.7",
+ "@react-native/metro-babel-transformer": "0.73.15",
+ "chalk": "^4.0.0",
+ "execa": "^5.1.1",
+ "metro": "^0.80.3",
+ "metro-config": "^0.80.3",
+ "metro-core": "^0.80.3",
+ "node-fetch": "^2.2.0",
+ "readline": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": {
+ "version": "0.73.7",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz",
+ "integrity": "sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-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/@react-native/community-cli-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/@react-native/community-cli-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/@react-native/community-cli-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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/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/@react-native/community-cli-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/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/community-cli-plugin/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/@react-native/community-cli-plugin/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native/community-cli-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/@react-native/debugger-frontend": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz",
+ "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/dev-middleware": {
+ "version": "0.73.8",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz",
+ "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0",
+ "ws": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/dev-middleware/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/@react-native/dev-middleware/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/dev-middleware/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native/dev-middleware/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/@react-native/gradle-plugin": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz",
+ "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/js-polyfills": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz",
+ "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/metro-babel-transformer": {
+ "version": "0.73.15",
+ "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz",
+ "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@react-native/babel-preset": "0.73.21",
+ "hermes-parser": "0.15.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native/normalize-color": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz",
+ "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA=="
+ },
+ "node_modules/@react-native/normalize-colors": {
+ "version": "0.72.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz",
+ "integrity": "sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw=="
+ },
+ "node_modules/@react-native/virtualized-lists": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz",
+ "integrity": "sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/bottom-tabs": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.8.tgz",
+ "integrity": "sha512-0aa/jXea+LyBgR5NoRNWGKw0aFhjHwCkusigMRXIrCA4kINauDcAO0w0iFbZeKfaTCVAix5kK5UxDJJ2aJpevg==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.18",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/core": {
+ "version": "6.4.10",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.10.tgz",
+ "integrity": "sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==",
+ "dependencies": {
+ "@react-navigation/routers": "^6.1.9",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.7"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/@react-navigation/drawer": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.7.tgz",
+ "integrity": "sha512-9hSJySPQcG33vV199uzkI3jHewvAGjVFF2bhC28TkQYDKtp/DmtTvjCEiecOm+qep1Qp4ksh5vBo2P0A1hF6vQ==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.22",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-reanimated": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/elements": {
+ "version": "1.3.22",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.22.tgz",
+ "integrity": "sha512-HYKucs0TwQT8zMvgoZbJsY/3sZfzeP8Dk9IDv4agst3zlA7ReTx4+SROCG6VGC7JKqBCyQykHIwkSwxhapoc+Q==",
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/native": {
+ "version": "6.1.10",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.10.tgz",
+ "integrity": "sha512-jDG89TbZItY7W7rIcS1RqT63vWOPD4XuQLNKqZO0DY7mKnKh/CGBd0eg3nDMXUl143Qp//IxJKe2TfBQRDEU4A==",
+ "dependencies": {
+ "@react-navigation/core": "^6.4.10",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/routers": {
+ "version": "6.1.9",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz",
+ "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==",
+ "dependencies": {
+ "nanoid": "^3.1.23"
+ }
+ },
+ "node_modules/@react-navigation/stack": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.0.11.tgz",
+ "integrity": "sha512-Osc2mXi0Zh/u92HRCceDqVfVnypTa2sZgYMJDU+vDhHz38negtbCG+cjje6nApSjwC5WTVhYP4OoD5WBSh51+g==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.2.1",
+ "color": "^3.1.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/stack/node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/@segment/loosely-validate-event": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
+ "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
+ "dependencies": {
+ "component-type": "^1.2.1",
+ "join-component": "^1.1.0"
+ }
+ },
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.81.1.tgz",
+ "integrity": "sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/browser": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.81.1.tgz",
+ "integrity": "sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/replay": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/cli": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.25.2.tgz",
+ "integrity": "sha512-lgt1QPaCfs/QZNXwyw3gvuBR2/CLwFSdU/oT7Bpxwizz8XVXhlKS98zJF1UVCy7SecsDSoOI0Z+B+X658cpquQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "sentry-cli": "bin/sentry-cli"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@sentry/cli-darwin": "2.25.2",
+ "@sentry/cli-linux-arm": "2.25.2",
+ "@sentry/cli-linux-arm64": "2.25.2",
+ "@sentry/cli-linux-i686": "2.25.2",
+ "@sentry/cli-linux-x64": "2.25.2",
+ "@sentry/cli-win32-i686": "2.25.2",
+ "@sentry/cli-win32-x64": "2.25.2"
+ }
+ },
+ "node_modules/@sentry/cli-darwin": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.25.2.tgz",
+ "integrity": "sha512-o1d5NnVUrc1dxDm56k7Co8tSTcOuxbApdxweVXXsiq20HblZCyIi7WxxRkAg4RfKx594sKGiw9uCVvECi+9UpA==",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.25.2.tgz",
+ "integrity": "sha512-n398jd87Ymejt5k/6RjCEjXAvntOWuqhBDANxzhgr5/9FzbODJ844g1mOpcxiIlduzKSzWlPbTEKQulMp2Mt4w==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.25.2.tgz",
+ "integrity": "sha512-lm5jaigV6xu9Gwo0wNk+bX6yVkl5k3gNXcSXcKCISFo+Teb7Zhf9IyXANPm4VY2DdiZAjPJt8gS1bu+Mn7irtQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.25.2.tgz",
+ "integrity": "sha512-/YYx2gfqO5mkxyBgFcnDbZzkZ2+2xNarwrqWcqq3Qw0XlO9DWAQB2G+twV1RW/UfSU6fFIWErn94efh2EWmyzQ==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.25.2.tgz",
+ "integrity": "sha512-rRafqy84R5mYA4JEfNsUeN10af5euJnK7fgqYM0mJIaplHC2YEXT9aUYWoryWPZiYqmdNUhsA6lX7iynSW9pZw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.25.2.tgz",
+ "integrity": "sha512-plT/gi41F+67g9AwrEm4avRXnjCtHCcnRnJ6zPu/iINGap8mvYQJSU/qM0oGwV6hRGg3JJN66XIvJPIuIs8P8w==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.25.2.tgz",
+ "integrity": "sha512-Mb6mAyPi9gIfpzF5MTk0JXgFP9nxka3Fb7JYn6AY4RW++sOjapkTrcXL2Gp3ZfQkWj5rFTgln4+eNmZPsD2gzA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.81.1.tgz",
+ "integrity": "sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==",
+ "dependencies": {
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/hub": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.81.1.tgz",
+ "integrity": "sha512-25cvsI3HKiRLJBZGFC8ntuy7/yB8M1w8YLTjr3tIqydYmjFUX7f18w0iuWEtd204d8OQSPBJDapbGMdfkE5x6w==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/integrations": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.81.1.tgz",
+ "integrity": "sha512-DN5ONn0/LX5HHVPf1EBGHFssIZaZmLgkqUIeMqCNYBpB4DiOrJANnGwTcWKDPphqhdPxjnPv9AGRLaU0PdvvZQ==",
+ "dependencies": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "localforage": "^1.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/react": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.81.1.tgz",
+ "integrity": "sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw==",
+ "dependencies": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "hoist-non-react-statics": "^3.3.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "react": "15.x || 16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/@sentry/react-native": {
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-5.17.0.tgz",
+ "integrity": "sha512-d0TLASMcpUtvw0A8zNznRyCskfH0kwfb3GzqMXXpfPJAG8vsBnY15EFOIc+czOLt6FbV9o3567bHYWhSW51Ssg==",
+ "dependencies": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/cli": "2.25.2",
+ "@sentry/core": "7.81.1",
+ "@sentry/hub": "7.81.1",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "bin": {
+ "sentry-expo-upload-sourcemaps": "scripts/expo-upload-sourcemaps.js"
+ },
+ "peerDependencies": {
+ "expo": ">=49.0.0",
+ "react": ">=17.0.0",
+ "react-native": ">=0.65.0"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@sentry/replay": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.81.1.tgz",
+ "integrity": "sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry/types": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.81.1.tgz",
+ "integrity": "sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.81.1.tgz",
+ "integrity": "sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==",
+ "dependencies": {
+ "@sentry/types": "7.81.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.14",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
+ "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
+ },
+ "node_modules/@types/hammerjs": {
+ "version": "2.0.45",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz",
+ "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ=="
+ },
+ "node_modules/@types/hoist-non-react-statics": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz",
+ "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==",
+ "dependencies": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.19",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
+ "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "dev": true
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+ },
+ "node_modules/@types/react": {
+ "version": "18.2.57",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.57.tgz",
+ "integrity": "sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+ },
+ "node_modules/@urql/core": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz",
+ "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.0",
+ "wonka": "^4.0.14"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/@urql/exchange-retry": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz",
+ "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==",
+ "dependencies": {
+ "@urql/core": ">=2.3.1",
+ "wonka": "^4.0.14"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/@wry/caches": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz",
+ "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/context": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz",
+ "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/equality": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz",
+ "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/trie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz",
+ "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz",
+ "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "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": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "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/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": "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/anser": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
+ "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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-fragments": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
+ "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
+ "dependencies": {
+ "colorette": "^1.0.7",
+ "slice-ansi": "^2.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ },
+ "node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+ },
+ "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==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/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/appdirsjs": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
+ "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ },
+ "node_modules/application-config-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "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/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.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.filter": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
+ "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
+ "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
+ "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.1.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "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": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/assert": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
+ "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-nan": "^1.3.2",
+ "object-is": "^1.1.5",
+ "object.assign": "^4.1.4",
+ "util": "^0.12.5"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
+ "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "node_modules/asynciterator.prototype": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
+ "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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/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/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/babel-core": {
+ "version": "7.0.0-bridge.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
+ "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-react-native-web": {
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz",
+ "integrity": "sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw=="
+ },
+ "node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ },
+ "node_modules/babel-plugin-transform-flow-enums": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
+ "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
+ "dependencies": {
+ "@babel/plugin-syntax-flow": "^7.12.1"
+ }
+ },
+ "node_modules/babel-preset-expo": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-10.0.1.tgz",
+ "integrity": "sha512-uWIGmLfbP3dS5+8nesxaW6mQs41d4iP7X82ZwRdisB/wAhKQmuJM9Y1jQe4006uNYkw6Phf2TT03ykLVro7KuQ==",
+ "dependencies": {
+ "@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.12.13",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/preset-env": "^7.20.0",
+ "@babel/preset-react": "^7.22.15",
+ "@react-native/babel-preset": "^0.73.18",
+ "babel-plugin-react-native-web": "~0.18.10",
+ "react-refresh": "0.14.0"
+ }
+ },
+ "node_modules/babel-preset-fbjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
+ "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
+ "dependencies": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
+ },
+ "node_modules/badgin": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.3.tgz",
+ "integrity": "sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw=="
+ },
+ "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/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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/better-opn": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
+ "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
+ "dependencies": {
+ "open": "^8.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/big-integer": {
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/blueimp-md5": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
+ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
+ },
+ "node_modules/bplist-creator": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
+ "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==",
+ "dependencies": {
+ "stream-buffers": "2.2.x"
+ }
+ },
+ "node_modules/bplist-parser": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
+ "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "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/browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "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": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "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": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dependencies": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ },
+ "node_modules/buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ },
+ "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/builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ=="
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cacache/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/cacache/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/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/cacache/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/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-callsite/node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/caniuse-lite": {
+ "version": "1.0.30001589",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
+ "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "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/chalk/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chrome-launcher": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
+ "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0"
+ },
+ "bin": {
+ "print-chrome-path": "bin/print-chrome-path.js"
+ },
+ "engines": {
+ "node": ">=12.13.0"
+ }
+ },
+ "node_modules/chromium-edge-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz",
+ "integrity": "sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==",
+ "dependencies": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "node_modules/chromium-edge-launcher/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/chromium-edge-launcher/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/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color/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/color/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/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "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/command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+ },
+ "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/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "node_modules/compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
+ "node_modules/component-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
+ "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/connect/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/connect/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
+ "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==",
+ "dependencies": {
+ "browserslist": "^4.22.3"
+ },
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "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-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "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/crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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-in-js-utils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
+ "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
+ "dependencies": {
+ "hyphenate-style-name": "^1.0.3"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/dag-map": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
+ "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/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/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dependencies": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defaults/node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "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/del/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/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/denodeify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
+ "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
+ },
+ "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/deprecated-react-native-prop-types": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.2.3.tgz",
+ "integrity": "sha512-2rLTiMKidIFFYpIVM69UnQKngLqQfL6I11Ch8wGSBftS18FUXda+o2we2950X+1dmbgps28niI3qwyH4eX3Z1g==",
+ "dependencies": {
+ "@react-native/normalize-colors": "<0.73.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "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-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/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/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/dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/dotenv-expand": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
+ "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/electron-to-chromium": {
+ "version": "1.4.679",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.679.tgz",
+ "integrity": "sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g=="
+ },
+ "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/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/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/env-editor": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
+ "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/envinfo": {
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
+ "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eol": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "dependencies": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.22.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
+ "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.1",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.0",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.1",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz",
+ "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==",
+ "dev": true,
+ "dependencies": {
+ "asynciterator.prototype": "^1.0.0",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.4",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.2",
+ "safe-array-concat": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-standard": {
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz",
+ "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==",
+ "dev": true,
+ "peerDependencies": {
+ "eslint": ">=6.2.2",
+ "eslint-plugin-import": ">=2.18.0",
+ "eslint-plugin-node": ">=9.1.0",
+ "eslint-plugin-promise": ">=4.2.1",
+ "eslint-plugin-standard": ">=4.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dev": true,
+ "dependencies": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-node": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "dev": true,
+ "dependencies": {
+ "eslint-plugin-es": "^3.0.0",
+ "eslint-utils": "^2.0.0",
+ "ignore": "^5.1.1",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.10.1",
+ "semver": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-plugin-node/node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/eslint-plugin-promise": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz",
+ "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.33.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
+ "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.12",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.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/eslint-plugin-standard": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz",
+ "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==",
+ "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"
+ }
+ ],
+ "peerDependencies": {
+ "eslint": ">=5.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-scope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/node_modules/@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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==",
+ "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/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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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/eslint/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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/eslint/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/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.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==",
+ "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/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "node_modules/exec-async": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz",
+ "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw=="
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/execa/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/execa/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/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/expo": {
+ "version": "50.0.7",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-50.0.7.tgz",
+ "integrity": "sha512-lTqIrKOUTKHLdTuAaJzZihi1v7F8Ix1dOXVWMpToDy9zPC/s+fet0fbyXdFUxYsCUyuEDIB9tvejrTYZk8Hm0Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/cli": "0.17.5",
+ "@expo/config": "8.5.4",
+ "@expo/config-plugins": "7.8.4",
+ "@expo/metro-config": "0.17.4",
+ "@expo/vector-icons": "^14.0.0",
+ "babel-preset-expo": "~10.0.1",
+ "expo-asset": "~9.0.2",
+ "expo-file-system": "~16.0.6",
+ "expo-font": "~11.10.3",
+ "expo-keep-awake": "~12.8.2",
+ "expo-modules-autolinking": "1.10.3",
+ "expo-modules-core": "1.11.9",
+ "fbemitter": "^3.0.0",
+ "whatwg-url-without-unicode": "8.0.0-3"
+ },
+ "bin": {
+ "expo": "bin/cli"
+ }
+ },
+ "node_modules/expo-application": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.8.3.tgz",
+ "integrity": "sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-asset": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-9.0.2.tgz",
+ "integrity": "sha512-PzYKME1MgUOoUvwtdzhAyXkjXOXGiSYqGKG/MsXwWr0Ef5wlBaBm2DCO9V6KYbng5tBPFu6hTjoRNil1tBOSow==",
+ "dependencies": {
+ "@react-native/assets-registry": "~0.73.1",
+ "blueimp-md5": "^2.10.0",
+ "expo-constants": "~15.4.0",
+ "expo-file-system": "~16.0.0",
+ "invariant": "^2.2.4",
+ "md5-file": "^3.2.3"
+ }
+ },
+ "node_modules/expo-av": {
+ "version": "13.10.5",
+ "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-13.10.5.tgz",
+ "integrity": "sha512-w45oCoe+8PunDeM0rh/Ut6UaGh7OjEJOCjAiQy3nCxpA8FaXB17KaqpsvkAXIMvceHYWndH8+D29esUTS6wEsA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-camera": {
+ "version": "14.0.5",
+ "resolved": "https://registry.npmjs.org/expo-camera/-/expo-camera-14.0.5.tgz",
+ "integrity": "sha512-rHCOEAjt0NOjYXMyKnrGruOMvPdKbhhJBMtpr8LfJPVprsxZTjFC+flQgX52tZZWxPa1Hn6qpGYUzxZhVakHCg==",
+ "dependencies": {
+ "invariant": "^2.2.4"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-constants": {
+ "version": "15.4.5",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-15.4.5.tgz",
+ "integrity": "sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg==",
+ "dependencies": {
+ "@expo/config": "~8.5.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-client": {
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-3.3.8.tgz",
+ "integrity": "sha512-6JpcxncWiWwq1w6SPrePpTa20z3D1qmAMMHd8f05lSCUPVBn4jTwpzrKEpGaA3EubLE5SEdxPVmvmyWw/oFFMQ==",
+ "dependencies": {
+ "expo-dev-launcher": "3.6.6",
+ "expo-dev-menu": "4.5.5",
+ "expo-dev-menu-interface": "1.7.2",
+ "expo-manifests": "~0.13.0",
+ "expo-updates-interface": "~0.15.1"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-launcher": {
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-3.6.6.tgz",
+ "integrity": "sha512-jVI1YZS1YJTrniIL53BOxSZUMyJCeDLuS9SlRx1vC3tnTTN3srg5pU/zCK/DifwbF7i6NtA1iLPSBVu2K4040A==",
+ "dependencies": {
+ "ajv": "8.11.0",
+ "expo-dev-menu": "4.5.5",
+ "expo-manifests": "~0.13.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-launcher/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/expo-dev-launcher/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/expo-dev-launcher/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/expo-dev-launcher/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-dev-launcher/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/expo-dev-menu": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-4.5.5.tgz",
+ "integrity": "sha512-PcbI/SqAvueOIEtR1O0s+WvVD7yizQSqXisDSkBrTym3u8XZSN+K730kz2Z64ukY9YIPG4qWR4sd+9rcjsbMWw==",
+ "dependencies": {
+ "expo-dev-menu-interface": "1.7.2",
+ "semver": "^7.5.3"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-menu-interface": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.2.tgz",
+ "integrity": "sha512-V/geSB9rW0IPTR+d7E5CcvkV0uVUCE7SMHZqE/J0/dH06Wo8AahB16fimXeh5/hTL2Qztq8CQ41xpFUBoA9TEw==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-menu/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/expo-dev-menu/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-dev-menu/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/expo-device": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/expo-device/-/expo-device-5.9.3.tgz",
+ "integrity": "sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w==",
+ "dependencies": {
+ "ua-parser-js": "^0.7.33"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-eas-client": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/expo-eas-client/-/expo-eas-client-0.11.2.tgz",
+ "integrity": "sha512-SY7rVFxb4ut/OMTgR7A39Jg+8+hXwQNRpZd+RBpB+B5XV2STj/pWXHnGFhBayEF4umI4SxrOvisY90rlPWVO9Q=="
+ },
+ "node_modules/expo-file-system": {
+ "version": "16.0.6",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-16.0.6.tgz",
+ "integrity": "sha512-ATCHL7nEg2WwKeamW/SDTR9jBEqM5wncFq594ftKS5QFmhKIrX48d9jyPFGnNq+6h8AGPg4QKh2KCA4OY49L4g==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-font": {
+ "version": "11.10.3",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.10.3.tgz",
+ "integrity": "sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ==",
+ "dependencies": {
+ "fontfaceobserver": "^2.1.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-image-loader": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.6.0.tgz",
+ "integrity": "sha512-RHQTDak7/KyhWUxikn2yNzXL7i2cs16cMp6gEAgkHOjVhoCJQoOJ0Ljrt4cKQ3IowxgCuOrAgSUzGkqs7omj8Q==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-image-picker": {
+ "version": "14.7.1",
+ "resolved": "https://registry.npmjs.org/expo-image-picker/-/expo-image-picker-14.7.1.tgz",
+ "integrity": "sha512-ILQVOJgI3aEzrDmCFGDPtpAepYkn8mot8G7vfQ51BfFdQbzL6N3Wm1fS/ofdWlAZJl/qT2DwaIh5xYmf3SyGZA==",
+ "dependencies": {
+ "expo-image-loader": "~4.6.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-json-utils": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.12.3.tgz",
+ "integrity": "sha512-4pypQdinpNc6XY9wsZk56njvzDh+B/9mISr7FPP3CVk1QGB1nSLh883/BCDSgnsephATZkC5HG+cdE60kCAR6A=="
+ },
+ "node_modules/expo-keep-awake": {
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz",
+ "integrity": "sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-localization": {
+ "version": "14.8.3",
+ "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-14.8.3.tgz",
+ "integrity": "sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw==",
+ "dependencies": {
+ "rtl-detect": "^1.0.2"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-location": {
+ "version": "16.5.3",
+ "resolved": "https://registry.npmjs.org/expo-location/-/expo-location-16.5.3.tgz",
+ "integrity": "sha512-V+84TZIa5MWpIXPvurnlJS9VxuxF1d3ajufUeq2sTgUkI/PP0aLHwyk5wg05C4CwuvwoiaVV80WyEL23j1Mz0w==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-manifests": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.13.2.tgz",
+ "integrity": "sha512-l0Sia1WmLULx8V41K8RzGLsFoTe4qqthPRGpHjItsYn8ZB6lRrdTBM9OYp2McIflgqN1HAimUCQMFIwJyH+UmA==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "expo-json-utils": "~0.12.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-modules-autolinking": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz",
+ "integrity": "sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==",
+ "dependencies": {
+ "@expo/config": "~8.5.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "fast-glob": "^3.2.5",
+ "find-up": "^5.0.0",
+ "fs-extra": "^9.1.0"
+ },
+ "bin": {
+ "expo-modules-autolinking": "bin/expo-modules-autolinking.js"
+ }
+ },
+ "node_modules/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-autolinking/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/expo-modules-core": {
+ "version": "1.11.9",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.11.9.tgz",
+ "integrity": "sha512-GTUb81vcPaF+5MtlBI1u9IjrZbGdF1ZUwz3u8Gc+rOLBblkZ7pYsj2mU/tu+k0khTckI9vcH4ZBksXWvE1ncjQ==",
+ "dependencies": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "node_modules/expo-notifications": {
+ "version": "0.27.6",
+ "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.27.6.tgz",
+ "integrity": "sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA==",
+ "dependencies": {
+ "@expo/image-utils": "^0.4.0",
+ "@ide/backoff": "^1.0.0",
+ "abort-controller": "^3.0.0",
+ "assert": "^2.0.0",
+ "badgin": "^1.1.5",
+ "expo-application": "~5.8.0",
+ "expo-constants": "~15.4.0",
+ "fs-extra": "^9.1.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-splash-screen": {
+ "version": "0.26.4",
+ "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.26.4.tgz",
+ "integrity": "sha512-2DwofTQ0FFQCsvDysm/msENsbyNsJiAJwK3qK/oXeizECAPqD7bK19J4z9kuEbr7ORPX9MLnTQYKl6kmX3keUg==",
+ "dependencies": {
+ "@expo/prebuild-config": "6.7.4"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-status-bar": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.11.1.tgz",
+ "integrity": "sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg=="
+ },
+ "node_modules/expo-structured-headers": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-3.7.2.tgz",
+ "integrity": "sha512-/nGOyeWUXSUy4aIYKJTwQOznRNs0yKqKPAyEE6jtwvOl9qvfDWx9xskNtShioggBhFAssFkV6RBbPn+xZMQtvw=="
+ },
+ "node_modules/expo-task-manager": {
+ "version": "11.7.2",
+ "resolved": "https://registry.npmjs.org/expo-task-manager/-/expo-task-manager-11.7.2.tgz",
+ "integrity": "sha512-cmn7xg8+mGP7gX6deYZhvrCkKMkoBRJ+E4o5aL17Z/4ihXMfo/PFcQsrpuSYRLXzgidEw0kpppxhmYm21Jswwg==",
+ "dependencies": {
+ "unimodules-app-loader": "~4.5.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates": {
+ "version": "0.24.11",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.24.11.tgz",
+ "integrity": "sha512-SWpjZj7VGWBZJtbVj0gbGY7uZYrE7b+sRRoj/K1ma2ckHwXtAAB8gYI95Zp0joBdRNAbEtoMHYXP66Nrj5l8Ng==",
+ "dependencies": {
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "arg": "4.1.0",
+ "chalk": "^4.1.2",
+ "expo-eas-client": "~0.11.0",
+ "expo-manifests": "~0.13.0",
+ "expo-structured-headers": "~3.7.0",
+ "expo-updates-interface": "~0.15.1",
+ "fbemitter": "^3.0.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "expo-updates": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates-interface": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.15.3.tgz",
+ "integrity": "sha512-uLvsbaCmUsXgJqeen8rYH/jPr874ZUCXEvWpKHxrCv5/XATPlYEaDuecbNSGQ+cu78i6MdtB4BHOwZmoH2d47A==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-updates/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/expo-updates/node_modules/arg": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
+ "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg=="
+ },
+ "node_modules/expo-updates/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/expo-updates/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/expo-updates/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/expo-updates/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/expo-updates/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/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.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "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/fast-loops": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
+ "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz",
+ "integrity": "sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/naturalintelligence"
+ }
+ ],
+ "dependencies": {
+ "strnum": "^1.0.5"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fbemitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
+ "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
+ "dependencies": {
+ "fbjs": "^3.0.0"
+ }
+ },
+ "node_modules/fbjs": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz",
+ "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==",
+ "dependencies": {
+ "cross-fetch": "^3.1.5",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^1.0.35"
+ }
+ },
+ "node_modules/fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "node_modules/fbjs/node_modules/ua-parser-js": {
+ "version": "1.0.37",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
+ "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fetch-retry": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
+ "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
+ },
+ "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==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "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/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/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/find-cache-dir/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/find-cache-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/find-cache-dir/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/find-cache-dir/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/find-versions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
+ "dev": true,
+ "dependencies": {
+ "semver-regex": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-yarn-workspace-root": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
+ "dependencies": {
+ "micromatch": "^4.0.2"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "node_modules/flow-enums-runtime": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz",
+ "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="
+ },
+ "node_modules/flow-parser": {
+ "version": "0.206.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
+ "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/fontfaceobserver": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
+ "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "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/freeport-async": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz",
+ "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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": "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/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "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/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/getenv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz",
+ "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/globby/node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "node_modules/graphql": {
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
+ "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/graphql-tag": {
+ "version": "2.12.6",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
+ "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "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": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
+ "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hermes-estree": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz",
+ "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ=="
+ },
+ "node_modules/hermes-parser": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz",
+ "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==",
+ "dependencies": {
+ "hermes-estree": "0.15.0"
+ }
+ },
+ "node_modules/hermes-profile-transformer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
+ "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "dependencies": {
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/hosted-git-info": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
+ "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/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/hosted-git-info/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/html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "dependencies": {
+ "void-elements": "3.1.0"
+ }
+ },
+ "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/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/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "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/husky": {
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^4.0.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^5.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "bin": {
+ "husky-run": "bin/run.js",
+ "husky-upgrade": "lib/upgrader/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/husky"
+ }
+ },
+ "node_modules/husky/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/husky/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/husky/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "node_modules/husky/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/husky/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/husky/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/husky/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/hyphenate-style-name": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ },
+ "node_modules/i18n-js": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-3.9.2.tgz",
+ "integrity": "sha512-+Gm8h5HL0emzKhRx2avMKX+nKiVPXeaOZm7Euf2/pbbFcLQoJ3zZYiUykAzoRasijCoWos2Kl1tslmScTgAQKw=="
+ },
+ "node_modules/i18next": {
+ "version": "23.9.0",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.9.0.tgz",
+ "integrity": "sha512-f3MUciKqwzNV//mHG6EtdSlC65+nqH/3zK8sOSWqNV6FVu2tmHhF/rFOp9UF8S4m1odojtuipKaKJrP0Loh60g==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "dependencies": {
+ "queue": "6.0.2"
+ },
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=16.x"
+ }
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
+ "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/import-fresh/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/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "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/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ },
+ "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==",
+ "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/inline-style-prefixer": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz",
+ "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==",
+ "dependencies": {
+ "css-in-js-utils": "^3.1.0",
+ "fast-loops": "^1.1.3"
+ }
+ },
+ "node_modules/internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dependencies": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
+ },
+ "node_modules/ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-ci/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-invalid-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
+ "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==",
+ "dependencies": {
+ "is-glob": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-invalid-path/node_modules/is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-invalid-path/node_modules/is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "dependencies": {
+ "is-extglob": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-nan": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "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.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "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": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true,
+ "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": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-valid-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
+ "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==",
+ "dependencies": {
+ "is-invalid-path": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "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": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+ "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util/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/jest-message-util/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/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/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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.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/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/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/jest-validate/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "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-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.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/jimp-compact": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
+ "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
+ },
+ "node_modules/joi": {
+ "version": "17.12.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz",
+ "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/join-component": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz",
+ "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
+ },
+ "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/jsc-android": {
+ "version": "250231.0.0",
+ "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz",
+ "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw=="
+ },
+ "node_modules/jsc-safe-url": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz",
+ "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="
+ },
+ "node_modules/jscodeshift": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
+ "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
+ "dependencies": {
+ "@babel/core": "^7.13.16",
+ "@babel/parser": "^7.13.16",
+ "@babel/plugin-proposal-class-properties": "^7.13.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
+ "@babel/plugin-proposal-optional-chaining": "^7.13.12",
+ "@babel/plugin-transform-modules-commonjs": "^7.13.8",
+ "@babel/preset-flow": "^7.13.13",
+ "@babel/preset-typescript": "^7.13.0",
+ "@babel/register": "^7.13.16",
+ "babel-core": "^7.0.0-bridge.0",
+ "chalk": "^4.1.2",
+ "flow-parser": "0.*",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.4",
+ "neo-async": "^2.5.0",
+ "node-dir": "^0.1.17",
+ "recast": "^0.21.0",
+ "temp": "^0.8.4",
+ "write-file-atomic": "^2.3.0"
+ },
+ "bin": {
+ "jscodeshift": "bin/jscodeshift.js"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "node_modules/jscodeshift/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/jscodeshift/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/jscodeshift/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/jscodeshift/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/jscodeshift/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/jscodeshift/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/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-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/json-schema-deref-sync": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz",
+ "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==",
+ "dependencies": {
+ "clone": "^2.1.2",
+ "dag-map": "~1.0.0",
+ "is-valid-path": "^0.1.1",
+ "lodash": "^4.17.13",
+ "md5": "~2.2.0",
+ "memory-cache": "~0.2.0",
+ "traverse": "~0.6.6",
+ "valid-url": "~1.0.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/json-schema-deref-sync/node_modules/md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
+ "dependencies": {
+ "charenc": "~0.0.1",
+ "crypt": "~0.0.1",
+ "is-buffer": "~1.1.1"
+ }
+ },
+ "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/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "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/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "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/klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "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/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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/lighthouse-logger": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
+ "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
+ "dependencies": {
+ "debug": "^2.6.9",
+ "marky": "^1.2.2"
+ }
+ },
+ "node_modules/lighthouse-logger/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/lighthouse-logger/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/lightningcss": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz",
+ "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==",
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.19.0",
+ "lightningcss-darwin-x64": "1.19.0",
+ "lightningcss-linux-arm-gnueabihf": "1.19.0",
+ "lightningcss-linux-arm64-gnu": "1.19.0",
+ "lightningcss-linux-arm64-musl": "1.19.0",
+ "lightningcss-linux-x64-gnu": "1.19.0",
+ "lightningcss-linux-x64-musl": "1.19.0",
+ "lightningcss-win32-x64-msvc": "1.19.0"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz",
+ "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz",
+ "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz",
+ "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz",
+ "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz",
+ "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz",
+ "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz",
+ "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
+ "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "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/lint-staged": {
+ "version": "10.5.4",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz",
+ "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "commander": "^6.2.0",
+ "cosmiconfig": "^7.0.0",
+ "debug": "^4.2.0",
+ "dedent": "^0.7.0",
+ "enquirer": "^2.3.6",
+ "execa": "^4.1.0",
+ "listr2": "^3.2.2",
+ "log-symbols": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "^3.3.0"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/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/lint-staged/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/lint-staged/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/lint-staged/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/lint-staged/node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/lint-staged/node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/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/lint-staged/node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/lint-staged/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/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==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lint-staged/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/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "dependencies": {
+ "lie": "3.1.1"
+ }
+ },
+ "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": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "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/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/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/log-update/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/log-update/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/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
+ "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
+ "dependencies": {
+ "ansi-fragments": "^0.2.1",
+ "dayjs": "^1.8.15",
+ "yargs": "^15.1.0"
+ },
+ "bin": {
+ "logkitty": "bin/logkitty.js"
+ }
+ },
+ "node_modules/logkitty/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/logkitty/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/logkitty/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/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/logkitty/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/logkitty/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/lottie-react-native": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-6.5.1.tgz",
+ "integrity": "sha512-pjih71P6qX6Ax5ucUBA+YJO7+fnveI581Bd8LmYeARm3spq3AnoGzEkrWaieM8odnK6WI4d5dwEJsxge/QjFPw==",
+ "peerDependencies": {
+ "@dotlottie/react-player": "^1.6.1",
+ "@lottiefiles/react-lottie-player": "^3.5.3",
+ "react": "*",
+ "react-native": ">=0.46",
+ "react-native-windows": ">=0.63.x"
+ },
+ "peerDependenciesMeta": {
+ "@dotlottie/react-player": {
+ "optional": true
+ },
+ "@lottiefiles/react-lottie-player": {
+ "optional": true
+ },
+ "react-native-windows": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "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/marky": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
+ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q=="
+ },
+ "node_modules/md5": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+ "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+ "dependencies": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "~1.1.6"
+ }
+ },
+ "node_modules/md5-file": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz",
+ "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==",
+ "dependencies": {
+ "buffer-alloc": "^1.1.0"
+ },
+ "bin": {
+ "md5-file": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/md5hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
+ "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
+ },
+ "node_modules/memoize-one": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
+ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
+ },
+ "node_modules/memory-cache": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz",
+ "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA=="
+ },
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/metro": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.6.tgz",
+ "integrity": "sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "accepts": "^1.3.7",
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "denodeify": "^1.2.1",
+ "error-stack-parser": "^2.0.6",
+ "graceful-fs": "^4.2.4",
+ "hermes-parser": "0.19.1",
+ "image-size": "^1.0.2",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "jsc-safe-url": "^0.2.2",
+ "lodash.throttle": "^4.1.1",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-config": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-file-map": "0.80.6",
+ "metro-resolver": "0.80.6",
+ "metro-runtime": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-symbolicate": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "metro-transform-worker": "0.80.6",
+ "mime-types": "^2.1.27",
+ "node-fetch": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "rimraf": "^3.0.2",
+ "serialize-error": "^2.1.0",
+ "source-map": "^0.5.6",
+ "strip-ansi": "^6.0.0",
+ "throat": "^5.0.0",
+ "ws": "^7.5.1",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "metro": "src/cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-babel-transformer": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.6.tgz",
+ "integrity": "sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "hermes-parser": "0.19.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-babel-transformer/node_modules/hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "node_modules/metro-babel-transformer/node_modules/hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "dependencies": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "node_modules/metro-cache": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.6.tgz",
+ "integrity": "sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==",
+ "dependencies": {
+ "metro-core": "0.80.6",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-cache-key": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.6.tgz",
+ "integrity": "sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-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==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/metro-config": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.6.tgz",
+ "integrity": "sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==",
+ "dependencies": {
+ "connect": "^3.6.5",
+ "cosmiconfig": "^5.0.5",
+ "jest-validate": "^29.6.3",
+ "metro": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-runtime": "0.80.6"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-config/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-config/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-config/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-config/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/metro-core": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.6.tgz",
+ "integrity": "sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==",
+ "dependencies": {
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "0.80.6"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-file-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.6.tgz",
+ "integrity": "sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==",
+ "dependencies": {
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "micromatch": "^4.0.4",
+ "node-abort-controller": "^3.1.1",
+ "nullthrows": "^1.1.1",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/metro-file-map/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/metro-file-map/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro-minify-terser": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.6.tgz",
+ "integrity": "sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==",
+ "dependencies": {
+ "terser": "^5.15.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-resolver": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.6.tgz",
+ "integrity": "sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-runtime": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.6.tgz",
+ "integrity": "sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-source-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.6.tgz",
+ "integrity": "sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==",
+ "dependencies": {
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.80.6",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-source-map/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-symbolicate": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.6.tgz",
+ "integrity": "sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ },
+ "bin": {
+ "metro-symbolicate": "src/index.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-symbolicate/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-transform-plugins": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.6.tgz",
+ "integrity": "sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro-transform-worker": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.6.tgz",
+ "integrity": "sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "metro": "0.80.6",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-minify-terser": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/metro/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/metro/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/metro/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/metro/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/metro/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/metro/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/metro/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/metro/node_modules/hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "node_modules/metro/node_modules/hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "dependencies": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "node_modules/metro/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro/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/metro/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro/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/metro/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/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/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "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/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.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/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/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/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/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/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/moment-timezone": {
+ "version": "0.5.45",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz",
+ "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
+ "dependencies": {
+ "moment": "^2.29.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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/mv": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+ "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
+ "optional": true,
+ "dependencies": {
+ "mkdirp": "~0.5.1",
+ "ncp": "~2.0.0",
+ "rimraf": "~2.4.0"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/mv/node_modules/glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
+ "optional": true,
+ "dependencies": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mv/node_modules/rimraf": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+ "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
+ "optional": true,
+ "dependencies": {
+ "glob": "^6.0.1"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "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": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
+ "optional": true,
+ "bin": {
+ "ncp": "bin/ncp"
+ }
+ },
+ "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/nested-error-stacks": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz",
+ "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/nocache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
+ "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/node-abort-controller": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
+ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ=="
+ },
+ "node_modules/node-dir": {
+ "version": "0.1.17",
+ "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+ "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
+ "dependencies": {
+ "minimatch": "^3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10.5"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "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": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ },
+ "node_modules/node-stream-zip": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/antelle"
+ }
+ },
+ "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/npm-package-arg": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
+ "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==",
+ "dependencies": {
+ "hosted-git-info": "^3.0.2",
+ "osenv": "^0.1.5",
+ "semver": "^5.6.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "node_modules/npm-package-arg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
+ },
+ "node_modules/ob1": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.6.tgz",
+ "integrity": "sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "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.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
+ "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+ "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
+ "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "dev": true,
+ "dependencies": {
+ "array.prototype.filter": "^1.0.3",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+ "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "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/opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "dev": true,
+ "bin": {
+ "opencollective-postinstall": "index.js"
+ }
+ },
+ "node_modules/optimism": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz",
+ "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==",
+ "dependencies": {
+ "@wry/caches": "^1.0.0",
+ "@wry/context": "^0.7.0",
+ "@wry/trie": "^0.4.3",
+ "tslib": "^2.3.0"
+ }
+ },
+ "node_modules/optimism/node_modules/@wry/trie": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz",
+ "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+ "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dependencies": {
+ "chalk": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-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/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/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "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/parse-png": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz",
+ "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
+ "dependencies": {
+ "pngjs": "^3.3.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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/password-prompt": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz",
+ "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==",
+ "dependencies": {
+ "ansi-escapes": "^4.3.2",
+ "cross-spawn": "^7.0.3"
+ }
+ },
+ "node_modules/patch-package": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz",
+ "integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==",
+ "dependencies": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^6.0.5",
+ "find-yarn-workspace-root": "^2.0.0",
+ "fs-extra": "^9.0.0",
+ "is-ci": "^2.0.0",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.6",
+ "open": "^7.4.2",
+ "rimraf": "^2.6.3",
+ "semver": "^5.6.0",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33",
+ "yaml": "^1.10.2"
+ },
+ "bin": {
+ "patch-package": "index.js"
+ },
+ "engines": {
+ "node": ">=10",
+ "npm": ">5"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/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/patch-package/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/patch-package/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/patch-package/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/patch-package/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/patch-package/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/patch-package/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/patch-package/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/patch-package/node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/patch-package/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/patch-package/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/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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "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-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/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": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "dependencies": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "node_modules/plist": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+ "dependencies": {
+ "@xmldom/xmldom": "^0.8.8",
+ "base64-js": "^1.5.1",
+ "xmlbuilder": "^15.1.1"
+ },
+ "engines": {
+ "node": ">=10.4.0"
+ }
+ },
+ "node_modules/plist/node_modules/@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/plist/node_modules/xmlbuilder": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
+ "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/prettier-config-standard": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-1.0.1.tgz",
+ "integrity": "sha512-S0zuixvAFlc0zruhYEDMsjt2VG/e5S5hSbqGuxTMWA0ygjII8EP9U7c/wsCQyjjAoaYG82bUsVmaSQ6veQ+u6g==",
+ "dev": true
+ },
+ "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-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/pretty-format/node_modules/@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/pretty-format/node_modules/@types/yargs": {
+ "version": "15.0.19",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
+ "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/pretty-format/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/pretty-format/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/pretty-format/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/pretty-format/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/pretty-format/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/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/pretty-format/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/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/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ },
+ "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-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/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qrcode-terminal": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
+ "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==",
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "dependencies": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "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/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/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-devtools-core": {
+ "version": "4.28.5",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
+ "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
+ "dependencies": {
+ "shell-quote": "^1.6.1",
+ "ws": "^7"
+ }
+ },
+ "node_modules/react-devtools-core/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/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-freeze": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
+ "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=17.0.0"
+ }
+ },
+ "node_modules/react-i18next": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz",
+ "integrity": "sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==",
+ "dependencies": {
+ "@babel/runtime": "^7.22.5",
+ "html-parse-stringify": "^3.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 23.2.3",
+ "react": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "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-native": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.4.tgz",
+ "integrity": "sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==",
+ "dependencies": {
+ "@jest/create-cache-key-function": "^29.6.3",
+ "@react-native-community/cli": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native/assets-registry": "0.73.1",
+ "@react-native/codegen": "0.73.3",
+ "@react-native/community-cli-plugin": "0.73.16",
+ "@react-native/gradle-plugin": "0.73.4",
+ "@react-native/js-polyfills": "0.73.1",
+ "@react-native/normalize-colors": "0.73.2",
+ "@react-native/virtualized-lists": "0.73.4",
+ "abort-controller": "^3.0.0",
+ "anser": "^1.4.9",
+ "ansi-regex": "^5.0.0",
+ "base64-js": "^1.5.1",
+ "chalk": "^4.0.0",
+ "deprecated-react-native-prop-types": "^5.0.0",
+ "event-target-shim": "^5.0.1",
+ "flow-enums-runtime": "^0.0.6",
+ "invariant": "^2.2.4",
+ "jest-environment-node": "^29.6.3",
+ "jsc-android": "^250231.0.0",
+ "memoize-one": "^5.0.0",
+ "metro-runtime": "^0.80.3",
+ "metro-source-map": "^0.80.3",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1",
+ "pretty-format": "^26.5.2",
+ "promise": "^8.3.0",
+ "react-devtools-core": "^4.27.7",
+ "react-refresh": "^0.14.0",
+ "react-shallow-renderer": "^16.15.0",
+ "regenerator-runtime": "^0.13.2",
+ "scheduler": "0.24.0-canary-efb381bbf-20230505",
+ "stacktrace-parser": "^0.1.10",
+ "whatwg-fetch": "^3.0.0",
+ "ws": "^6.2.2",
+ "yargs": "^17.6.2"
+ },
+ "bin": {
+ "react-native": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": "18.2.0"
+ }
+ },
+ "node_modules/react-native-animatable": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.4.0.tgz",
+ "integrity": "sha512-DZwaDVWm2NBvBxf7I0wXKXLKb/TxDnkV53sWhCvei1pRyTX3MVFpkvdYBknNBqPrxYuAIlPxEp7gJOidIauUkw==",
+ "dependencies": {
+ "prop-types": "^15.8.1"
+ }
+ },
+ "node_modules/react-native-communications": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-native-communications/-/react-native-communications-2.2.1.tgz",
+ "integrity": "sha512-5+C0X9mopI0+qxyQHzOPEi5v5rxNBQjxydPPiKMQSlX1RBIcJ8uTcqUPssQ9Mo8p6c1IKIWJUSqCj4jAmD0qVQ=="
+ },
+ "node_modules/react-native-countdown-component": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/react-native-countdown-component/-/react-native-countdown-component-2.7.1.tgz",
+ "integrity": "sha512-H7D/YvMjY1hCJf9xFrNh5CsIwkcel/Suno2gYR6ulWwoa2xnUgmltFWoMyEIODsUy7lIK1KCPm+Zn26QajbRaw==",
+ "dependencies": {
+ "lodash": "^4.17.13",
+ "prop-types": "^15.5.8",
+ "sprintf-js": "^1.1.1"
+ }
+ },
+ "node_modules/react-native-countdown-component/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
+ },
+ "node_modules/react-native-flash-message": {
+ "version": "0.1.24",
+ "resolved": "https://registry.npmjs.org/react-native-flash-message/-/react-native-flash-message-0.1.24.tgz",
+ "integrity": "sha512-OmhOTXPPjfh0kxAgncWSURHCTfVz2laKtKPK3ItNNXgZhoQV2pF2FBsS8SY2/ABcoChU9sEBjpMM638u2rmCIQ==",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "react-native-iphone-x-helper": "^1.3.0"
+ },
+ "peerDependencies": {
+ "prop-types": "^15.0 || ^16.0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gesture-handler": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.14.1.tgz",
+ "integrity": "sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==",
+ "dependencies": {
+ "@egjs/hammerjs": "^2.0.17",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gifted-chat": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-gifted-chat/-/react-native-gifted-chat-2.4.0.tgz",
+ "integrity": "sha512-dTpSMH8T4s16dM75oLXiDawpXoVSnApJZY9TWf0jYSRShw++0knnp38hO857zOrt6XhqJKm0JntT0pywYI3rYg==",
+ "dependencies": {
+ "@expo/react-native-action-sheet": "4.0.1",
+ "dayjs": "1.8.26",
+ "prop-types": "15.7.2",
+ "react-native-communications": "2.2.1",
+ "react-native-iphone-x-helper": "1.3.1",
+ "react-native-lightbox-v2": "0.9.0",
+ "react-native-parsed-text": "0.0.22",
+ "react-native-typing-animation": "0.1.7",
+ "use-memo-one": "1.1.3",
+ "uuid": "3.4.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gifted-chat/node_modules/dayjs": {
+ "version": "1.8.26",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.26.tgz",
+ "integrity": "sha512-KqtAuIfdNfZR5sJY1Dixr2Is4ZvcCqhb0dZpCOt5dGEFiMzoIbjkTSzUb4QKTCsP+WNpGwUjAFIZrnZvUxxkhw=="
+ },
+ "node_modules/react-native-gifted-chat/node_modules/prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
+ "node_modules/react-native-gifted-chat/node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/react-native-iphone-x-helper": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
+ "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
+ "peerDependencies": {
+ "react-native": ">=0.42.0"
+ }
+ },
+ "node_modules/react-native-lightbox-v2": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/react-native-lightbox-v2/-/react-native-lightbox-v2-0.9.0.tgz",
+ "integrity": "sha512-Fc5VFHFj2vokS+OegyTsANKb1CYoUlOtAv+EBH5wtpJn1b5cey6jVXH7136G5+8OC9JmKWSgKHc5thFwOoZTUg==",
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-native": ">=0.61.0"
+ }
+ },
+ "node_modules/react-native-loading-spinner-overlay": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-loading-spinner-overlay/-/react-native-loading-spinner-overlay-3.0.1.tgz",
+ "integrity": "sha512-4GdR54HQnKg2HPSSisVizfTLuyhSh4splY9eb8mKiYF1Ihjn/5EmdNo5bN3S7uKPFRC3WLzIZIouX6G6fXfnjw==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-maps": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-1.10.0.tgz",
+ "integrity": "sha512-Zs6lHZucEijTwkRVFyInMbPVkJ2UudDEI2fJPc8ArdzdnwDFAdL6OagqTjNRZyI1DBPHRihazfIWpy2+X1VwLg==",
+ "dependencies": {
+ "@types/geojson": "^7946.0.13"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": ">= 17.0.1",
+ "react-native": ">= 0.64.3",
+ "react-native-web": ">= 0.11"
+ },
+ "peerDependenciesMeta": {
+ "react-native-web": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-native-maps-directions": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/react-native-maps-directions/-/react-native-maps-directions-1.9.0.tgz",
+ "integrity": "sha512-68SrMOUg4WQ5PmpS9sNOTZaYtdyVYJnnjQOOhABrgiKnb5BXCZRU2gDoS11gYf23hjUBjq8JXzgfn37WcINLwA==",
+ "dependencies": {
+ "lodash.isequal": "^4.5.0",
+ "prop-types": "^15.6.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*",
+ "react-native-maps": ">=1.0.0"
+ }
+ },
+ "node_modules/react-native-material-textfield": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.16.1.tgz",
+ "integrity": "sha512-pcV/ic3i6vYEODS7pvAMUYJ+evkzIB8cjXtSzkab9rBtYNGRpAlM0Yp8QNnjZ7foZqkj9Ynav0nguWcuJST10A==",
+ "dependencies": {
+ "prop-types": "^15.5.9"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0",
+ "react-native": ">=0.55.0"
+ }
+ },
+ "node_modules/react-native-modal": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.1.tgz",
+ "integrity": "sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==",
+ "dependencies": {
+ "prop-types": "^15.6.2",
+ "react-native-animatable": "1.3.3"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": ">=0.65.0"
+ }
+ },
+ "node_modules/react-native-modal/node_modules/react-native-animatable": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz",
+ "integrity": "sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==",
+ "dependencies": {
+ "prop-types": "^15.7.2"
+ }
+ },
+ "node_modules/react-native-parsed-text": {
+ "version": "0.0.22",
+ "resolved": "https://registry.npmjs.org/react-native-parsed-text/-/react-native-parsed-text-0.0.22.tgz",
+ "integrity": "sha512-hfD83RDXZf9Fvth3DowR7j65fMnlqM9PpxZBGWkzVcUTFtqe6/yPcIoIAgrJbKn6YmtzkivmhWE2MCE4JKBXrQ==",
+ "dependencies": {
+ "prop-types": "^15.7.x"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-reanimated": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.6.2.tgz",
+ "integrity": "sha512-IIMREMOrxhtK35drfpzh2UhxNqAOHnuvGgtMofj7yHcMj16tmWZR2zFvMUf6z2MfmXv+aVgFQ6TRZ6yKYf7LNA==",
+ "dependencies": {
+ "@babel/plugin-transform-object-assign": "^7.16.7",
+ "@babel/preset-typescript": "^7.16.7",
+ "convert-source-map": "^2.0.0",
+ "invariant": "^2.2.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0-0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0-0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0-0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0-0",
+ "@babel/plugin-transform-template-literals": "^7.0.0-0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-safe-area-context": {
+ "version": "4.8.2",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.8.2.tgz",
+ "integrity": "sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-screens": {
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.29.0.tgz",
+ "integrity": "sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg==",
+ "dependencies": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-typing-animation": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/react-native-typing-animation/-/react-native-typing-animation-0.1.7.tgz",
+ "integrity": "sha512-4H3rF9M+I2yAZpYJcY0Mb29TXkn98QK12rrKSY6LZj1BQD9NNmRZuNXzwX4XHapsIz+N/J8M3p27FOQPbfzqeg==",
+ "peerDependencies": {
+ "prop-types": "*",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-vector-icons": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
+ "integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "yargs": "^16.1.1"
+ },
+ "bin": {
+ "fa5-upgrade": "bin/fa5-upgrade.sh",
+ "generate-icon": "bin/generate-icon.js"
+ }
+ },
+ "node_modules/react-native-vector-icons/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/react-native-vector-icons/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/react-native-vector-icons/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/react-native-web": {
+ "version": "0.19.10",
+ "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.10.tgz",
+ "integrity": "sha512-IQoHiTQq8egBCVVwmTrYcFLgEFyb4LMZYEktHn4k22JMk9+QTCEz5WTfvr+jdNoeqj/7rtE81xgowKbfGO74qg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.6",
+ "@react-native/normalize-color": "^2.1.0",
+ "fbjs": "^3.0.4",
+ "inline-style-prefixer": "^6.0.1",
+ "memoize-one": "^6.0.0",
+ "nullthrows": "^1.1.1",
+ "postcss-value-parser": "^4.2.0",
+ "styleq": "^0.1.3"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/react-native-web/node_modules/memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "node_modules/react-native-webview": {
+ "version": "13.6.4",
+ "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.6.4.tgz",
+ "integrity": "sha512-AdgmaMBHPcyERTvng9eSGgHX6AleyUlSusWAxngSOSdiYGgHW81T6C5A8j/ImJAF9oZg0bQDxp43Hu56tzENZQ==",
+ "dependencies": {
+ "escape-string-regexp": "2.0.0",
+ "invariant": "2.2.4"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-webview/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/react-native/node_modules/@react-native/normalize-colors": {
+ "version": "0.73.2",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz",
+ "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w=="
+ },
+ "node_modules/react-native/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-native/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-native/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-native/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-native/node_modules/deprecated-react-native-prop-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz",
+ "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==",
+ "dependencies": {
+ "@react-native/normalize-colors": "^0.73.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/react-native/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-native/node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/react-native/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-native/node_modules/scheduler": {
+ "version": "0.24.0-canary-efb381bbf-20230505",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz",
+ "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/react-native/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-native/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
+ "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-shallow-renderer": {
+ "version": "16.15.0",
+ "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz",
+ "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/readable-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ },
+ "node_modules/recast": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
+ "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
+ "dependencies": {
+ "ast-types": "0.15.2",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/recast/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/reflect.getprototypeof": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
+ "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0",
+ "get-intrinsic": "^1.2.3",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/rehackt": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.5.tgz",
+ "integrity": "sha512-BI1rV+miEkaHj8zd2n+gaMgzu/fKz7BGlb4zZ6HAiY9adDmJMkaDcmuXlJFv0eyKUob+oszs3/2gdnXUrzx2Tg==",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/remove-trailing-slash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
+ "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "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/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/requireg": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz",
+ "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==",
+ "dependencies": {
+ "nested-error-stacks": "~2.0.1",
+ "rc": "~1.2.7",
+ "resolve": "~1.7.1"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/requireg/node_modules/resolve": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
+ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "dependencies": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.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": "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.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/response-iterator": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
+ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/rfdc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
+ "dev": true
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rtl-detect": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz",
+ "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ=="
+ },
+ "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/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
+ "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/safe-json-stringify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
+ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "optional": true
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+ },
+ "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/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
+ },
+ "node_modules/semver-regex": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz",
+ "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/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/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/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/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/sentry-expo": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/sentry-expo/-/sentry-expo-7.2.0.tgz",
+ "integrity": "sha512-stVE2B1RgHxpcup8XU1UIGhoI3cta63guExInl6WYx3d5HsvIu8PZ0yDJnJGflYi9cKPAUCxErIQXMTrS0JQEw==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.7.0",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/react-native": "5.17.0",
+ "@sentry/types": "7.81.1",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "peerDependencies": {
+ "expo": ">=47.0.0",
+ "expo-application": "*",
+ "expo-constants": "*",
+ "expo-device": "*"
+ }
+ },
+ "node_modules/sentry-expo/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sentry-expo/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/serialize-error": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
+ "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "dependencies": {
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
+ "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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/simple-plist": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz",
+ "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==",
+ "dependencies": {
+ "bplist-creator": "0.1.0",
+ "bplist-parser": "0.3.1",
+ "plist": "^3.0.5"
+ }
+ },
+ "node_modules/simple-plist/node_modules/bplist-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "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/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/slice-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==",
+ "dev": true
+ },
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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-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/split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dependencies": {
+ "through": "2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "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.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "node_modules/stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "dependencies": {
+ "type-fest": "^0.7.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/stream-buffers": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
+ "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==",
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "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.prototype.matchall": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+ "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "regexp.prototype.flags": "^1.5.0",
+ "set-function-name": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-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/strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ },
+ "node_modules/structured-headers": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz",
+ "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="
+ },
+ "node_modules/styleq": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz",
+ "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="
+ },
+ "node_modules/subscriptions-transport-ws": {
+ "version": "0.9.19",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
+ "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
+ "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
+ "dependencies": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependencies": {
+ "graphql": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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/sucrase": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "7.1.6",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sucrase/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/sucrase/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sudo-prompt": {
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
+ "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
+ },
+ "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.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "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/symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "dev": true,
+ "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/table/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/table/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/table/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/table/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==",
+ "dev": true
+ },
+ "node_modules/table/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/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/temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "dependencies": {
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/temp/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/tempy": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
+ "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "dependencies": {
+ "del": "^6.0.0",
+ "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/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/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.27.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
+ "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.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/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=="
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "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/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/traverse": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz",
+ "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+ },
+ "node_modules/ts-invariant": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
+ "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dev": true,
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "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-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.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/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+ "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ua-parser-js": {
+ "version": "0.7.37",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz",
+ "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unimodules-app-loader": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/unimodules-app-loader/-/unimodules-app-loader-4.5.0.tgz",
+ "integrity": "sha512-q/Xug4K6/20876Xac+tjOLOOAeHEu2zF66LNN/5c8EV4WPEe/+RYZEljN/woQt17KPIB2eyel9dc+d6qUMjUOg=="
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "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/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA=="
+ },
+ "node_modules/use-latest-callback": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz",
+ "integrity": "sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==",
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/use-memo-one": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
+ "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "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.4.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
+ "dev": true
+ },
+ "node_modules/valid-url": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
+ "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA=="
+ },
+ "node_modules/validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "dependencies": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vlq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
+ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/whatwg-fetch": {
+ "version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
+ "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/whatwg-url-without-unicode": {
+ "version": "8.0.0-3",
+ "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz",
+ "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==",
+ "dependencies": {
+ "buffer": "^5.4.3",
+ "punycode": "^2.1.1",
+ "webidl-conversions": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/whatwg-url-without-unicode/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/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==",
+ "dev": true,
+ "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/which-builtin-type": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
+ "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "dev": true,
+ "dependencies": {
+ "function.prototype.name": "^1.1.5",
+ "has-tostringtag": "^1.0.0",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "dev": true,
+ "dependencies": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "node_modules/which-pm-runs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
+ "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.5",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wonka": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
+ "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg=="
+ },
+ "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": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "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/xcode": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz",
+ "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==",
+ "dependencies": {
+ "simple-plist": "^1.1.0",
+ "uuid": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/xcode/node_modules/uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/xml2js": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
+ "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xml2js/node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz",
+ "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "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": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "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": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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"
+ }
+ },
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
+ "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
+ "dependencies": {
+ "zen-observable": "0.8.15"
+ }
+ }
+ },
+ "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
+ },
+ "@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@apollo/client": {
+ "version": "3.9.5",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.5.tgz",
+ "integrity": "sha512-7y+c8MTPU+hhTwvcGVtMMGIgWduzrvG1mz5yJMRyqYbheBkkky3Lki6ADWVSBXG1lZoOtPYvB2zDgVfKb2HSsw==",
+ "requires": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@wry/caches": "^1.0.0",
+ "@wry/equality": "^0.5.6",
+ "@wry/trie": "^0.5.0",
+ "graphql-tag": "^2.12.6",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.18.0",
+ "prop-types": "^15.7.2",
+ "rehackt": "0.0.5",
+ "response-iterator": "^0.2.6",
+ "symbol-observable": "^4.0.0",
+ "ts-invariant": "^0.10.3",
+ "tslib": "^2.3.0",
+ "zen-observable-ts": "^1.2.5"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "requires": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw=="
+ },
+ "@babel/core": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "requires": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "requires": {
+ "@babel/types": "^7.22.15"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "requires": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.23.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
+ "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA=="
+ },
+ "@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "requires": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "requires": {
+ "@babel/types": "^7.23.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "requires": {
+ "@babel/types": "^7.22.15"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg=="
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ=="
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw=="
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "requires": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "requires": {
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA=="
+ },
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.23.3",
+ "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.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ }
+ },
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
+ "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz",
+ "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.23.9",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-decorators": "^7.23.3"
+ }
+ },
+ "@babel/plugin-proposal-export-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-default-from": "^7.23.3"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+ "requires": {
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.7"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w=="
+ },
+ "@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-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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz",
+ "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-default-from": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz",
+ "integrity": "sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-import-assertions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-import-attributes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
+ "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-class-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-class-static-block": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
+ "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.15"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-dynamic-import": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-export-namespace-from": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-flow-strip-types": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-flow": "^7.23.3"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
+ "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-json-strings": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
+ "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-numeric-separator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-object-assign": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.23.3.tgz",
+ "integrity": "sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-object-rest-spread": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
+ "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
+ "requires": {
+ "@babel/compat-data": "^7.23.3",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.23.3"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ }
+ },
+ "@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-optional-chaining": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-private-methods": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-private-property-in-object": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz",
+ "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz",
+ "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/types": "^7.23.4"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-development": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
+ "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "requires": {
+ "@babel/plugin-transform-react-jsx": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-self": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz",
+ "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-source": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz",
+ "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz",
+ "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz",
+ "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz",
+ "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
+ "requires": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@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-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.9",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.4",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.4",
+ "@babel/plugin-transform-classes": "^7.23.8",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.4",
+ "@babel/plugin-transform-for-of": "^7.23.6",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.4",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.9",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
+ "@babel/plugin-transform-numeric-separator": "^7.23.4",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@babel/plugin-transform-optional-chaining": "^7.23.4",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/preset-flow": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz",
+ "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-flow-strip-types": "^7.23.3"
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/preset-react": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz",
+ "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-react-display-name": "^7.23.3",
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
+ "@babel/plugin-transform-react-jsx-development": "^7.22.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.23.3"
+ }
+ },
+ "@babel/preset-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
+ }
+ },
+ "@babel/register": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz",
+ "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==",
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "find-cache-dir": "^2.0.0",
+ "make-dir": "^2.1.0",
+ "pirates": "^4.0.6",
+ "source-map-support": "^0.5.16"
+ }
+ },
+ "@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "@babel/runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
+ "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
+ "requires": {
+ "regenerator-runtime": "^0.14.0"
+ }
+ },
+ "@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "requires": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "requires": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@egjs/hammerjs": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
+ "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
+ "requires": {
+ "@types/hammerjs": "^2.0.36"
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ }
+ }
+ },
+ "@expo/bunyan": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
+ "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==",
+ "requires": {
+ "mv": "~2",
+ "safe-json-stringify": "~1",
+ "uuid": "^8.0.0"
+ }
+ },
+ "@expo/cli": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.17.5.tgz",
+ "integrity": "sha512-9cMquL/5bBfV73CbZcWipk3KZSo8mBqdgvkoWCtEtnnlm/879ayxzMWjVIgT5yV4w+X7+N6KkBSUIIj4t9Xqew==",
+ "requires": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/devcert": "^1.0.0",
+ "@expo/env": "~0.2.0",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "@expo/metro-config": "~0.17.0",
+ "@expo/osascript": "^2.0.31",
+ "@expo/package-manager": "^1.1.1",
+ "@expo/plist": "^0.1.0",
+ "@expo/prebuild-config": "6.7.4",
+ "@expo/rudder-sdk-node": "1.1.1",
+ "@expo/spawn-async": "1.5.0",
+ "@expo/xcpretty": "^4.3.0",
+ "@react-native/dev-middleware": "^0.73.6",
+ "@urql/core": "2.3.6",
+ "@urql/exchange-retry": "0.3.0",
+ "accepts": "^1.3.8",
+ "arg": "5.0.2",
+ "better-opn": "~3.0.2",
+ "bplist-parser": "^0.3.1",
+ "cacache": "^15.3.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.3.0",
+ "connect": "^3.7.0",
+ "debug": "^4.3.4",
+ "env-editor": "^0.4.1",
+ "find-yarn-workspace-root": "~2.0.0",
+ "form-data": "^3.0.1",
+ "freeport-async": "2.0.0",
+ "fs-extra": "~8.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.1.7",
+ "graphql": "15.8.0",
+ "graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
+ "internal-ip": "4.3.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
+ "js-yaml": "^3.13.1",
+ "json-schema-deref-sync": "^0.13.0",
+ "lodash.debounce": "^4.0.8",
+ "md5hex": "^1.0.0",
+ "minimatch": "^3.0.4",
+ "minipass": "3.3.6",
+ "node-fetch": "^2.6.7",
+ "node-forge": "^1.3.1",
+ "npm-package-arg": "^7.0.0",
+ "open": "^8.3.0",
+ "ora": "3.4.0",
+ "picomatch": "^3.0.1",
+ "pretty-bytes": "5.6.0",
+ "progress": "2.0.3",
+ "prompts": "^2.3.2",
+ "qrcode-terminal": "0.11.0",
+ "require-from-string": "^2.0.2",
+ "requireg": "^0.2.2",
+ "resolve": "^1.22.2",
+ "resolve-from": "^5.0.0",
+ "resolve.exports": "^2.0.2",
+ "semver": "^7.5.3",
+ "send": "^0.18.0",
+ "slugify": "^1.3.4",
+ "source-map-support": "~0.5.21",
+ "stacktrace-parser": "^0.1.10",
+ "structured-headers": "^0.4.1",
+ "tar": "^6.0.5",
+ "temp-dir": "^2.0.0",
+ "tempy": "^0.7.1",
+ "terminal-link": "^2.1.1",
+ "text-table": "^0.2.0",
+ "url-join": "4.0.0",
+ "wrap-ansi": "^7.0.0",
+ "ws": "^8.12.1"
+ },
+ "dependencies": {
+ "@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "requires": {
+ "cross-spawn": "^6.0.5"
+ }
+ },
+ "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=="
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ }
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "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"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "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"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "requires": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@expo/config": {
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-8.5.4.tgz",
+ "integrity": "sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~7.8.2",
+ "@expo/config-types": "^50.0.0",
+ "@expo/json-file": "^8.2.37",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "slugify": "^1.3.4",
+ "sucrase": "3.34.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@expo/config-plugins": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.4.tgz",
+ "integrity": "sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==",
+ "requires": {
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/fingerprint": "^0.6.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/plist": "^0.1.0",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.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=="
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@expo/config-types": {
+ "version": "50.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz",
+ "integrity": "sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw=="
+ },
+ "@expo/devcert": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
+ "requires": {
+ "application-config-path": "^0.1.0",
+ "command-exists": "^1.2.4",
+ "debug": "^3.1.0",
+ "eol": "^0.9.1",
+ "get-port": "^3.2.0",
+ "glob": "^7.1.2",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "password-prompt": "^1.0.4",
+ "rimraf": "^2.6.2",
+ "sudo-prompt": "^8.2.0",
+ "tmp": "^0.0.33",
+ "tslib": "^2.4.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"
+ }
+ }
+ }
+ },
+ "@expo/env": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.2.1.tgz",
+ "integrity": "sha512-deZmRS7Dvp18VM8s559dq/ZjPlV1D9vtLoLXwHmCK/JYOvtNptdKsfxcWjI7ewmo6ln2PqgNI9HRI74q6Wk2eA==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "debug": "^4.3.4",
+ "dotenv": "~16.0.3",
+ "dotenv-expand": "~10.0.0",
+ "getenv": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@expo/fingerprint": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz",
+ "integrity": "sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==",
+ "requires": {
+ "@expo/spawn-async": "^1.5.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.4",
+ "find-up": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^3.1.0",
+ "resolve-from": "^5.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"
+ }
+ }
+ }
+ },
+ "@expo/image-utils": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.1.tgz",
+ "integrity": "sha512-EZb+VHSmw+a5s2hS9qksTcWylY0FDaIAVufcxoaRS9tHIXLjW5zcKW7Rhj9dSEbZbRVy9yXXdHKa3GQdUQIOFw==",
+ "requires": {
+ "@expo/spawn-async": "1.5.0",
+ "chalk": "^4.0.0",
+ "fs-extra": "9.0.0",
+ "getenv": "^1.0.0",
+ "jimp-compact": "0.16.1",
+ "node-fetch": "^2.6.0",
+ "parse-png": "^2.1.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "tempy": "0.3.0"
+ },
+ "dependencies": {
+ "@expo/spawn-async": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz",
+ "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==",
+ "requires": {
+ "cross-spawn": "^6.0.5"
+ }
+ },
+ "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=="
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ }
+ }
+ },
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg=="
+ },
+ "fs-extra": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
+ },
+ "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"
+ }
+ },
+ "temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ=="
+ },
+ "tempy": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "requires": {
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ=="
+ },
+ "unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "requires": {
+ "crypto-random-string": "^1.0.0"
+ }
+ },
+ "universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@expo/json-file": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz",
+ "integrity": "sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^2.2.2",
+ "write-file-atomic": "^2.3.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ }
+ }
+ },
+ "@expo/metro-config": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.17.4.tgz",
+ "integrity": "sha512-PxqDMuVjXQeboa6Aj8kNj4iTxIpwpfoYlF803qOjf1LE1ePlREnWNwqy65ESCBnCmekYIO5hhm1Nksa+xCvuyg==",
+ "requires": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.5",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "@expo/config": "~8.5.0",
+ "@expo/env": "~0.2.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/spawn-async": "^1.7.2",
+ "babel-preset-fbjs": "^3.4.0",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "find-yarn-workspace-root": "~2.0.0",
+ "fs-extra": "^9.1.0",
+ "getenv": "^1.0.0",
+ "glob": "^7.2.3",
+ "jsc-safe-url": "^0.2.4",
+ "lightningcss": "~1.19.0",
+ "postcss": "~8.4.32",
+ "resolve-from": "^5.0.0",
+ "sucrase": "3.34.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"
+ }
+ }
+ }
+ },
+ "@expo/osascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.0.tgz",
+ "integrity": "sha512-bOhuFnlRaS7CU33+rFFIWdcET/Vkyn1vsN8BYFwCDEF5P1fVVvYN7bFOsQLTMD3nvi35C1AGmtqUr/Wfv8Xaow==",
+ "requires": {
+ "@expo/spawn-async": "^1.5.0",
+ "exec-async": "^2.2.0"
+ }
+ },
+ "@expo/package-manager": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.4.2.tgz",
+ "integrity": "sha512-LKdo/6y4W7llZ6ghsg1kdx2CeH/qR/c6QI/JI8oPUvppsZoeIYjSkdflce978fAMfR8IXoi0wt0jA2w0kWpwbg==",
+ "requires": {
+ "@expo/json-file": "^8.2.37",
+ "@expo/spawn-async": "^1.5.0",
+ "ansi-regex": "^5.0.0",
+ "chalk": "^4.0.0",
+ "find-up": "^5.0.0",
+ "find-yarn-workspace-root": "~2.0.0",
+ "js-yaml": "^3.13.1",
+ "micromatch": "^4.0.2",
+ "npm-package-arg": "^7.0.0",
+ "ora": "^3.4.0",
+ "split": "^1.0.1",
+ "sudo-prompt": "9.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=="
+ },
+ "sudo-prompt": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
+ "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@expo/plist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz",
+ "integrity": "sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==",
+ "requires": {
+ "@xmldom/xmldom": "~0.7.7",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "@expo/prebuild-config": {
+ "version": "6.7.4",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz",
+ "integrity": "sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA==",
+ "requires": {
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/image-utils": "^0.4.0",
+ "@expo/json-file": "^8.2.37",
+ "debug": "^4.3.1",
+ "fs-extra": "^9.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "xml2js": "0.6.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@expo/react-native-action-sheet": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/react-native-action-sheet/-/react-native-action-sheet-4.0.1.tgz",
+ "integrity": "sha512-FwCFpjpB6yzrK8CIWssLlh/i6zQFytFBiJfNdz0mJ2ckU4hWk8SrjB37P0Q4kF7w0bnIdYzPgRbdPR9hnfFqPw==",
+ "requires": {
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
+ "@expo/rudder-sdk-node": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz",
+ "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==",
+ "requires": {
+ "@expo/bunyan": "^4.0.0",
+ "@segment/loosely-validate-event": "^2.0.0",
+ "fetch-retry": "^4.1.1",
+ "md5": "^2.2.1",
+ "node-fetch": "^2.6.1",
+ "remove-trailing-slash": "^0.1.0",
+ "uuid": "^8.3.2"
+ }
+ },
+ "@expo/sdk-runtime-versions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz",
+ "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="
+ },
+ "@expo/spawn-async": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
+ "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
+ "requires": {
+ "cross-spawn": "^7.0.3"
+ }
+ },
+ "@expo/vector-icons": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.0.tgz",
+ "integrity": "sha512-5orm59pdnBQlovhU9k4DbjMUZBHNlku7IRgFY56f7pcaaCnXq9yaLJoOQl9sMwNdFzf4gnkTyHmR5uN10mI9rA=="
+ },
+ "@expo/xcpretty": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz",
+ "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==",
+ "requires": {
+ "@babel/code-frame": "7.10.4",
+ "chalk": "^4.1.0",
+ "find-up": "^5.0.0",
+ "js-yaml": "^4.1.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ },
+ "@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="
+ },
+ "@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "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==",
+ "dev": true
+ },
+ "@ide/backoff": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@ide/backoff/-/backoff-1.0.0.tgz",
+ "integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g=="
+ },
+ "@isaacs/ttlcache": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz",
+ "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA=="
+ },
+ "@jest/create-cache-key-function": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz",
+ "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==",
+ "requires": {
+ "@jest/types": "^29.6.3"
+ }
+ },
+ "@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "requires": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "requires": {
+ "@sinclair/typebox": "^0.27.8"
+ }
+ },
+ "@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "requires": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "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/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@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=="
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "@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"
+ }
+ },
+ "@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "requires": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "requires": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@react-native-async-storage/async-storage": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz",
+ "integrity": "sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==",
+ "requires": {
+ "merge-options": "^3.0.4"
+ }
+ },
+ "@react-native-community/cli": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz",
+ "integrity": "sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==",
+ "requires": {
+ "@react-native-community/cli-clean": "12.3.2",
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-doctor": "12.3.2",
+ "@react-native-community/cli-hermes": "12.3.2",
+ "@react-native-community/cli-plugin-metro": "12.3.2",
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native-community/cli-types": "12.3.2",
+ "chalk": "^4.1.2",
+ "commander": "^9.4.1",
+ "deepmerge": "^4.3.0",
+ "execa": "^5.0.0",
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.1.0",
+ "graceful-fs": "^4.1.3",
+ "prompts": "^2.4.2",
+ "semver": "^7.5.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=="
+ },
+ "commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="
+ },
+ "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"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@react-native-community/cli-clean": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz",
+ "integrity": "sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==",
+ "requires": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.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=="
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "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"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@react-native-community/cli-config": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.2.tgz",
+ "integrity": "sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==",
+ "requires": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "cosmiconfig": "^5.1.0",
+ "deepmerge": "^4.3.0",
+ "glob": "^7.1.3",
+ "joi": "^17.2.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=="
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@react-native-community/cli-debugger-ui": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz",
+ "integrity": "sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==",
+ "requires": {
+ "serve-static": "^1.13.1"
+ }
+ },
+ "@react-native-community/cli-doctor": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz",
+ "integrity": "sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==",
+ "requires": {
+ "@react-native-community/cli-config": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "command-exists": "^1.2.8",
+ "deepmerge": "^4.3.0",
+ "envinfo": "^7.10.0",
+ "execa": "^5.0.0",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5",
+ "node-stream-zip": "^1.9.1",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1",
+ "yaml": "^2.2.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=="
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "requires": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "yaml": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA=="
+ }
+ }
+ },
+ "@react-native-community/cli-hermes": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz",
+ "integrity": "sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==",
+ "requires": {
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "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"
+ }
+ }
+ }
+ },
+ "@react-native-community/cli-platform-android": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz",
+ "integrity": "sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==",
+ "requires": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.2.4",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.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=="
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "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"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@react-native-community/cli-platform-ios": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz",
+ "integrity": "sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==",
+ "requires": {
+ "@react-native-community/cli-tools": "12.3.2",
+ "chalk": "^4.1.2",
+ "execa": "^5.0.0",
+ "fast-xml-parser": "^4.0.12",
+ "glob": "^7.1.3",
+ "ora": "^5.4.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=="
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "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"
+ }
+ },
+ "ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "requires": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@react-native-community/cli-plugin-metro": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz",
+ "integrity": "sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g=="
+ },
+ "@react-native-community/cli-server-api": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz",
+ "integrity": "sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==",
+ "requires": {
+ "@react-native-community/cli-debugger-ui": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "compression": "^1.7.1",
+ "connect": "^3.6.5",
+ "errorhandler": "^1.5.1",
+ "nocache": "^3.0.1",
+ "pretty-format": "^26.6.2",
+ "serve-static": "^1.13.1",
+ "ws": "^7.5.1"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
+ }
+ }
+ },
+ "@react-native-community/cli-tools": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz",
+ "integrity": "sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==",
+ "requires": {
+ "appdirsjs": "^1.2.4",
+ "chalk": "^4.1.2",
+ "find-up": "^5.0.0",
+ "mime": "^2.4.1",
+ "node-fetch": "^2.6.0",
+ "open": "^6.2.0",
+ "ora": "^5.4.1",
+ "semver": "^7.5.2",
+ "shell-quote": "^1.7.3",
+ "sudo-prompt": "^9.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=="
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw=="
+ },
+ "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"
+ }
+ },
+ "open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+ "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "requires": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "sudo-prompt": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
+ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ },
+ "supports-color": {
+ "version": "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"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@react-native-community/cli-types": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.2.tgz",
+ "integrity": "sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==",
+ "requires": {
+ "joi": "^17.2.1"
+ }
+ },
+ "@react-native-community/masked-view": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.10.tgz",
+ "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ=="
+ },
+ "@react-native/assets-registry": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz",
+ "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg=="
+ },
+ "@react-native/babel-plugin-codegen": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz",
+ "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==",
+ "requires": {
+ "@react-native/codegen": "0.73.3"
+ }
+ },
+ "@react-native/babel-preset": {
+ "version": "0.73.21",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz",
+ "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==",
+ "requires": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.18.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.18.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.20.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.20.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.20.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@react-native/babel-plugin-codegen": "0.73.4",
+ "babel-plugin-transform-flow-enums": "^0.0.2",
+ "react-refresh": "^0.14.0"
+ }
+ },
+ "@react-native/codegen": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz",
+ "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==",
+ "requires": {
+ "@babel/parser": "^7.20.0",
+ "flow-parser": "^0.206.0",
+ "glob": "^7.1.1",
+ "invariant": "^2.2.4",
+ "jscodeshift": "^0.14.0",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@react-native/community-cli-plugin": {
+ "version": "0.73.16",
+ "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz",
+ "integrity": "sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==",
+ "requires": {
+ "@react-native-community/cli-server-api": "12.3.2",
+ "@react-native-community/cli-tools": "12.3.2",
+ "@react-native/dev-middleware": "0.73.7",
+ "@react-native/metro-babel-transformer": "0.73.15",
+ "chalk": "^4.0.0",
+ "execa": "^5.1.1",
+ "metro": "^0.80.3",
+ "metro-config": "^0.80.3",
+ "metro-core": "^0.80.3",
+ "node-fetch": "^2.2.0",
+ "readline": "^1.3.0"
+ },
+ "dependencies": {
+ "@react-native/dev-middleware": {
+ "version": "0.73.7",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz",
+ "integrity": "sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==",
+ "requires": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0"
+ }
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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"
+ }
+ },
+ "open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.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"
+ }
+ }
+ }
+ },
+ "@react-native/debugger-frontend": {
+ "version": "0.73.3",
+ "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz",
+ "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw=="
+ },
+ "@react-native/dev-middleware": {
+ "version": "0.73.8",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz",
+ "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==",
+ "requires": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.73.3",
+ "chrome-launcher": "^0.15.2",
+ "chromium-edge-launcher": "^1.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "open": "^7.0.3",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0",
+ "ws": "^6.2.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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "@react-native/gradle-plugin": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz",
+ "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg=="
+ },
+ "@react-native/js-polyfills": {
+ "version": "0.73.1",
+ "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz",
+ "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g=="
+ },
+ "@react-native/metro-babel-transformer": {
+ "version": "0.73.15",
+ "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz",
+ "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==",
+ "requires": {
+ "@babel/core": "^7.20.0",
+ "@react-native/babel-preset": "0.73.21",
+ "hermes-parser": "0.15.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@react-native/normalize-color": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz",
+ "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA=="
+ },
+ "@react-native/normalize-colors": {
+ "version": "0.72.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz",
+ "integrity": "sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw=="
+ },
+ "@react-native/virtualized-lists": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz",
+ "integrity": "sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==",
+ "requires": {
+ "invariant": "^2.2.4",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@react-navigation/bottom-tabs": {
+ "version": "6.5.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.8.tgz",
+ "integrity": "sha512-0aa/jXea+LyBgR5NoRNWGKw0aFhjHwCkusigMRXIrCA4kINauDcAO0w0iFbZeKfaTCVAix5kK5UxDJJ2aJpevg==",
+ "requires": {
+ "@react-navigation/elements": "^1.3.18",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ }
+ },
+ "@react-navigation/core": {
+ "version": "6.4.10",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.10.tgz",
+ "integrity": "sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==",
+ "requires": {
+ "@react-navigation/routers": "^6.1.9",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.7"
+ }
+ },
+ "@react-navigation/drawer": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.7.tgz",
+ "integrity": "sha512-9hSJySPQcG33vV199uzkI3jHewvAGjVFF2bhC28TkQYDKtp/DmtTvjCEiecOm+qep1Qp4ksh5vBo2P0A1hF6vQ==",
+ "requires": {
+ "@react-navigation/elements": "^1.3.22",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ }
+ },
+ "@react-navigation/elements": {
+ "version": "1.3.22",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.22.tgz",
+ "integrity": "sha512-HYKucs0TwQT8zMvgoZbJsY/3sZfzeP8Dk9IDv4agst3zlA7ReTx4+SROCG6VGC7JKqBCyQykHIwkSwxhapoc+Q=="
+ },
+ "@react-navigation/native": {
+ "version": "6.1.10",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.10.tgz",
+ "integrity": "sha512-jDG89TbZItY7W7rIcS1RqT63vWOPD4XuQLNKqZO0DY7mKnKh/CGBd0eg3nDMXUl143Qp//IxJKe2TfBQRDEU4A==",
+ "requires": {
+ "@react-navigation/core": "^6.4.10",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ }
+ },
+ "@react-navigation/routers": {
+ "version": "6.1.9",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz",
+ "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==",
+ "requires": {
+ "nanoid": "^3.1.23"
+ }
+ },
+ "@react-navigation/stack": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.0.11.tgz",
+ "integrity": "sha512-Osc2mXi0Zh/u92HRCceDqVfVnypTa2sZgYMJDU+vDhHz38negtbCG+cjje6nApSjwC5WTVhYP4OoD5WBSh51+g==",
+ "requires": {
+ "@react-navigation/elements": "^1.2.1",
+ "color": "^3.1.3",
+ "warn-once": "^0.1.0"
+ },
+ "dependencies": {
+ "color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "requires": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ }
+ }
+ },
+ "@segment/loosely-validate-event": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
+ "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
+ "requires": {
+ "component-type": "^1.2.1",
+ "join-component": "^1.1.0"
+ }
+ },
+ "@sentry-internal/tracing": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.81.1.tgz",
+ "integrity": "sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==",
+ "requires": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ }
+ },
+ "@sentry/browser": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.81.1.tgz",
+ "integrity": "sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw==",
+ "requires": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/replay": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ }
+ },
+ "@sentry/cli": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.25.2.tgz",
+ "integrity": "sha512-lgt1QPaCfs/QZNXwyw3gvuBR2/CLwFSdU/oT7Bpxwizz8XVXhlKS98zJF1UVCy7SecsDSoOI0Z+B+X658cpquQ==",
+ "requires": {
+ "@sentry/cli-darwin": "2.25.2",
+ "@sentry/cli-linux-arm": "2.25.2",
+ "@sentry/cli-linux-arm64": "2.25.2",
+ "@sentry/cli-linux-i686": "2.25.2",
+ "@sentry/cli-linux-x64": "2.25.2",
+ "@sentry/cli-win32-i686": "2.25.2",
+ "@sentry/cli-win32-x64": "2.25.2",
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ }
+ },
+ "@sentry/cli-darwin": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.25.2.tgz",
+ "integrity": "sha512-o1d5NnVUrc1dxDm56k7Co8tSTcOuxbApdxweVXXsiq20HblZCyIi7WxxRkAg4RfKx594sKGiw9uCVvECi+9UpA==",
+ "optional": true
+ },
+ "@sentry/cli-linux-arm": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.25.2.tgz",
+ "integrity": "sha512-n398jd87Ymejt5k/6RjCEjXAvntOWuqhBDANxzhgr5/9FzbODJ844g1mOpcxiIlduzKSzWlPbTEKQulMp2Mt4w==",
+ "optional": true
+ },
+ "@sentry/cli-linux-arm64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.25.2.tgz",
+ "integrity": "sha512-lm5jaigV6xu9Gwo0wNk+bX6yVkl5k3gNXcSXcKCISFo+Teb7Zhf9IyXANPm4VY2DdiZAjPJt8gS1bu+Mn7irtQ==",
+ "optional": true
+ },
+ "@sentry/cli-linux-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.25.2.tgz",
+ "integrity": "sha512-/YYx2gfqO5mkxyBgFcnDbZzkZ2+2xNarwrqWcqq3Qw0XlO9DWAQB2G+twV1RW/UfSU6fFIWErn94efh2EWmyzQ==",
+ "optional": true
+ },
+ "@sentry/cli-linux-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.25.2.tgz",
+ "integrity": "sha512-rRafqy84R5mYA4JEfNsUeN10af5euJnK7fgqYM0mJIaplHC2YEXT9aUYWoryWPZiYqmdNUhsA6lX7iynSW9pZw==",
+ "optional": true
+ },
+ "@sentry/cli-win32-i686": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.25.2.tgz",
+ "integrity": "sha512-plT/gi41F+67g9AwrEm4avRXnjCtHCcnRnJ6zPu/iINGap8mvYQJSU/qM0oGwV6hRGg3JJN66XIvJPIuIs8P8w==",
+ "optional": true
+ },
+ "@sentry/cli-win32-x64": {
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.25.2.tgz",
+ "integrity": "sha512-Mb6mAyPi9gIfpzF5MTk0JXgFP9nxka3Fb7JYn6AY4RW++sOjapkTrcXL2Gp3ZfQkWj5rFTgln4+eNmZPsD2gzA==",
+ "optional": true
+ },
+ "@sentry/core": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.81.1.tgz",
+ "integrity": "sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==",
+ "requires": {
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ }
+ },
+ "@sentry/hub": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.81.1.tgz",
+ "integrity": "sha512-25cvsI3HKiRLJBZGFC8ntuy7/yB8M1w8YLTjr3tIqydYmjFUX7f18w0iuWEtd204d8OQSPBJDapbGMdfkE5x6w==",
+ "requires": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ }
+ },
+ "@sentry/integrations": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.81.1.tgz",
+ "integrity": "sha512-DN5ONn0/LX5HHVPf1EBGHFssIZaZmLgkqUIeMqCNYBpB4DiOrJANnGwTcWKDPphqhdPxjnPv9AGRLaU0PdvvZQ==",
+ "requires": {
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "localforage": "^1.8.1"
+ }
+ },
+ "@sentry/react": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.81.1.tgz",
+ "integrity": "sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw==",
+ "requires": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1",
+ "hoist-non-react-statics": "^3.3.2"
+ }
+ },
+ "@sentry/react-native": {
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-5.17.0.tgz",
+ "integrity": "sha512-d0TLASMcpUtvw0A8zNznRyCskfH0kwfb3GzqMXXpfPJAG8vsBnY15EFOIc+czOLt6FbV9o3567bHYWhSW51Ssg==",
+ "requires": {
+ "@sentry/browser": "7.81.1",
+ "@sentry/cli": "2.25.2",
+ "@sentry/core": "7.81.1",
+ "@sentry/hub": "7.81.1",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ }
+ },
+ "@sentry/replay": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.81.1.tgz",
+ "integrity": "sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw==",
+ "requires": {
+ "@sentry-internal/tracing": "7.81.1",
+ "@sentry/core": "7.81.1",
+ "@sentry/types": "7.81.1",
+ "@sentry/utils": "7.81.1"
+ }
+ },
+ "@sentry/types": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.81.1.tgz",
+ "integrity": "sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw=="
+ },
+ "@sentry/utils": {
+ "version": "7.81.1",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.81.1.tgz",
+ "integrity": "sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==",
+ "requires": {
+ "@sentry/types": "7.81.1"
+ }
+ },
+ "@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
+ },
+ "@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "requires": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "@types/geojson": {
+ "version": "7946.0.14",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
+ "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
+ },
+ "@types/hammerjs": {
+ "version": "2.0.45",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz",
+ "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ=="
+ },
+ "@types/hoist-non-react-statics": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz",
+ "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==",
+ "requires": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "20.11.19",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
+ "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
+ "requires": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "dev": true
+ },
+ "@types/prop-types": {
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+ },
+ "@types/react": {
+ "version": "18.2.57",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.57.tgz",
+ "integrity": "sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
+ },
+ "@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+ },
+ "@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+ },
+ "@urql/core": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz",
+ "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==",
+ "requires": {
+ "@graphql-typed-document-node/core": "^3.1.0",
+ "wonka": "^4.0.14"
+ }
+ },
+ "@urql/exchange-retry": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz",
+ "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==",
+ "requires": {
+ "@urql/core": ">=2.3.1",
+ "wonka": "^4.0.14"
+ }
+ },
+ "@wry/caches": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz",
+ "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==",
+ "requires": {
+ "tslib": "^2.3.0"
+ }
+ },
+ "@wry/context": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz",
+ "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==",
+ "requires": {
+ "tslib": "^2.3.0"
+ }
+ },
+ "@wry/equality": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz",
+ "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==",
+ "requires": {
+ "tslib": "^2.3.0"
+ }
+ },
+ "@wry/trie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz",
+ "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==",
+ "requires": {
+ "tslib": "^2.3.0"
+ }
+ },
+ "@xmldom/xmldom": {
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz",
+ "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g=="
+ },
+ "@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
+ },
+ "abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "requires": {
+ "event-target-shim": "^5.0.0"
+ }
+ },
+ "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": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "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
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "requires": {
+ "debug": "4"
+ }
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "anser": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
+ "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="
+ },
+ "ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "requires": {
+ "type-fest": "^0.21.3"
+ }
+ },
+ "ansi-fragments": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
+ "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
+ "requires": {
+ "colorette": "^1.0.7",
+ "slice-ansi": "^2.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ },
+ "colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "dependencies": {
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ }
+ }
+ },
+ "appdirsjs": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
+ "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ },
+ "application-config-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ },
+ "arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "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"
+ }
+ },
+ "array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ }
+ },
+ "array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.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.filter": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
+ "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array.prototype.findlastindex": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
+ "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.tosorted": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
+ "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.1.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ }
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "assert": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
+ "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "is-nan": "^1.3.2",
+ "object-is": "^1.1.5",
+ "object.assign": "^4.1.4",
+ "util": "^0.12.5"
+ }
+ },
+ "ast-types": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
+ "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
+ "requires": {
+ "tslib": "^2.0.1"
+ }
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "asynciterator.prototype": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
+ "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "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=="
+ },
+ "available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "requires": {
+ "possible-typed-array-names": "^1.0.0"
+ }
+ },
+ "babel-core": {
+ "version": "7.0.0-bridge.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg=="
+ },
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
+ "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
+ "requires": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "semver": "^6.3.1"
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
+ }
+ },
+ "babel-plugin-react-native-web": {
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz",
+ "integrity": "sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw=="
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ },
+ "babel-plugin-transform-flow-enums": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
+ "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
+ "requires": {
+ "@babel/plugin-syntax-flow": "^7.12.1"
+ }
+ },
+ "babel-preset-expo": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-10.0.1.tgz",
+ "integrity": "sha512-uWIGmLfbP3dS5+8nesxaW6mQs41d4iP7X82ZwRdisB/wAhKQmuJM9Y1jQe4006uNYkw6Phf2TT03ykLVro7KuQ==",
+ "requires": {
+ "@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.12.13",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/preset-env": "^7.20.0",
+ "@babel/preset-react": "^7.22.15",
+ "@react-native/babel-preset": "^0.73.18",
+ "babel-plugin-react-native-web": "~0.18.10",
+ "react-refresh": "0.14.0"
+ }
+ },
+ "babel-preset-fbjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
+ "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
+ "requires": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ }
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
+ },
+ "badgin": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.3.tgz",
+ "integrity": "sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "better-opn": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
+ "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
+ "requires": {
+ "open": "^8.0.4"
+ }
+ },
+ "big-integer": {
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "blueimp-md5": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
+ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
+ },
+ "bplist-creator": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
+ "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==",
+ "requires": {
+ "stream-buffers": "2.2.x"
+ }
+ },
+ "bplist-parser": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
+ "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "requires": {
+ "big-integer": "1.6.x"
+ }
+ },
+ "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"
+ }
+ },
+ "browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ },
+ "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=="
+ },
+ "builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ=="
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
+ },
+ "cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "requires": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "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"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ }
+ },
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "requires": {
+ "callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ=="
+ }
+ }
+ },
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001589",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
+ "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg=="
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+ }
+ }
+ },
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA=="
+ },
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
+ },
+ "chrome-launcher": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
+ "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
+ "requires": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0"
+ }
+ },
+ "chromium-edge-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz",
+ "integrity": "sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==",
+ "requires": {
+ "@types/node": "*",
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^1.0.0",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="
+ },
+ "cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ }
+ },
+ "cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "requires": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ }
+ }
+ },
+ "color-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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "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"
+ }
+ },
+ "command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+ },
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
+ "component-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
+ "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA=="
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "requires": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "core-js-compat": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
+ "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==",
+ "requires": {
+ "browserslist": "^4.22.3"
+ }
+ },
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "cross-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "requires": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow=="
+ },
+ "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-in-js-utils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
+ "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
+ "requires": {
+ "hyphenate-style-name": "^1.0.3"
+ }
+ },
+ "csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "dag-map": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
+ "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
+ },
+ "dayjs": {
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+ },
+ "decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
+ },
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "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
+ },
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
+ },
+ "default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "requires": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ }
+ },
+ "defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "requires": {
+ "clone": "^1.0.2"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
+ }
+ }
+ },
+ "define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ }
+ },
+ "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.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "requires": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "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"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "denodeify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
+ "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "deprecated-react-native-prop-types": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.2.3.tgz",
+ "integrity": "sha512-2rLTiMKidIFFYpIVM69UnQKngLqQfL6I11Ch8wGSBftS18FUXda+o2we2950X+1dmbgps28niI3qwyH4eX3Z1g==",
+ "requires": {
+ "@react-native/normalize-colors": "<0.73.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1"
+ }
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "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=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
+ },
+ "dotenv-expand": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
+ "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A=="
+ },
+ "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=="
+ },
+ "electron-to-chromium": {
+ "version": "1.4.679",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.679.tgz",
+ "integrity": "sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "env-editor": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
+ "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA=="
+ },
+ "envinfo": {
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
+ "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg=="
+ },
+ "eol": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "requires": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ }
+ },
+ "es-abstract": {
+ "version": "1.22.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
+ "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.1",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.0",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.1",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.14"
+ }
+ },
+ "es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true
+ },
+ "es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "requires": {
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
+ },
+ "es-iterator-helpers": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz",
+ "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==",
+ "dev": true,
+ "requires": {
+ "asynciterator.prototype": "^1.0.0",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.4",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.2",
+ "safe-array-concat": "^1.1.0"
+ }
+ },
+ "es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ }
+ },
+ "es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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=="
+ },
+ "eslint": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "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
+ },
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-standard": {
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz",
+ "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==",
+ "dev": true
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dev": true,
+ "requires": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ }
+ }
+ },
+ "eslint-plugin-node": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "dev": true,
+ "requires": {
+ "eslint-plugin-es": "^3.0.0",
+ "eslint-utils": "^2.0.0",
+ "ignore": "^5.1.1",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.10.1",
+ "semver": "^6.1.0"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-promise": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz",
+ "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==",
+ "dev": true
+ },
+ "eslint-plugin-react": {
+ "version": "7.33.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
+ "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.12",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-standard": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz",
+ "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ },
+ "espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "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=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ },
+ "event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
+ },
+ "eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "exec-async": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz",
+ "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw=="
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ },
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "expo": {
+ "version": "50.0.7",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-50.0.7.tgz",
+ "integrity": "sha512-lTqIrKOUTKHLdTuAaJzZihi1v7F8Ix1dOXVWMpToDy9zPC/s+fet0fbyXdFUxYsCUyuEDIB9tvejrTYZk8Hm0Q==",
+ "requires": {
+ "@babel/runtime": "^7.20.0",
+ "@expo/cli": "0.17.5",
+ "@expo/config": "8.5.4",
+ "@expo/config-plugins": "7.8.4",
+ "@expo/metro-config": "0.17.4",
+ "@expo/vector-icons": "^14.0.0",
+ "babel-preset-expo": "~10.0.1",
+ "expo-asset": "~9.0.2",
+ "expo-file-system": "~16.0.6",
+ "expo-font": "~11.10.3",
+ "expo-keep-awake": "~12.8.2",
+ "expo-modules-autolinking": "1.10.3",
+ "expo-modules-core": "1.11.9",
+ "fbemitter": "^3.0.0",
+ "whatwg-url-without-unicode": "8.0.0-3"
+ }
+ },
+ "expo-application": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.8.3.tgz",
+ "integrity": "sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA=="
+ },
+ "expo-asset": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-9.0.2.tgz",
+ "integrity": "sha512-PzYKME1MgUOoUvwtdzhAyXkjXOXGiSYqGKG/MsXwWr0Ef5wlBaBm2DCO9V6KYbng5tBPFu6hTjoRNil1tBOSow==",
+ "requires": {
+ "@react-native/assets-registry": "~0.73.1",
+ "blueimp-md5": "^2.10.0",
+ "expo-constants": "~15.4.0",
+ "expo-file-system": "~16.0.0",
+ "invariant": "^2.2.4",
+ "md5-file": "^3.2.3"
+ }
+ },
+ "expo-av": {
+ "version": "13.10.5",
+ "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-13.10.5.tgz",
+ "integrity": "sha512-w45oCoe+8PunDeM0rh/Ut6UaGh7OjEJOCjAiQy3nCxpA8FaXB17KaqpsvkAXIMvceHYWndH8+D29esUTS6wEsA=="
+ },
+ "expo-camera": {
+ "version": "14.0.5",
+ "resolved": "https://registry.npmjs.org/expo-camera/-/expo-camera-14.0.5.tgz",
+ "integrity": "sha512-rHCOEAjt0NOjYXMyKnrGruOMvPdKbhhJBMtpr8LfJPVprsxZTjFC+flQgX52tZZWxPa1Hn6qpGYUzxZhVakHCg==",
+ "requires": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "expo-constants": {
+ "version": "15.4.5",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-15.4.5.tgz",
+ "integrity": "sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg==",
+ "requires": {
+ "@expo/config": "~8.5.0"
+ }
+ },
+ "expo-dev-client": {
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-3.3.8.tgz",
+ "integrity": "sha512-6JpcxncWiWwq1w6SPrePpTa20z3D1qmAMMHd8f05lSCUPVBn4jTwpzrKEpGaA3EubLE5SEdxPVmvmyWw/oFFMQ==",
+ "requires": {
+ "expo-dev-launcher": "3.6.6",
+ "expo-dev-menu": "4.5.5",
+ "expo-dev-menu-interface": "1.7.2",
+ "expo-manifests": "~0.13.0",
+ "expo-updates-interface": "~0.15.1"
+ }
+ },
+ "expo-dev-launcher": {
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-3.6.6.tgz",
+ "integrity": "sha512-jVI1YZS1YJTrniIL53BOxSZUMyJCeDLuS9SlRx1vC3tnTTN3srg5pU/zCK/DifwbF7i6NtA1iLPSBVu2K4040A==",
+ "requires": {
+ "ajv": "8.11.0",
+ "expo-dev-menu": "4.5.5",
+ "expo-manifests": "~0.13.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "expo-dev-menu": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-4.5.5.tgz",
+ "integrity": "sha512-PcbI/SqAvueOIEtR1O0s+WvVD7yizQSqXisDSkBrTym3u8XZSN+K730kz2Z64ukY9YIPG4qWR4sd+9rcjsbMWw==",
+ "requires": {
+ "expo-dev-menu-interface": "1.7.2",
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "expo-dev-menu-interface": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.2.tgz",
+ "integrity": "sha512-V/geSB9rW0IPTR+d7E5CcvkV0uVUCE7SMHZqE/J0/dH06Wo8AahB16fimXeh5/hTL2Qztq8CQ41xpFUBoA9TEw=="
+ },
+ "expo-device": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/expo-device/-/expo-device-5.9.3.tgz",
+ "integrity": "sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w==",
+ "requires": {
+ "ua-parser-js": "^0.7.33"
+ }
+ },
+ "expo-eas-client": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/expo-eas-client/-/expo-eas-client-0.11.2.tgz",
+ "integrity": "sha512-SY7rVFxb4ut/OMTgR7A39Jg+8+hXwQNRpZd+RBpB+B5XV2STj/pWXHnGFhBayEF4umI4SxrOvisY90rlPWVO9Q=="
+ },
+ "expo-file-system": {
+ "version": "16.0.6",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-16.0.6.tgz",
+ "integrity": "sha512-ATCHL7nEg2WwKeamW/SDTR9jBEqM5wncFq594ftKS5QFmhKIrX48d9jyPFGnNq+6h8AGPg4QKh2KCA4OY49L4g=="
+ },
+ "expo-font": {
+ "version": "11.10.3",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.10.3.tgz",
+ "integrity": "sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ==",
+ "requires": {
+ "fontfaceobserver": "^2.1.0"
+ }
+ },
+ "expo-image-loader": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.6.0.tgz",
+ "integrity": "sha512-RHQTDak7/KyhWUxikn2yNzXL7i2cs16cMp6gEAgkHOjVhoCJQoOJ0Ljrt4cKQ3IowxgCuOrAgSUzGkqs7omj8Q=="
+ },
+ "expo-image-picker": {
+ "version": "14.7.1",
+ "resolved": "https://registry.npmjs.org/expo-image-picker/-/expo-image-picker-14.7.1.tgz",
+ "integrity": "sha512-ILQVOJgI3aEzrDmCFGDPtpAepYkn8mot8G7vfQ51BfFdQbzL6N3Wm1fS/ofdWlAZJl/qT2DwaIh5xYmf3SyGZA==",
+ "requires": {
+ "expo-image-loader": "~4.6.0"
+ }
+ },
+ "expo-json-utils": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.12.3.tgz",
+ "integrity": "sha512-4pypQdinpNc6XY9wsZk56njvzDh+B/9mISr7FPP3CVk1QGB1nSLh883/BCDSgnsephATZkC5HG+cdE60kCAR6A=="
+ },
+ "expo-keep-awake": {
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz",
+ "integrity": "sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g=="
+ },
+ "expo-localization": {
+ "version": "14.8.3",
+ "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-14.8.3.tgz",
+ "integrity": "sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw==",
+ "requires": {
+ "rtl-detect": "^1.0.2"
+ }
+ },
+ "expo-location": {
+ "version": "16.5.3",
+ "resolved": "https://registry.npmjs.org/expo-location/-/expo-location-16.5.3.tgz",
+ "integrity": "sha512-V+84TZIa5MWpIXPvurnlJS9VxuxF1d3ajufUeq2sTgUkI/PP0aLHwyk5wg05C4CwuvwoiaVV80WyEL23j1Mz0w=="
+ },
+ "expo-manifests": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.13.2.tgz",
+ "integrity": "sha512-l0Sia1WmLULx8V41K8RzGLsFoTe4qqthPRGpHjItsYn8ZB6lRrdTBM9OYp2McIflgqN1HAimUCQMFIwJyH+UmA==",
+ "requires": {
+ "@expo/config": "~8.5.0",
+ "expo-json-utils": "~0.12.0"
+ }
+ },
+ "expo-modules-autolinking": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz",
+ "integrity": "sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==",
+ "requires": {
+ "@expo/config": "~8.5.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "fast-glob": "^3.2.5",
+ "find-up": "^5.0.0",
+ "fs-extra": "^9.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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "expo-modules-core": {
+ "version": "1.11.9",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.11.9.tgz",
+ "integrity": "sha512-GTUb81vcPaF+5MtlBI1u9IjrZbGdF1ZUwz3u8Gc+rOLBblkZ7pYsj2mU/tu+k0khTckI9vcH4ZBksXWvE1ncjQ==",
+ "requires": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "expo-notifications": {
+ "version": "0.27.6",
+ "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.27.6.tgz",
+ "integrity": "sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA==",
+ "requires": {
+ "@expo/image-utils": "^0.4.0",
+ "@ide/backoff": "^1.0.0",
+ "abort-controller": "^3.0.0",
+ "assert": "^2.0.0",
+ "badgin": "^1.1.5",
+ "expo-application": "~5.8.0",
+ "expo-constants": "~15.4.0",
+ "fs-extra": "^9.1.0"
+ }
+ },
+ "expo-splash-screen": {
+ "version": "0.26.4",
+ "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.26.4.tgz",
+ "integrity": "sha512-2DwofTQ0FFQCsvDysm/msENsbyNsJiAJwK3qK/oXeizECAPqD7bK19J4z9kuEbr7ORPX9MLnTQYKl6kmX3keUg==",
+ "requires": {
+ "@expo/prebuild-config": "6.7.4"
+ }
+ },
+ "expo-status-bar": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.11.1.tgz",
+ "integrity": "sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg=="
+ },
+ "expo-structured-headers": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-3.7.2.tgz",
+ "integrity": "sha512-/nGOyeWUXSUy4aIYKJTwQOznRNs0yKqKPAyEE6jtwvOl9qvfDWx9xskNtShioggBhFAssFkV6RBbPn+xZMQtvw=="
+ },
+ "expo-task-manager": {
+ "version": "11.7.2",
+ "resolved": "https://registry.npmjs.org/expo-task-manager/-/expo-task-manager-11.7.2.tgz",
+ "integrity": "sha512-cmn7xg8+mGP7gX6deYZhvrCkKMkoBRJ+E4o5aL17Z/4ihXMfo/PFcQsrpuSYRLXzgidEw0kpppxhmYm21Jswwg==",
+ "requires": {
+ "unimodules-app-loader": "~4.5.0"
+ }
+ },
+ "expo-updates": {
+ "version": "0.24.11",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.24.11.tgz",
+ "integrity": "sha512-SWpjZj7VGWBZJtbVj0gbGY7uZYrE7b+sRRoj/K1ma2ckHwXtAAB8gYI95Zp0joBdRNAbEtoMHYXP66Nrj5l8Ng==",
+ "requires": {
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
+ "arg": "4.1.0",
+ "chalk": "^4.1.2",
+ "expo-eas-client": "~0.11.0",
+ "expo-manifests": "~0.13.0",
+ "expo-structured-headers": "~3.7.0",
+ "expo-updates-interface": "~0.15.1",
+ "fbemitter": "^3.0.0",
+ "resolve-from": "^5.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"
+ }
+ },
+ "arg": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
+ "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "expo-updates-interface": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.15.3.tgz",
+ "integrity": "sha512-uLvsbaCmUsXgJqeen8rYH/jPr874ZUCXEvWpKHxrCv5/XATPlYEaDuecbNSGQ+cu78i6MdtB4BHOwZmoH2d47A=="
+ },
+ "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.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "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
+ },
+ "fast-loops": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
+ "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
+ },
+ "fast-xml-parser": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz",
+ "integrity": "sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA==",
+ "requires": {
+ "strnum": "^1.0.5"
+ }
+ },
+ "fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "requires": {
+ "bser": "2.1.1"
+ }
+ },
+ "fbemitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
+ "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
+ "requires": {
+ "fbjs": "^3.0.0"
+ }
+ },
+ "fbjs": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz",
+ "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==",
+ "requires": {
+ "cross-fetch": "^3.1.5",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^1.0.35"
+ },
+ "dependencies": {
+ "ua-parser-js": {
+ "version": "1.0.37",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
+ "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ=="
+ }
+ }
+ },
+ "fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "fetch-retry": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
+ "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "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": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "find-versions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
+ "dev": true,
+ "requires": {
+ "semver-regex": "^3.1.2"
+ }
+ },
+ "find-yarn-workspace-root": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
+ "requires": {
+ "micromatch": "^4.0.2"
+ }
+ },
+ "flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "flow-enums-runtime": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz",
+ "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="
+ },
+ "flow-parser": {
+ "version": "0.206.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
+ "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w=="
+ },
+ "fontfaceobserver": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
+ "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "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"
+ }
+ },
+ "freeport-async": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz",
+ "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ },
+ "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"
+ }
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
+ },
+ "function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ }
+ },
+ "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true
+ },
+ "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.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "requires": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg=="
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "getenv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz",
+ "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg=="
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ },
+ "globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw=="
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "graphql": {
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
+ "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw=="
+ },
+ "graphql-tag": {
+ "version": "2.12.6",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
+ "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "requires": {
+ "es-define-property": "^1.0.0"
+ }
+ },
+ "has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "requires": {
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "hasown": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
+ "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "hermes-estree": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz",
+ "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ=="
+ },
+ "hermes-parser": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz",
+ "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==",
+ "requires": {
+ "hermes-estree": "0.15.0"
+ }
+ },
+ "hermes-profile-transformer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
+ "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "requires": {
+ "source-map": "^0.7.3"
+ }
+ },
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
+ "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "requires": {
+ "void-elements": "3.1.0"
+ }
+ },
+ "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": {
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ }
+ }
+ },
+ "https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "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=="
+ },
+ "husky": {
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^4.0.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^5.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "hyphenate-style-name": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ },
+ "i18n-js": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-3.9.2.tgz",
+ "integrity": "sha512-+Gm8h5HL0emzKhRx2avMKX+nKiVPXeaOZm7Euf2/pbbFcLQoJ3zZYiUykAzoRasijCoWos2Kl1tslmScTgAQKw=="
+ },
+ "i18next": {
+ "version": "23.9.0",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.9.0.tgz",
+ "integrity": "sha512-f3MUciKqwzNV//mHG6EtdSlC65+nqH/3zK8sOSWqNV6FVu2tmHhF/rFOp9UF8S4m1odojtuipKaKJrP0Loh60g==",
+ "requires": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "requires": {
+ "queue": "6.0.2"
+ }
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
+ },
+ "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=="
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "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=="
+ },
+ "inline-style-prefixer": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz",
+ "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==",
+ "requires": {
+ "css-in-js-utils": "^3.1.0",
+ "fast-loops": "^1.1.3"
+ }
+ },
+ "internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "requires": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ }
+ },
+ "internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw=="
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "is-arguments": {
+ "version": "1.1.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-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "requires": {
+ "ci-info": "^2.0.0"
+ },
+ "dependencies": {
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ }
+ }
+ },
+ "is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw=="
+ },
+ "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+ },
+ "is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "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-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "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-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
+ },
+ "is-invalid-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
+ "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==",
+ "requires": {
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww=="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true
+ },
+ "is-nan": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "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": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true
+ },
+ "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": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "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": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "dev": true
+ },
+ "is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "requires": {
+ "which-typed-array": "^1.1.14"
+ }
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
+ },
+ "is-valid-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
+ "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==",
+ "requires": {
+ "is-invalid-path": "^0.1.0"
+ }
+ },
+ "is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "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": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
+ },
+ "iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+ },
+ "iterator.prototype": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+ "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "requires": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="
+ },
+ "jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "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=="
+ },
+ "pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "requires": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "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": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@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=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ },
+ "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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.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=="
+ },
+ "pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "requires": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "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": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "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": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "requires": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "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"
+ }
+ }
+ }
+ },
+ "jimp-compact": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
+ "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
+ },
+ "joi": {
+ "version": "17.12.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz",
+ "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
+ "requires": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "join-component": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz",
+ "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
+ },
+ "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"
+ }
+ },
+ "jsc-android": {
+ "version": "250231.0.0",
+ "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz",
+ "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw=="
+ },
+ "jsc-safe-url": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz",
+ "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="
+ },
+ "jscodeshift": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
+ "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
+ "requires": {
+ "@babel/core": "^7.13.16",
+ "@babel/parser": "^7.13.16",
+ "@babel/plugin-proposal-class-properties": "^7.13.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
+ "@babel/plugin-proposal-optional-chaining": "^7.13.12",
+ "@babel/plugin-transform-modules-commonjs": "^7.13.8",
+ "@babel/preset-flow": "^7.13.13",
+ "@babel/preset-typescript": "^7.13.0",
+ "@babel/register": "^7.13.16",
+ "babel-core": "^7.0.0-bridge.0",
+ "chalk": "^4.1.2",
+ "flow-parser": "0.*",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.4",
+ "neo-async": "^2.5.0",
+ "node-dir": "^0.1.17",
+ "recast": "^0.21.0",
+ "temp": "^0.8.4",
+ "write-file-atomic": "^2.3.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"
+ }
+ }
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "json-schema-deref-sync": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz",
+ "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==",
+ "requires": {
+ "clone": "^2.1.2",
+ "dag-map": "~1.0.0",
+ "is-valid-path": "^0.1.1",
+ "lodash": "^4.17.13",
+ "md5": "~2.2.0",
+ "memory-cache": "~0.2.0",
+ "traverse": "~0.6.6",
+ "valid-url": "~1.0.9"
+ },
+ "dependencies": {
+ "md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
+ "requires": {
+ "charenc": "~0.0.1",
+ "crypt": "~0.0.1",
+ "is-buffer": "~1.1.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
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
+ },
+ "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"
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ }
+ },
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ },
+ "klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "requires": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "requires": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "lighthouse-logger": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
+ "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
+ "requires": {
+ "debug": "^2.6.9",
+ "marky": "^1.2.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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "lightningcss": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz",
+ "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==",
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "lightningcss-darwin-arm64": "1.19.0",
+ "lightningcss-darwin-x64": "1.19.0",
+ "lightningcss-linux-arm-gnueabihf": "1.19.0",
+ "lightningcss-linux-arm64-gnu": "1.19.0",
+ "lightningcss-linux-arm64-musl": "1.19.0",
+ "lightningcss-linux-x64-gnu": "1.19.0",
+ "lightningcss-linux-x64-musl": "1.19.0",
+ "lightningcss-win32-x64-msvc": "1.19.0"
+ }
+ },
+ "lightningcss-darwin-arm64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz",
+ "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==",
+ "optional": true
+ },
+ "lightningcss-darwin-x64": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz",
+ "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==",
+ "optional": true
+ },
+ "lightningcss-linux-arm-gnueabihf": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz",
+ "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==",
+ "optional": true
+ },
+ "lightningcss-linux-arm64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz",
+ "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==",
+ "optional": true
+ },
+ "lightningcss-linux-arm64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz",
+ "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==",
+ "optional": true
+ },
+ "lightningcss-linux-x64-gnu": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz",
+ "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==",
+ "optional": true
+ },
+ "lightningcss-linux-x64-musl": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz",
+ "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==",
+ "optional": true
+ },
+ "lightningcss-win32-x64-msvc": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
+ "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==",
+ "optional": true
+ },
+ "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=="
+ },
+ "lint-staged": {
+ "version": "10.5.4",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz",
+ "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "commander": "^6.2.0",
+ "cosmiconfig": "^7.0.0",
+ "debug": "^4.2.0",
+ "dedent": "^0.7.0",
+ "enquirer": "^2.3.6",
+ "execa": "^4.1.0",
+ "listr2": "^3.2.2",
+ "log-symbols": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "^3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "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
+ },
+ "commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true
+ },
+ "execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "requires": {
+ "lie": "3.1.1"
+ }
+ },
+ "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": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.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==",
+ "dev": true,
+ "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==",
+ "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
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "logkitty": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
+ "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
+ "requires": {
+ "ansi-fragments": "^0.2.1",
+ "dayjs": "^1.8.15",
+ "yargs": "^15.1.0"
+ },
+ "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"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "lottie-react-native": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-6.5.1.tgz",
+ "integrity": "sha512-pjih71P6qX6Ax5ucUBA+YJO7+fnveI581Bd8LmYeARm3spq3AnoGzEkrWaieM8odnK6WI4d5dwEJsxge/QjFPw=="
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "marky": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
+ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q=="
+ },
+ "md5": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+ "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+ "requires": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "~1.1.6"
+ }
+ },
+ "md5-file": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz",
+ "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==",
+ "requires": {
+ "buffer-alloc": "^1.1.0"
+ }
+ },
+ "md5hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
+ "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
+ },
+ "memoize-one": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
+ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
+ },
+ "memory-cache": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz",
+ "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA=="
+ },
+ "merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "requires": {
+ "is-plain-obj": "^2.1.0"
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ },
+ "metro": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.6.tgz",
+ "integrity": "sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "accepts": "^1.3.7",
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "denodeify": "^1.2.1",
+ "error-stack-parser": "^2.0.6",
+ "graceful-fs": "^4.2.4",
+ "hermes-parser": "0.19.1",
+ "image-size": "^1.0.2",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "jsc-safe-url": "^0.2.2",
+ "lodash.throttle": "^4.1.1",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-config": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-file-map": "0.80.6",
+ "metro-resolver": "0.80.6",
+ "metro-runtime": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-symbolicate": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "metro-transform-worker": "0.80.6",
+ "mime-types": "^2.1.27",
+ "node-fetch": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "rimraf": "^3.0.2",
+ "serialize-error": "^2.1.0",
+ "source-map": "^0.5.6",
+ "strip-ansi": "^6.0.0",
+ "throat": "^5.0.0",
+ "ws": "^7.5.1",
+ "yargs": "^17.6.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"
+ }
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "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=="
+ },
+ "hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "requires": {
+ "hermes-estree": "0.19.1"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ },
+ "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"
+ }
+ },
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
+ }
+ }
+ },
+ "metro-babel-transformer": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.6.tgz",
+ "integrity": "sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==",
+ "requires": {
+ "@babel/core": "^7.20.0",
+ "hermes-parser": "0.19.1",
+ "nullthrows": "^1.1.1"
+ },
+ "dependencies": {
+ "hermes-estree": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
+ "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ },
+ "hermes-parser": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
+ "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "requires": {
+ "hermes-estree": "0.19.1"
+ }
+ }
+ }
+ },
+ "metro-cache": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.6.tgz",
+ "integrity": "sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==",
+ "requires": {
+ "metro-core": "0.80.6",
+ "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==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "metro-cache-key": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.6.tgz",
+ "integrity": "sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw=="
+ },
+ "metro-config": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.6.tgz",
+ "integrity": "sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==",
+ "requires": {
+ "connect": "^3.6.5",
+ "cosmiconfig": "^5.0.5",
+ "jest-validate": "^29.6.3",
+ "metro": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-core": "0.80.6",
+ "metro-runtime": "0.80.6"
+ },
+ "dependencies": {
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw=="
+ }
+ }
+ },
+ "metro-core": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.6.tgz",
+ "integrity": "sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==",
+ "requires": {
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "0.80.6"
+ }
+ },
+ "metro-file-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.6.tgz",
+ "integrity": "sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==",
+ "requires": {
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-worker": "^29.6.3",
+ "micromatch": "^4.0.4",
+ "node-abort-controller": "^3.1.1",
+ "nullthrows": "^1.1.1",
+ "walker": "^1.0.7"
+ },
+ "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=="
+ }
+ }
+ },
+ "metro-minify-terser": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.6.tgz",
+ "integrity": "sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==",
+ "requires": {
+ "terser": "^5.15.0"
+ }
+ },
+ "metro-resolver": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.6.tgz",
+ "integrity": "sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA=="
+ },
+ "metro-runtime": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.6.tgz",
+ "integrity": "sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==",
+ "requires": {
+ "@babel/runtime": "^7.0.0"
+ }
+ },
+ "metro-source-map": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.6.tgz",
+ "integrity": "sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==",
+ "requires": {
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.80.6",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ }
+ }
+ },
+ "metro-symbolicate": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.6.tgz",
+ "integrity": "sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==",
+ "requires": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.80.6",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ }
+ }
+ },
+ "metro-transform-plugins": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.6.tgz",
+ "integrity": "sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==",
+ "requires": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.20.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "metro-transform-worker": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.6.tgz",
+ "integrity": "sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==",
+ "requires": {
+ "@babel/core": "^7.20.0",
+ "@babel/generator": "^7.20.0",
+ "@babel/parser": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "metro": "0.80.6",
+ "metro-babel-transformer": "0.80.6",
+ "metro-cache": "0.80.6",
+ "metro-cache-key": "0.80.6",
+ "metro-minify-terser": "0.80.6",
+ "metro-source-map": "0.80.6",
+ "metro-transform-plugins": "0.80.6",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "dependencies": {
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ }
+ }
+ },
+ "mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
+ },
+ "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=="
+ },
+ "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.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+ },
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "requires": {
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
+ },
+ "moment-timezone": {
+ "version": "0.5.45",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz",
+ "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
+ "requires": {
+ "moment": "^2.29.4"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "mv": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+ "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
+ "optional": true,
+ "requires": {
+ "mkdirp": "~0.5.1",
+ "ncp": "~2.0.0",
+ "rimraf": "~2.4.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
+ "optional": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+ "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
+ "optional": true,
+ "requires": {
+ "glob": "^6.0.1"
+ }
+ }
+ }
+ },
+ "mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "requires": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
+ "optional": true
+ },
+ "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=="
+ },
+ "nested-error-stacks": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz",
+ "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "nocache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
+ "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw=="
+ },
+ "node-abort-controller": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
+ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ=="
+ },
+ "node-dir": {
+ "version": "0.1.17",
+ "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+ "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
+ "requires": {
+ "minimatch": "^3.0.2"
+ }
+ },
+ "node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ },
+ "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": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ },
+ "node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ },
+ "node-stream-zip": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw=="
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "npm-package-arg": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
+ "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==",
+ "requires": {
+ "hosted-git-info": "^3.0.2",
+ "osenv": "^0.1.5",
+ "semver": "^5.6.0",
+ "validate-npm-package-name": "^3.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ }
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "requires": {
+ "path-key": "^2.0.0"
+ },
+ "dependencies": {
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ }
+ }
+ },
+ "nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
+ },
+ "ob1": {
+ "version": "0.80.6",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.6.tgz",
+ "integrity": "sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+ },
+ "object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true
+ },
+ "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.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "requires": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
+ "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+ "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "object.groupby": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
+ "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "dev": true,
+ "requires": {
+ "array.prototype.filter": "^1.0.3",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0"
+ }
+ },
+ "object.hasown": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+ "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "requires": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ }
+ },
+ "opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "dev": true
+ },
+ "optimism": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz",
+ "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==",
+ "requires": {
+ "@wry/caches": "^1.0.0",
+ "@wry/context": "^0.7.0",
+ "@wry/trie": "^0.4.3",
+ "tslib": "^2.3.0"
+ },
+ "dependencies": {
+ "@wry/trie": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz",
+ "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==",
+ "requires": {
+ "tslib": "^2.3.0"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+ "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "requires": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ=="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="
+ },
+ "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-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parse-png": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz",
+ "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
+ "requires": {
+ "pngjs": "^3.3.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "password-prompt": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz",
+ "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==",
+ "requires": {
+ "ansi-escapes": "^4.3.2",
+ "cross-spawn": "^7.0.3"
+ }
+ },
+ "patch-package": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz",
+ "integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==",
+ "requires": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^6.0.5",
+ "find-yarn-workspace-root": "^2.0.0",
+ "fs-extra": "^9.0.0",
+ "is-ci": "^2.0.0",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.6",
+ "open": "^7.4.2",
+ "rimraf": "^2.6.3",
+ "semver": "^5.6.0",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33",
+ "yaml": "^1.10.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=="
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ },
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+ },
+ "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-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag=="
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+ },
+ "pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg=="
+ },
+ "pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^5.0.0"
+ }
+ },
+ "please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "requires": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "plist": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+ "requires": {
+ "@xmldom/xmldom": "^0.8.8",
+ "base64-js": "^1.5.1",
+ "xmlbuilder": "^15.1.1"
+ },
+ "dependencies": {
+ "@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
+ },
+ "xmlbuilder": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="
+ }
+ }
+ },
+ "pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+ },
+ "possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q=="
+ },
+ "postcss": {
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+ "requires": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
+ "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
+ "dev": true
+ },
+ "prettier-config-standard": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-1.0.1.tgz",
+ "integrity": "sha512-S0zuixvAFlc0zruhYEDMsjt2VG/e5S5hSbqGuxTMWA0ygjII8EP9U7c/wsCQyjjAoaYG82bUsVmaSQ6veQ+u6g==",
+ "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-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "requires": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/yargs": {
+ "version": "15.0.19",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
+ "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ },
+ "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-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=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
+ },
+ "qrcode-terminal": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
+ "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ=="
+ },
+ "query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "requires": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ }
+ },
+ "queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "requires": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ },
+ "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=="
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "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-devtools-core": {
+ "version": "4.28.5",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
+ "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
+ "requires": {
+ "shell-quote": "^1.6.1",
+ "ws": "^7"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
+ }
+ }
+ },
+ "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-freeze": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
+ "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g=="
+ },
+ "react-i18next": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz",
+ "integrity": "sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==",
+ "requires": {
+ "@babel/runtime": "^7.22.5",
+ "html-parse-stringify": "^3.0.1"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "react-native": {
+ "version": "0.73.4",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.4.tgz",
+ "integrity": "sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==",
+ "requires": {
+ "@jest/create-cache-key-function": "^29.6.3",
+ "@react-native-community/cli": "12.3.2",
+ "@react-native-community/cli-platform-android": "12.3.2",
+ "@react-native-community/cli-platform-ios": "12.3.2",
+ "@react-native/assets-registry": "0.73.1",
+ "@react-native/codegen": "0.73.3",
+ "@react-native/community-cli-plugin": "0.73.16",
+ "@react-native/gradle-plugin": "0.73.4",
+ "@react-native/js-polyfills": "0.73.1",
+ "@react-native/normalize-colors": "0.73.2",
+ "@react-native/virtualized-lists": "0.73.4",
+ "abort-controller": "^3.0.0",
+ "anser": "^1.4.9",
+ "ansi-regex": "^5.0.0",
+ "base64-js": "^1.5.1",
+ "chalk": "^4.0.0",
+ "deprecated-react-native-prop-types": "^5.0.0",
+ "event-target-shim": "^5.0.1",
+ "flow-enums-runtime": "^0.0.6",
+ "invariant": "^2.2.4",
+ "jest-environment-node": "^29.6.3",
+ "jsc-android": "^250231.0.0",
+ "memoize-one": "^5.0.0",
+ "metro-runtime": "^0.80.3",
+ "metro-source-map": "^0.80.3",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1",
+ "pretty-format": "^26.5.2",
+ "promise": "^8.3.0",
+ "react-devtools-core": "^4.27.7",
+ "react-refresh": "^0.14.0",
+ "react-shallow-renderer": "^16.15.0",
+ "regenerator-runtime": "^0.13.2",
+ "scheduler": "0.24.0-canary-efb381bbf-20230505",
+ "stacktrace-parser": "^0.1.10",
+ "whatwg-fetch": "^3.0.0",
+ "ws": "^6.2.2",
+ "yargs": "^17.6.2"
+ },
+ "dependencies": {
+ "@react-native/normalize-colors": {
+ "version": "0.73.2",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz",
+ "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w=="
+ },
+ "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=="
+ },
+ "deprecated-react-native-prop-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz",
+ "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==",
+ "requires": {
+ "@react-native/normalize-colors": "^0.73.0",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.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=="
+ },
+ "promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "requires": {
+ "asap": "~2.0.6"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "scheduler": {
+ "version": "0.24.0-canary-efb381bbf-20230505",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz",
+ "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==",
+ "requires": {
+ "loose-envify": "^1.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"
+ }
+ },
+ "ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "react-native-animatable": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.4.0.tgz",
+ "integrity": "sha512-DZwaDVWm2NBvBxf7I0wXKXLKb/TxDnkV53sWhCvei1pRyTX3MVFpkvdYBknNBqPrxYuAIlPxEp7gJOidIauUkw==",
+ "requires": {
+ "prop-types": "^15.8.1"
+ }
+ },
+ "react-native-communications": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-native-communications/-/react-native-communications-2.2.1.tgz",
+ "integrity": "sha512-5+C0X9mopI0+qxyQHzOPEi5v5rxNBQjxydPPiKMQSlX1RBIcJ8uTcqUPssQ9Mo8p6c1IKIWJUSqCj4jAmD0qVQ=="
+ },
+ "react-native-countdown-component": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/react-native-countdown-component/-/react-native-countdown-component-2.7.1.tgz",
+ "integrity": "sha512-H7D/YvMjY1hCJf9xFrNh5CsIwkcel/Suno2gYR6ulWwoa2xnUgmltFWoMyEIODsUy7lIK1KCPm+Zn26QajbRaw==",
+ "requires": {
+ "lodash": "^4.17.13",
+ "prop-types": "^15.5.8",
+ "sprintf-js": "^1.1.1"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
+ }
+ }
+ },
+ "react-native-flash-message": {
+ "version": "0.1.24",
+ "resolved": "https://registry.npmjs.org/react-native-flash-message/-/react-native-flash-message-0.1.24.tgz",
+ "integrity": "sha512-OmhOTXPPjfh0kxAgncWSURHCTfVz2laKtKPK3ItNNXgZhoQV2pF2FBsS8SY2/ABcoChU9sEBjpMM638u2rmCIQ==",
+ "requires": {
+ "prop-types": "^15.7.2",
+ "react-native-iphone-x-helper": "^1.3.0"
+ }
+ },
+ "react-native-gesture-handler": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.14.1.tgz",
+ "integrity": "sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==",
+ "requires": {
+ "@egjs/hammerjs": "^2.0.17",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "prop-types": "^15.7.2"
+ }
+ },
+ "react-native-gifted-chat": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-gifted-chat/-/react-native-gifted-chat-2.4.0.tgz",
+ "integrity": "sha512-dTpSMH8T4s16dM75oLXiDawpXoVSnApJZY9TWf0jYSRShw++0knnp38hO857zOrt6XhqJKm0JntT0pywYI3rYg==",
+ "requires": {
+ "@expo/react-native-action-sheet": "4.0.1",
+ "dayjs": "1.8.26",
+ "prop-types": "15.7.2",
+ "react-native-communications": "2.2.1",
+ "react-native-iphone-x-helper": "1.3.1",
+ "react-native-lightbox-v2": "0.9.0",
+ "react-native-parsed-text": "0.0.22",
+ "react-native-typing-animation": "0.1.7",
+ "use-memo-one": "1.1.3",
+ "uuid": "3.4.0"
+ },
+ "dependencies": {
+ "dayjs": {
+ "version": "1.8.26",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.26.tgz",
+ "integrity": "sha512-KqtAuIfdNfZR5sJY1Dixr2Is4ZvcCqhb0dZpCOt5dGEFiMzoIbjkTSzUb4QKTCsP+WNpGwUjAFIZrnZvUxxkhw=="
+ },
+ "prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ }
+ }
+ },
+ "react-native-iphone-x-helper": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
+ "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg=="
+ },
+ "react-native-lightbox-v2": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/react-native-lightbox-v2/-/react-native-lightbox-v2-0.9.0.tgz",
+ "integrity": "sha512-Fc5VFHFj2vokS+OegyTsANKb1CYoUlOtAv+EBH5wtpJn1b5cey6jVXH7136G5+8OC9JmKWSgKHc5thFwOoZTUg=="
+ },
+ "react-native-loading-spinner-overlay": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-loading-spinner-overlay/-/react-native-loading-spinner-overlay-3.0.1.tgz",
+ "integrity": "sha512-4GdR54HQnKg2HPSSisVizfTLuyhSh4splY9eb8mKiYF1Ihjn/5EmdNo5bN3S7uKPFRC3WLzIZIouX6G6fXfnjw=="
+ },
+ "react-native-maps": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-1.10.0.tgz",
+ "integrity": "sha512-Zs6lHZucEijTwkRVFyInMbPVkJ2UudDEI2fJPc8ArdzdnwDFAdL6OagqTjNRZyI1DBPHRihazfIWpy2+X1VwLg==",
+ "requires": {
+ "@types/geojson": "^7946.0.13"
+ }
+ },
+ "react-native-maps-directions": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/react-native-maps-directions/-/react-native-maps-directions-1.9.0.tgz",
+ "integrity": "sha512-68SrMOUg4WQ5PmpS9sNOTZaYtdyVYJnnjQOOhABrgiKnb5BXCZRU2gDoS11gYf23hjUBjq8JXzgfn37WcINLwA==",
+ "requires": {
+ "lodash.isequal": "^4.5.0",
+ "prop-types": "^15.6.0"
+ }
+ },
+ "react-native-material-textfield": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.16.1.tgz",
+ "integrity": "sha512-pcV/ic3i6vYEODS7pvAMUYJ+evkzIB8cjXtSzkab9rBtYNGRpAlM0Yp8QNnjZ7foZqkj9Ynav0nguWcuJST10A==",
+ "requires": {
+ "prop-types": "^15.5.9"
+ }
+ },
+ "react-native-modal": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.1.tgz",
+ "integrity": "sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==",
+ "requires": {
+ "prop-types": "^15.6.2",
+ "react-native-animatable": "1.3.3"
+ },
+ "dependencies": {
+ "react-native-animatable": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz",
+ "integrity": "sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==",
+ "requires": {
+ "prop-types": "^15.7.2"
+ }
+ }
+ }
+ },
+ "react-native-parsed-text": {
+ "version": "0.0.22",
+ "resolved": "https://registry.npmjs.org/react-native-parsed-text/-/react-native-parsed-text-0.0.22.tgz",
+ "integrity": "sha512-hfD83RDXZf9Fvth3DowR7j65fMnlqM9PpxZBGWkzVcUTFtqe6/yPcIoIAgrJbKn6YmtzkivmhWE2MCE4JKBXrQ==",
+ "requires": {
+ "prop-types": "^15.7.x"
+ }
+ },
+ "react-native-reanimated": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.6.2.tgz",
+ "integrity": "sha512-IIMREMOrxhtK35drfpzh2UhxNqAOHnuvGgtMofj7yHcMj16tmWZR2zFvMUf6z2MfmXv+aVgFQ6TRZ6yKYf7LNA==",
+ "requires": {
+ "@babel/plugin-transform-object-assign": "^7.16.7",
+ "@babel/preset-typescript": "^7.16.7",
+ "convert-source-map": "^2.0.0",
+ "invariant": "^2.2.4"
+ }
+ },
+ "react-native-safe-area-context": {
+ "version": "4.8.2",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.8.2.tgz",
+ "integrity": "sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ=="
+ },
+ "react-native-screens": {
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.29.0.tgz",
+ "integrity": "sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg==",
+ "requires": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ }
+ },
+ "react-native-typing-animation": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/react-native-typing-animation/-/react-native-typing-animation-0.1.7.tgz",
+ "integrity": "sha512-4H3rF9M+I2yAZpYJcY0Mb29TXkn98QK12rrKSY6LZj1BQD9NNmRZuNXzwX4XHapsIz+N/J8M3p27FOQPbfzqeg=="
+ },
+ "react-native-vector-icons": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
+ "integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==",
+ "requires": {
+ "prop-types": "^15.7.2",
+ "yargs": "^16.1.1"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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=="
+ }
+ }
+ },
+ "react-native-web": {
+ "version": "0.19.10",
+ "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.10.tgz",
+ "integrity": "sha512-IQoHiTQq8egBCVVwmTrYcFLgEFyb4LMZYEktHn4k22JMk9+QTCEz5WTfvr+jdNoeqj/7rtE81xgowKbfGO74qg==",
+ "requires": {
+ "@babel/runtime": "^7.18.6",
+ "@react-native/normalize-color": "^2.1.0",
+ "fbjs": "^3.0.4",
+ "inline-style-prefixer": "^6.0.1",
+ "memoize-one": "^6.0.0",
+ "nullthrows": "^1.1.1",
+ "postcss-value-parser": "^4.2.0",
+ "styleq": "^0.1.3"
+ },
+ "dependencies": {
+ "memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ }
+ }
+ },
+ "react-native-webview": {
+ "version": "13.6.4",
+ "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.6.4.tgz",
+ "integrity": "sha512-AdgmaMBHPcyERTvng9eSGgHX6AleyUlSusWAxngSOSdiYGgHW81T6C5A8j/ImJAF9oZg0bQDxp43Hu56tzENZQ==",
+ "requires": {
+ "escape-string-regexp": "2.0.0",
+ "invariant": "2.2.4"
+ },
+ "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=="
+ }
+ }
+ },
+ "react-refresh": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
+ "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ=="
+ },
+ "react-shallow-renderer": {
+ "version": "16.15.0",
+ "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz",
+ "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
+ "requires": {
+ "object-assign": "^4.1.1",
+ "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ }
+ }
+ },
+ "readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ },
+ "recast": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
+ "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
+ "requires": {
+ "ast-types": "0.15.2",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tslib": "^2.0.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=="
+ }
+ }
+ },
+ "reflect.getprototypeof": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
+ "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0",
+ "get-intrinsic": "^1.2.3",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ }
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "requires": {
+ "regenerate": "^1.4.2"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+ },
+ "regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "regexp.prototype.flags": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "requires": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ }
+ },
+ "regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA=="
+ }
+ }
+ },
+ "rehackt": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.5.tgz",
+ "integrity": "sha512-BI1rV+miEkaHj8zd2n+gaMgzu/fKz7BGlb4zZ6HAiY9adDmJMkaDcmuXlJFv0eyKUob+oszs3/2gdnXUrzx2Tg=="
+ },
+ "remove-trailing-slash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
+ "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "requireg": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz",
+ "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==",
+ "requires": {
+ "nested-error-stacks": "~2.0.1",
+ "rc": "~1.2.7",
+ "resolve": "~1.7.1"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
+ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "requires": {
+ "path-parse": "^1.0.5"
+ }
+ }
+ }
+ },
+ "resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "requires": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+ },
+ "resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg=="
+ },
+ "response-iterator": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
+ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw=="
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ },
+ "rfdc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rtl-detect": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz",
+ "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ=="
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "safe-array-concat": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
+ "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safe-json-stringify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
+ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "optional": true
+ },
+ "safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ }
+ },
+ "sax": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
+ },
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
+ },
+ "semver-regex": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz",
+ "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==",
+ "dev": true
+ },
+ "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=="
+ }
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "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"
+ }
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ }
+ }
+ },
+ "sentry-expo": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/sentry-expo/-/sentry-expo-7.2.0.tgz",
+ "integrity": "sha512-stVE2B1RgHxpcup8XU1UIGhoI3cta63guExInl6WYx3d5HsvIu8PZ0yDJnJGflYi9cKPAUCxErIQXMTrS0JQEw==",
+ "requires": {
+ "@expo/spawn-async": "^1.7.0",
+ "@sentry/integrations": "7.81.1",
+ "@sentry/react": "7.81.1",
+ "@sentry/react-native": "5.17.0",
+ "@sentry/types": "7.81.1",
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "serialize-error": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
+ "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw=="
+ },
+ "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"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "set-function-length": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "requires": {
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.1"
+ }
+ },
+ "set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "shebang-command": {
+ "version": "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.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA=="
+ },
+ "side-channel": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
+ "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ }
+ },
+ "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=="
+ },
+ "simple-plist": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz",
+ "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==",
+ "requires": {
+ "bplist-creator": "0.1.0",
+ "bplist-parser": "0.3.1",
+ "plist": "^3.0.5"
+ },
+ "dependencies": {
+ "bplist-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
+ "requires": {
+ "big-integer": "1.6.x"
+ }
+ }
+ }
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ }
+ }
+ },
+ "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=="
+ },
+ "slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^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"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw=="
+ },
+ "source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
+ },
+ "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-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=="
+ }
+ }
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "requires": {
+ "minipass": "^3.1.1"
+ }
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "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.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "requires": {
+ "type-fest": "^0.7.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
+ },
+ "stream-buffers": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
+ "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg=="
+ },
+ "strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
+ },
+ "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-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "string.prototype.matchall": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+ "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "regexp.prototype.flags": "^1.5.0",
+ "set-function-name": "^2.0.0",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dev": true,
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q=="
+ },
+ "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-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
+ },
+ "strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ },
+ "structured-headers": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz",
+ "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="
+ },
+ "styleq": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz",
+ "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="
+ },
+ "subscriptions-transport-ws": {
+ "version": "0.9.19",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
+ "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
+ "requires": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
+ },
+ "dependencies": {
+ "symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
+ },
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
+ }
+ }
+ },
+ "sucrase": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "7.1.6",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "sudo-prompt": {
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
+ "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
+ },
+ "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.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "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=="
+ },
+ "symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ=="
+ },
+ "table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "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"
+ }
+ },
+ "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
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ }
+ }
+ },
+ "tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "requires": {
+ "rimraf": "~2.6.2"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "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.7.1",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
+ "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "requires": {
+ "del": "^6.0.0",
+ "is-stream": "^2.0.0",
+ "temp-dir": "^2.0.0",
+ "type-fest": "^0.16.0",
+ "unique-string": "^2.0.0"
+ },
+ "dependencies": {
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "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.27.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
+ "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
+ "requires": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
+ },
+ "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=="
+ }
+ }
+ },
+ "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=="
+ },
+ "thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "requires": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "requires": {
+ "thenify": ">= 3.1.0 < 4"
+ }
+ },
+ "throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "tmpl": {
+ "version": "1.0.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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
+ },
+ "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=="
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "traverse": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz",
+ "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA=="
+ },
+ "ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+ },
+ "ts-invariant": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
+ "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
+ },
+ "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=="
+ },
+ "typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ }
+ },
+ "typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ }
+ },
+ "typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ }
+ },
+ "typed-array-length": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+ "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ }
+ },
+ "ua-parser-js": {
+ "version": "0.7.37",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz",
+ "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA=="
+ },
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "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=="
+ },
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA=="
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w=="
+ },
+ "unimodules-app-loader": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/unimodules-app-loader/-/unimodules-app-loader-4.5.0.tgz",
+ "integrity": "sha512-q/Xug4K6/20876Xac+tjOLOOAeHEu2zF66LNN/5c8EV4WPEe/+RYZEljN/woQt17KPIB2eyel9dc+d6qUMjUOg=="
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+ },
+ "update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA=="
+ },
+ "use-latest-callback": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz",
+ "integrity": "sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw=="
+ },
+ "use-memo-one": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
+ "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ=="
+ },
+ "util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
+ },
+ "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.4.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
+ "dev": true
+ },
+ "valid-url": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
+ "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA=="
+ },
+ "validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "requires": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+ },
+ "vlq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
+ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
+ },
+ "void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="
+ },
+ "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"
+ }
+ },
+ "warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "whatwg-fetch": {
+ "version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
+ "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "whatwg-url-without-unicode": {
+ "version": "8.0.0-3",
+ "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz",
+ "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==",
+ "requires": {
+ "buffer": "^5.4.3",
+ "punycode": "^2.1.1",
+ "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=="
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-builtin-type": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
+ "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "dev": true,
+ "requires": {
+ "function.prototype.name": "^1.1.5",
+ "has-tostringtag": "^1.0.0",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ }
+ },
+ "which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "dev": true,
+ "requires": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ }
+ },
+ "which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "which-pm-runs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "dev": true
+ },
+ "which-typed-array": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
+ "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "requires": {
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.5",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.1"
+ }
+ },
+ "wonka": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
+ "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg=="
+ },
+ "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": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ws": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ=="
+ },
+ "xcode": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz",
+ "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==",
+ "requires": {
+ "simple-plist": "^1.1.0",
+ "uuid": "^7.0.3"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg=="
+ }
+ }
+ },
+ "xml2js": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
+ "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "dependencies": {
+ "xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
+ }
+ }
+ },
+ "xmlbuilder": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz",
+ "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg=="
+ },
+ "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": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ },
+ "yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "requires": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
+ },
+ "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=="
+ },
+ "zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "zen-observable-ts": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
+ "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
+ "requires": {
+ "zen-observable": "0.8.15"
+ }
+ }
+ }
+}
diff --git a/enatega-multivendor-rider/package.json b/enatega-multivendor-rider/package.json
new file mode 100644
index 0000000..e48a3ed
--- /dev/null
+++ b/enatega-multivendor-rider/package.json
@@ -0,0 +1,111 @@
+{
+ "name": "enatega-rider-app",
+ "version": "5.0.0",
+ "scripts": {
+ "start": "expo start --offline",
+ "android": "expo start --android",
+ "ios": "expo start --ios",
+ "eject": "expo eject",
+ "postinstall": "patch-package",
+ "format": "prettier --write '**/*.js'",
+ "lint:fix": "eslint . --ext .js --fix",
+ "build:staging": "eas build --profile staging -p all",
+ "build:staging:android": "eas build --profile staging -p android",
+ "build:staging:ios": "eas build --profile staging -p ios",
+ "build:production": "eas build --profile production -p all",
+ "build:production:android": "eas build --profile production -p android",
+ "build:production:ios": "eas build --profile production -p ios",
+ "submit:production": "eas submit --profile production -p all",
+ "submit:production:android": "eas submit --profile production -p android",
+ "submit:production:ios": "eas submit --profile production -p ios",
+ "publish:staging": "ENVIRONMENT=staging expo publish --release-channel staging",
+ "publish:production": "ENVIRONMENT=production expo publish --release-channel production"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "*.js": [
+ "npm run format",
+ "npm run lint:fix"
+ ]
+ },
+ "dependencies": {
+ "@apollo/client": "^3.7.10",
+ "@expo/vector-icons": "^14.0.0",
+ "@react-native-async-storage/async-storage": "1.21.0",
+ "@react-native-community/masked-view": "0.1.10",
+ "@react-navigation/bottom-tabs": "6.5.8",
+ "@react-navigation/drawer": "^6.3.0",
+ "@react-navigation/elements": "^1.3.22",
+ "@react-navigation/native": "^6.0.6",
+ "@react-navigation/stack": "6.0.11",
+ "@sentry/react-native": "5.17.0",
+ "@types/react": "~18.2.45",
+ "deprecated-react-native-prop-types": "^4.0.0",
+ "expo": "~50.0.3",
+ "expo-application": "~5.8.3",
+ "expo-av": "~13.10.5",
+ "expo-camera": "~14.0.5",
+ "expo-constants": "~15.4.5",
+ "expo-dev-client": "~3.3.8",
+ "expo-device": "~5.9.3",
+ "expo-font": "~11.10.3",
+ "expo-image-picker": "~14.7.1",
+ "expo-localization": "~14.8.3",
+ "expo-location": "~16.5.3",
+ "expo-notifications": "~0.27.6",
+ "expo-splash-screen": "~0.26.4",
+ "expo-status-bar": "~1.11.1",
+ "expo-task-manager": "~11.7.2",
+ "expo-updates": "~0.24.11",
+ "graphql": "^15.8.0",
+ "i18n-js": "^3.7.1",
+ "i18next": "^23.7.6",
+ "lottie-react-native": "6.5.1",
+ "moment": "^2.29.1",
+ "moment-timezone": "^0.5.34",
+ "patch-package": "^6.2.2",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-i18next": "^13.5.0",
+ "react-native": "0.73.4",
+ "react-native-animatable": "^1.3.3",
+ "react-native-countdown-component": "^2.7.1",
+ "react-native-flash-message": "^0.1.21",
+ "react-native-gesture-handler": "~2.14.0",
+ "react-native-gifted-chat": "^2.4.0",
+ "react-native-loading-spinner-overlay": "^3.0.0",
+ "react-native-maps": "1.10.0",
+ "react-native-maps-directions": "^1.8.0",
+ "react-native-material-textfield": "^0.16.1",
+ "react-native-modal": "^13.0.1",
+ "react-native-reanimated": "3.6.2",
+ "react-native-safe-area-context": "4.8.2",
+ "react-native-screens": "~3.29.0",
+ "react-native-vector-icons": "^9.2.0",
+ "react-native-web": "~0.19.6",
+ "react-native-webview": "13.6.4",
+ "sentry-expo": "~7.2.0",
+ "subscriptions-transport-ws": "^0.9.19"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.20.0",
+ "@expo/metro-config": "~0.17.1",
+ "babel-preset-expo": "^10.0.0",
+ "eslint": "^7.1.0",
+ "eslint-config-standard": "^14.1.1",
+ "eslint-plugin-import": "^2.20.2",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^4.2.1",
+ "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-standard": "^4.0.1",
+ "husky": "^4.2.5",
+ "lint-staged": "^10.2.7",
+ "prettier": "2.0.5",
+ "prettier-config-standard": "^1.0.1"
+ },
+ "private": true
+}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/patches/react-native-countdown-component+2.7.1.patch b/enatega-multivendor-rider/patches/react-native-countdown-component+2.7.1.patch
new file mode 100644
index 0000000..d634af1
--- /dev/null
+++ b/enatega-multivendor-rider/patches/react-native-countdown-component+2.7.1.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/react-native-countdown-component/index.js b/node_modules/react-native-countdown-component/index.js
+index b546b82..f714717 100644
+--- a/node_modules/react-native-countdown-component/index.js
++++ b/node_modules/react-native-countdown-component/index.js
+@@ -56,7 +56,7 @@ class CountDown extends React.Component {
+
+ componentWillUnmount() {
+ clearInterval(this.timer);
+- AppState.removeEventListener('change', this._handleAppStateChange);
++ AppState.addEventListener('change', this._handleAppStateChange);
+ }
+
+ componentDidUpdate(prevProps, prevState) {
diff --git a/enatega-multivendor-rider/patches/react-native-gifted-chat+2.4.0.patch b/enatega-multivendor-rider/patches/react-native-gifted-chat+2.4.0.patch
new file mode 100644
index 0000000..a6d83b4
--- /dev/null
+++ b/enatega-multivendor-rider/patches/react-native-gifted-chat+2.4.0.patch
@@ -0,0 +1,3 @@
+diff --git a/node_modules/react-native-gifted-chat/lib/.MessageContainer.js.swp b/node_modules/react-native-gifted-chat/lib/.MessageContainer.js.swp
+new file mode 100644
+index 0000000..e69de29
diff --git a/enatega-multivendor-rider/patches/react-native-material-textfield+0.16.1.patch b/enatega-multivendor-rider/patches/react-native-material-textfield+0.16.1.patch
new file mode 100644
index 0000000..85dfb5b
--- /dev/null
+++ b/enatega-multivendor-rider/patches/react-native-material-textfield+0.16.1.patch
@@ -0,0 +1,51 @@
+diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
+index 0f85022..c12b3a6 100644
+--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
++++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
+@@ -11,7 +11,7 @@ export default class Affix extends PureComponent {
+
+ static propTypes = {
+ numberOfLines: PropTypes.number,
+- style: Animated.Text.propTypes.style,
++ style: PropTypes.object,
+
+ color: PropTypes.string.isRequired,
+ fontSize: PropTypes.number.isRequired,
+diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
+index 494bbaa..9bbf2e2 100644
+--- a/node_modules/react-native-material-textfield/src/components/field/index.js
++++ b/node_modules/react-native-material-textfield/src/components/field/index.js
+@@ -221,6 +221,7 @@ export default class TextField extends PureComponent {
+
+ let options = {
+ toValue: this.focusState(),
++ useNativeDriver: false,
+ duration,
+ };
+
+diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
+index 6060f9f..fe9d9c4 100644
+--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
++++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
+@@ -11,7 +11,7 @@ export default class Helper extends PureComponent {
+
+ disabled: PropTypes.bool,
+
+- style: Animated.Text.propTypes.style,
++ style: PropTypes.object,
+
+ baseColor: PropTypes.string,
+ errorColor: PropTypes.string,
+diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
+index 82eaf03..809fcdd 100644
+--- a/node_modules/react-native-material-textfield/src/components/label/index.js
++++ b/node_modules/react-native-material-textfield/src/components/label/index.js
+@@ -43,7 +43,7 @@ export default class Label extends PureComponent {
+ y1: PropTypes.number,
+ }),
+
+- style: Animated.Text.propTypes.style,
++ style: PropTypes.object,
+ label: PropTypes.string,
+ };
+
\ No newline at end of file
diff --git a/enatega-multivendor-rider/src/apollo/index.js b/enatega-multivendor-rider/src/apollo/index.js
new file mode 100644
index 0000000..ae15120
--- /dev/null
+++ b/enatega-multivendor-rider/src/apollo/index.js
@@ -0,0 +1,98 @@
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import {
+ ApolloClient,
+ InMemoryCache,
+ ApolloLink,
+ split,
+ concat,
+ Observable,
+ createHttpLink
+} from '@apollo/client'
+import { WebSocketLink } from '@apollo/client/link/ws'
+import {
+ getMainDefinition,
+ offsetLimitPagination
+} from '@apollo/client/utilities'
+
+import getEnvVars from '../../environment'
+
+export let clientRef = null
+
+function setupApolloClient() {
+ const { GRAPHQL_URL, WS_GRAPHQL_URL } = getEnvVars()
+ const cache = new InMemoryCache({
+ typePolicies: {
+ Query: {
+ fields: {
+ riderEarnings: offsetLimitPagination(),
+ riderWithdrawRequests: offsetLimitPagination(),
+ riderOrders: {
+ merge(_existing, incoming) {
+ return incoming
+ }
+ },
+ _id: {
+ keyArgs: ['string']
+ }
+ }
+ }
+ }
+ })
+
+ const httpLink = createHttpLink({
+ uri: GRAPHQL_URL
+ })
+ const wsLink = new WebSocketLink({
+ uri: WS_GRAPHQL_URL,
+ options: {
+ reconnect: true
+ }
+ })
+
+ const request = async operation => {
+ const token = await AsyncStorage.getItem('rider-token')
+
+ operation.setContext({
+ // get the authentication token from local storage if it exists
+ // return the headers to the context so httpLink can read them
+ headers: {
+ authorization: token ? `Bearer ${token}` : ''
+ }
+ })
+ }
+
+ const requestLink = new ApolloLink(
+ (operation, forward) =>
+ new Observable(observer => {
+ let handle
+ Promise.resolve(operation)
+ .then(oper => request(oper))
+ .then(() => {
+ handle = forward(operation).subscribe({
+ next: observer.next.bind(observer),
+ error: observer.error.bind(observer),
+ complete: observer.complete.bind(observer)
+ })
+ })
+ .catch(observer.error.bind(observer))
+
+ return () => {
+ if (handle) handle.unsubscribe()
+ }
+ })
+ )
+
+ const terminatingLink = split(({ query }) => {
+ const { kind, operation } = getMainDefinition(query)
+ return kind === 'OperationDefinition' && operation === 'subscription'
+ }, wsLink)
+
+ const client = new ApolloClient({
+ link: concat(ApolloLink.from([terminatingLink, requestLink]), httpLink),
+ cache,
+ resolvers: {}
+ })
+ clientRef = client
+ return client
+}
+export default setupApolloClient
diff --git a/enatega-multivendor-rider/src/apollo/mutations.js b/enatega-multivendor-rider/src/apollo/mutations.js
new file mode 100644
index 0000000..b574c15
--- /dev/null
+++ b/enatega-multivendor-rider/src/apollo/mutations.js
@@ -0,0 +1,89 @@
+export const riderLogin = `mutation RiderLogin($username:String,$password:String,$notificationToken:String){
+ riderLogin(username:$username,password:$password,notificationToken:$notificationToken){
+ userId
+ token
+ }
+}`
+
+export const updateOrderStatusRider = `mutation UpdateOrderStatusRider($id:String!,$status:String!){
+ updateOrderStatusRider(id:$id,status:$status){
+ _id
+ orderStatus
+ }
+}
+`
+
+export const assignOrder = `mutation AssignOrder($id:String!){
+ assignOrder(id:$id){
+ _id
+ orderStatus
+ rider{
+ _id
+ name
+ username
+ }
+ }
+}`
+
+export const updateLocation = `mutation UpdateRiderLocation($latitude:String!,$longitude:String!){
+updateRiderLocation(latitude:$latitude,longitude:$longitude){
+ _id
+}
+}`
+
+export const toggleAvailablity = `
+ mutation ToggleRider($id:String){
+ toggleAvailablity(id:$id){
+ _id
+ }
+}`
+
+export const createWithdrawRequest = `
+ mutation CreateWithdrawRequest($amount: Float!) {
+ createWithdrawRequest(amount: $amount) {
+ _id
+ requestId
+ requestAmount
+ requestTime
+ status
+ rider {
+ name
+ email
+ accountNumber
+ }
+ }
+}
+`
+
+export const createEarning = `
+ mutation CreateEarning($earningsInput: EarningsInput) {
+ createEarning(earningsInput: $earningsInput) {
+ rider {
+ _id
+ username
+ }
+ orderId
+ deliveryFee
+ orderStatus
+ paymentMethod
+ deliveryTime
+ _id
+ }
+}
+`
+export const sendChatMessage = `mutation SendChatMessage($orderId: ID!, $messageInput: ChatMessageInput!) {
+ sendChatMessage(message: $messageInput, orderId: $orderId) {
+ success
+ message
+ data {
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+ }
+}
+`
diff --git a/enatega-multivendor-rider/src/apollo/queries.js b/enatega-multivendor-rider/src/apollo/queries.js
new file mode 100644
index 0000000..a0d20ca
--- /dev/null
+++ b/enatega-multivendor-rider/src/apollo/queries.js
@@ -0,0 +1,147 @@
+export const profile = `
+query Rider($id:String){
+ rider(id:$id){
+ _id
+ name
+ email
+ accountNumber
+ username
+ available
+ zone{
+ _id
+ }
+ currentWalletAmount
+ totalWalletAmount
+ withdrawnWalletAmount
+ }
+ }`
+
+export const configuration = `query Configuration{
+ configuration{
+ _id
+ currency
+ currencySymbol
+ riderAppSentryUrl
+ googleApiKey
+ }
+ }`
+
+export const riderOrders = `query RiderOrders{
+ riderOrders{
+ _id
+ orderId
+ createdAt
+ acceptedAt
+ pickedAt
+ assignedAt
+ isPickedUp
+ deliveredAt
+ expectedTime
+ deliveryCharges
+ restaurant{
+ _id
+ name
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ label
+ details
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ isActive
+ createdAt
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ paymentStatus
+ orderStatus
+ tipping
+ taxationAmount
+ reason
+ isRiderRinged
+ preparationTime
+ rider{
+ _id
+ name
+ username
+ }
+ }
+ }`
+
+export const riderEarnings = `
+ query RiderEarnings($riderEarningsId: String, $offset:Int) {
+ riderEarnings(id: $riderEarningsId, offset:$offset) {
+ orderId
+ deliveryFee
+ orderStatus
+ paymentMethod
+ deliveryTime
+ }
+}
+`
+
+export const riderWithdrawRequest = `
+query RiderWithdrawRequests($riderWithdrawRequestsId: String, $offset:Int) {
+ riderWithdrawRequests(id: $riderWithdrawRequestsId, offset:$offset) {
+ _id
+ requestId
+ requestAmount
+ requestTime
+ rider {
+ name
+ email
+ accountNumber
+ }
+ status
+ }
+}
+`
+export const chat = `query Chat($order: ID!) {
+ chat(order: $order) {
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+}`
+
+export const defaultRiderCreds = `query LastOrderCreds {
+ lastOrderCreds {
+ riderUsername
+ riderPassword
+ }
+}`
diff --git a/enatega-multivendor-rider/src/apollo/subscriptions.js b/enatega-multivendor-rider/src/apollo/subscriptions.js
new file mode 100644
index 0000000..87bcefa
--- /dev/null
+++ b/enatega-multivendor-rider/src/apollo/subscriptions.js
@@ -0,0 +1,171 @@
+export const subscriptionOrder = `subscription SubscriptionOrder($id:String!){
+ subscriptionOrder(id:$id){
+ _id
+ orderStatus
+ rider{
+ _id
+ }
+ }
+}`
+export const subscriptionZoneOrders = `subscription SubscriptionZoneOrders($zoneId:String!){
+ subscriptionZoneOrders(zoneId:$zoneId){
+ zoneId
+ origin
+ order{
+ _id
+ createdAt
+ acceptedAt
+ expectedTime
+ pickedAt
+ assignedAt
+ isPickedUp
+ deliveredAt
+ deliveryCharges
+ orderId
+ restaurant{
+ _id
+ name
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ label
+ details
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ isActive
+ createdAt
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ paymentStatus
+ orderStatus
+ tipping
+ taxationAmount
+ reason
+ isRiderRinged
+ preparationTime
+ rider{
+ _id
+ name
+ username
+ }
+ }
+ }
+ }`
+
+export const subscriptionAssignRider = `subscription SubscriptionAssignRider($riderId:String!){
+ subscriptionAssignRider(riderId:$riderId){
+ order{
+ _id
+ orderId
+ createdAt
+ acceptedAt
+ pickedAt
+ isPickedUp
+ deliveredAt
+ expectedTime
+ deliveryCharges
+ restaurant{
+ _id
+ name
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ label
+ details
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ isActive
+ createdAt
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ paymentStatus
+ orderStatus
+ tipping
+ taxationAmount
+ reason
+ isRiderRinged
+ preparationTime
+ rider{
+ _id
+ name
+ username
+ }
+ }
+ origin
+ }
+ }`
+export const subscriptionNewMessage = `subscription SubscriptionNewMessage($order:ID!){
+ subscriptionNewMessage(order:$order){
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+ }`
diff --git a/enatega-multivendor-rider/src/assets/beep3.mp3 b/enatega-multivendor-rider/src/assets/beep3.mp3
new file mode 100644
index 0000000..ed1ca4f
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/beep3.mp3 differ
diff --git a/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans300.ttf b/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans300.ttf
new file mode 100644
index 0000000..9e1f7f7
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans300.ttf differ
diff --git a/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans500.ttf b/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans500.ttf
new file mode 100644
index 0000000..fc028ae
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans500.ttf differ
diff --git a/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans700.ttf b/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans700.ttf
new file mode 100644
index 0000000..dffdf46
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/font/MuseoSans/MuseoSans700.ttf differ
diff --git a/enatega-multivendor-rider/src/assets/home_icon.png b/enatega-multivendor-rider/src/assets/home_icon.png
new file mode 100644
index 0000000..4629049
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/home_icon.png differ
diff --git a/enatega-multivendor-rider/src/assets/loader.json b/enatega-multivendor-rider/src/assets/loader.json
new file mode 100644
index 0000000..1a24857
--- /dev/null
+++ b/enatega-multivendor-rider/src/assets/loader.json
@@ -0,0 +1 @@
+{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.0.0","a":"Michel Angelo","k":"","d":"Lottie Study ","tc":""},"fr":60,"ip":0,"op":241,"w":400,"h":400,"nm":"animacaodentro","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"ponteiro","parent":2,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"corporelogio","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[216,368.5,0],"ix":2},"a":{"a":0,"k":[216,368.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[95,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3045","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":9,"s":[-110]},{"t":39,"s":[0]}],"ix":10},"p":{"a":0,"k":[215.96,368.109,0],"ix":2},"a":{"a":0,"k":[0.913,35.538,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":30,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[23.694,45.077],[0,36.37],[0,0],[1.834,0],[1.834,35.091],[24.326,43.353]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3045","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3049","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[215.964,368.524,0],"ix":2},"a":{"a":0,"k":[3.203,3.203,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.769,0],[0,1.769],[-1.768,0],[0,-1.769]],"o":[[0,1.769],[-1.768,0],[0,-1.769],[1.769,0],[0,0]],"v":[[6.406,3.202],[3.202,6.406],[0,3.202],[3.202,0],[6.406,3.202]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3049","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3047","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[26.351,43.569,0],"ix":2},"a":{"a":0,"k":[6.308,6.01,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[0,12.02],[12.616,9.834],[4.416,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3047","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3046","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.917,-3.671,0],"ix":2},"a":{"a":0,"k":[6.402,5.544,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[0,11.088],[6.402,0],[12.805,11.088]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3046","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Grupo 2185 Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[273.25,318],[220.25,318.25],[220,379.25],[273.5,380]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":10,"op":3610,"st":10,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Grupo 2185","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":9,"s":[-116]},{"t":39,"s":[0]}],"ix":10},"p":{"a":0,"k":[218.675,365.527,0],"ix":2},"a":{"a":0,"k":[-0.5,37.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":37,"h":51,"ip":0,"op":3600,"st":0,"bm":1}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2184","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.3,25.348,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[36.6,50.696],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2183","parent":1,"refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[18.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[36.6,0],[36.6,50.696],[0,50.696]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":37,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3048","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.3,25.348,0],"ix":2},"a":{"a":0,"k":[18.3,25.348,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[47.18,4.586]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[0,37.715],[35.254,50.696],[0,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.43529411764705883,0.8117647058823529,0.592156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3048","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3044","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.954,364.314,0],"ix":2},"a":{"a":0,"k":[38.866,38.866,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[21.464,0],[0,21.465],[-21.465,0],[0,-21.464]],"o":[[0,21.465],[-21.465,0],[0,-21.464],[21.464,0],[0,0]],"v":[[77.732,38.866],[38.867,77.732],[0,38.866],[38.867,0],[77.732,38.866]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3044","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3043","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.954,364.314,0],"ix":2},"a":{"a":0,"k":[41.651,41.651,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[23.003,0],[0,23.004],[-23.004,0],[0,-23.003]],"o":[[0,23.004],[-23.004,0],[0,-23.003],[23.003,0],[0,0]],"v":[[83.302,41.651],[41.651,83.302],[0,41.651],[41.651,0],[83.302,41.651]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3043","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3042","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[224.904,364.314,0],"ix":2},"a":{"a":0,"k":[41.651,41.651,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[23.003,0],[0,23.004],[-23.004,0],[0,-23.003]],"o":[[0,23.004],[-23.004,0],[0,-23.003],[23.003,0],[0,0]],"v":[[83.302,41.651],[41.651,83.302],[0,41.651],[41.651,0],[83.302,41.651]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3042","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"saco","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[142.5,402,0],"ix":2},"a":{"a":0,"k":[142.5,408,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42.143,"s":[105,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"frutinha","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":0,"s":[116.5,379,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":25,"s":[116.5,233.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[116.5,277.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":59,"s":[116.5,269,0]}],"ix":2},"a":{"a":0,"k":[116.5,269,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42.143,"s":[105,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"folha","refId":"comp_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-9,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":4,"s":[166.5,402,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":29,"s":[166.5,256.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":46,"s":[166.5,300.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":63,"s":[166.5,292,0]}],"ix":2},"a":{"a":0,"k":[156.5,304,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":29.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":46.143,"s":[105,95,100]},{"t":63,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":4,"op":3604,"st":4,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"planta1","refId":"comp_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":6,"s":[145.5,426,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":31,"s":[145.5,280.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":48,"s":[145.5,324.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":65,"s":[145.5,316,0]}],"ix":2},"a":{"a":0,"k":[145.5,316,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":31.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":48.143,"s":[105,95,100]},{"t":65,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":6,"op":3606,"st":6,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"planta2","refId":"comp_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":8,"s":[136.5,453,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":33,"s":[136.5,307.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":50,"s":[136.5,351.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":67,"s":[136.5,343,0]}],"ix":2},"a":{"a":0,"k":[136.5,343,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":8,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":33.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":50.143,"s":[105,95,100]},{"t":67,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":8,"op":3608,"st":8,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"pao","refId":"comp_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[123.5,422,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":27,"s":[123.5,276.756,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":44,"s":[123.5,320.966,0],"to":[0,0,0],"ti":[0,0,0]},{"t":61,"s":[123.5,312,0]}],"ix":2},"a":{"a":0,"k":[123.5,312,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":27.285,"s":[90,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":44.143,"s":[105,95,100]},{"t":61,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":2,"op":3602,"st":2,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3034","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[101.359,343.547,0],"ix":2},"a":{"a":0,"k":[10.872,63.262,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[21.744,0],[21.744,126.525],[0,126.525],[6.851,0],[14.297,7.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2549019607843137,0.4588235294117647,0.0196078431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3034","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3033","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[153.314,343.547,0],"ix":2},"a":{"a":0,"k":[41.083,63.262,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[82.167,126.525],[0,126.525],[0,0],[5.985,7.182],[11.969,0],[17.97,7.182],[23.955,0],[29.956,7.182],[35.94,0],[41.924,7.182],[47.926,0],[53.91,7.182],[59.893,0],[65.894,7.182],[71.879,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.43529411764705883,0.8117647058823529,0.592156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3033","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3037","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125.878,262.849,0],"ix":2},"a":{"a":0,"k":[1.395,1.437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.845,0],[1.845,0]],"o":[[-1.856,0],[1.856,0],[0,0]],"v":[[1.269,0],[1.52,2.874],[1.269,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.360784313725,0.360784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3037","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3036","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[131.893,261.847,0],"ix":2},"a":{"a":0,"k":[1.395,1.437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.845,0],[1.845,0]],"o":[[-1.856,0],[1.856,0],[0,0]],"v":[[1.269,0],[1.52,2.874],[1.269,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.360784313725,0.360784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3036","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3035","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[126.079,255.431,0],"ix":2},"a":{"a":0,"k":[1.395,1.437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.845,0],[1.846,0]],"o":[[-1.856,0],[1.857,0],[0,0]],"v":[[1.269,0],[1.52,2.874],[1.269,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.360784313725,0.360784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3035","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3032","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[106.907,248.893,0],"ix":2},"a":{"a":0,"k":[3.059,9.057,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.359,-1.25],[-2.232,-4.303],[-0.465,3.819],[0.903,1.95],[0.248,0.191],[0.608,-0.529]],"o":[[-0.977,0.858],[-1.331,4.663],[2.044,-3.255],[0.261,-2.134],[-0.131,-0.282],[-0.635,-0.49],[0,0]],"v":[[2.579,0.61],[0.724,3.981],[2.146,18.115],[5.973,7.326],[5.312,0.995],[4.775,0.24],[2.579,0.61]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3032","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3031","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[95.46,252.482,0],"ix":2},"a":{"a":0,"k":[10.508,5.693,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.345,-0.966],[-6.11,0.828],[4.376,2.195],[2.724,-0.246],[0.334,-0.215],[-0.374,-0.956]],"o":[[0.608,1.539],[5.014,3.594],[-3.023,-3.844],[-2.444,-1.227],[-0.394,0.036],[-0.861,0.549],[0,0]],"v":[[0.234,3.148],[3.477,6.816],[21.017,11.172],[9.734,1.962],[1.866,0.039],[0.733,0.359],[0.234,3.148]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3031","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3030","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.522,269.098,0],"ix":2},"a":{"a":0,"k":[22.515,22.515,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[11.332,-5.114],[5.114,11.331],[-11.331,5.114],[-5.114,-11.331]],"o":[[5.114,11.332],[-11.331,5.112],[-5.114,-11.332],[11.331,-5.114],[0,0]],"v":[[43.031,13.255],[31.773,43.033],[1.998,31.775],[13.256,1.998],[43.031,13.255]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.662745098039,0.662745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3030","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_9","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3029","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[178.488,264.804,0],"ix":2},"a":{"a":0,"k":[22.661,34.697,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.573,-5.78],[0.081,0.447],[0.249,1.392],[-0.156,-0.873],[-0.284,-1.581],[-0.333,-0.591],[1.598,-2.244],[1.717,-2.688],[0.777,3.438],[-0.195,-0.863],[-0.891,-3.943],[2.711,-5.371],[0.867,4.34],[-0.173,-0.87],[-0.957,-4.79],[-0.076,-0.107],[0.032,-0.064],[2.13,-5.611],[-0.316,0.831],[-2.776,5.609],[-5.035,1.031],[0.868,-0.178],[0,0],[-1.863,3.21],[-1.067,1.712],[-5.145,0.529],[0.882,-0.091],[4.802,-0.494],[-3.74,4.811],[-0.174,-0.026],[-0.623,0.056],[-0.858,0.078],[-1.65,0.151],[0.884,-0.081],[1.452,-0.132],[1.392,-0.055],[0.1,0.004],[-0.916,1.107],[-4.202,4.218],[0.621,-0.625]],"o":[[-5.203,5.223],[-0.12,-0.474],[-0.249,-1.392],[-0.156,-0.868],[0.284,1.582],[0.117,0.656],[-1.691,2.173],[-1.85,2.599],[-0.777,-3.437],[-0.194,-0.855],[0.891,3.943],[-3.188,5.103],[-0.867,-4.338],[-0.172,-0.862],[0.957,4.789],[0.024,0.12],[-0.031,0.064],[-2.641,5.39],[-0.314,0.827],[2.22,-5.852],[5.035,-1.031],[0.861,-0.177],[0,0],[1.676,-3.311],[1.013,-1.744],[5.145,-0.529],[0.884,-0.09],[-4.802,0.493],[3.271,-5.141],[0.165,0.063],[0.624,0.095],[0.858,-0.079],[1.649,-0.151],[0.885,-0.081],[-1.453,0.133],[-1.388,0.127],[-0.096,0.005],[0.891,-1.128],[3.795,-4.587],[0.625,-0.627],[0,0]],"v":[[44.062,0.217],[29.406,16.755],[29.174,15.301],[28.426,11.125],[27.053,11.253],[27.904,15.997],[28.42,17.971],[23.481,24.596],[18.156,32.544],[15.826,22.231],[14.453,22.359],[17.125,34.186],[8.247,49.894],[5.648,36.876],[4.275,37.005],[7.145,51.373],[7.306,51.718],[7.207,51.908],[0.05,68.421],[1.307,68.989],[8.841,51.803],[23.948,48.707],[23.821,47.334],[9.622,50.243],[14.897,40.443],[18.044,35.274],[33.48,33.688],[33.352,32.316],[18.944,33.797],[29.471,18.858],[29.979,18.997],[31.865,18.949],[34.44,18.713],[39.39,18.259],[39.263,16.886],[34.907,17.285],[30.728,17.659],[30.432,17.66],[33.129,14.295],[45.134,1.083],[44.062,0.217]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.517647058824,0.529411764706,0.556862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3029","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3028","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[178.385,264.139,0],"ix":2},"a":{"a":0,"k":[26.335,37.192,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[6.989,-12.761],[14.98,-5.376],[2.22,-0.352],[0.385,2.283],[-3.738,9.915],[-8.219,6.666],[-10.714,-0.321]],"o":[[2.295,14.359],[-7.651,13.966],[-2.122,0.755],[-0.796,-2.167],[-1.751,-10.446],[3.742,-9.901],[8.348,-6.759],[0,0]],"v":[[51.829,0.016],[44.721,44.772],[9.05,72.617],[2.518,74.384],[0.82,67.689],[3.878,36.433],[22.259,10.986],[51.829,0.016]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3028","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_10","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3027","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[156.358,217.136,0],"ix":2},"a":{"a":0,"k":[7.972,5.528,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.84,-3.161],[0,0],[-0.344,-0.405],[-2.905,-3.427],[-0.162,0.281],[-2.331,3.009],[0.321,-0.413]],"o":[[-2.249,2.904],[0,0],[-0.339,-0.401],[2.905,3.427],[0.2,0.234],[1.882,-3.29],[0.32,-0.411],[0,0]],"v":[[15.228,0.842],[9.092,9.952],[0.79,0.16],[0.092,0.598],[8.809,10.878],[9.532,10.845],[15.855,1.386],[15.228,0.842]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3027","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3026","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[156.082,238.456,0],"ix":2},"a":{"a":0,"k":[9.66,6.978,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.192,-3.943],[3.666,3.619],[-0.379,-0.373],[-2.649,-4.503],[-0.159,0.194],[-2.487,4.683],[0.244,-0.46]],"o":[[-2.366,4.455],[-2.629,-4.368],[-0.38,-0.376],[3.758,3.711],[0.13,0.219],[3.386,-4.122],[0.244,-0.46],[0,0]],"v":[[18.523,0.21],[10.163,12.828],[0.682,0.797],[0.127,1.393],[9.775,13.773],[10.437,13.825],[19.272,0.584],[18.523,0.21]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3026","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3025","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155,259.246,0],"ix":2},"a":{"a":0,"k":[14.057,8.325,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.09,-4.901],[4.385,4.741],[-0.358,-0.386],[-3.222,-5.639],[-0.174,0.168],[-5.224,5.029],[0.377,-0.364]],"o":[[-5.091,4.901],[-3.207,-5.537],[-0.361,-0.391],[4.451,4.813],[0.137,0.243],[5.225,-5.029],[0.38,-0.367],[0,0]],"v":[[27.369,0.888],[12.098,15.59],[0.671,0.127],[0.116,0.723],[11.661,16.469],[12.323,16.521],[27.997,1.431],[27.369,0.888]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3025","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3024","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.52,282.555,0],"ix":2},"a":{"a":0,"k":[16.086,10.025,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.979,-5.058],[4.832,5.89],[-0.337,-0.412],[-3.656,-6.797],[-0.178,0.15],[0,0],[0.399,-0.337]],"o":[[-5.98,5.058],[-3.609,-6.644],[-0.334,-0.408],[4.935,6.014],[0.138,0.256],[0,0],[0.403,-0.341],[0,0]],"v":[[31.415,3.84],[13.477,19.015],[0.788,0.163],[0.089,0.603],[13.009,19.871],[13.673,19.923],[32.043,4.384],[31.415,3.84]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3024","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3023","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.667,248.22,0],"ix":2},"a":{"a":0,"k":[7.326,54.905,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.943,6.799],[0.267,0.85],[-0.157,-0.499],[-0.743,-7.032],[0.362,-7.031],[1.223,-7.092],[1.778,-7.101],[1.994,-7.091],[0.25,-0.891],[-0.141,0.499],[-1.839,7.167],[-1.335,7.305],[-0.487,7.187],[0.611,7.103]],"o":[[-0.602,-7.008],[-0.244,-0.855],[-0.156,-0.498],[2.132,6.786],[0.739,7.021],[-0.37,7.193],[-1.243,7.211],[-1.788,7.144],[-0.25,0.89],[-0.141,0.5],[2.006,-7.122],[1.846,-7.193],[1.296,-7.083],[0.481,-7.095],[0,0]],"v":[[14.181,23.612],[10.427,2.828],[9.659,0.271],[8.866,0.522],[13.121,21.313],[13.615,42.434],[11.139,63.875],[6.523,85.335],[0.767,106.665],[0.016,109.335],[0.837,109.512],[6.689,88.097],[11.55,66.36],[14.3,44.947],[14.181,23.612]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.717647058824,0.717647058824,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3023","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3022","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[151.092,241.97,0],"ix":2},"a":{"a":0,"k":[27.292,56.26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.601,-0.799],[1.316,-1.104],[1.574,-1.335],[1.397,-1.326],[-0.575,-1.708],[-1.481,0.088],[-1.827,-0.111],[0.364,-2.859],[2.601,-1.796],[3.13,-1.186],[3.178,-5.687],[-0.256,0.459],[-0.044,0.078],[2.499,2.492],[2.272,2.831],[1.049,1.501],[0.458,1.631],[-2.661,1.253],[-1.864,-1.492],[-0.559,-0.426],[-1.629,0.623],[0.189,1.396],[1.041,1.226],[0.948,1.489],[0.654,3.365],[-0.995,1.381],[-1.48,-0.234],[-3.399,0.013],[0.379,1.499],[1.159,1.206],[1.497,2.955],[-0.351,1.44],[-1.054,0.784],[-1.272,-0.444],[-1.467,-0.694],[-0.72,0.248],[0.13,0.772],[1.057,1.274],[1.943,3.23],[-0.03,1.725],[-1.171,0.754],[-1.217,-0.643],[-1.202,0.398],[0.227,1.203],[0.361,1.845],[-1.916,2.209],[-2.408,-1.586],[-0.107,-3.127],[-0.119,-1.771],[-1.741,-0.543],[-1.049,0.621],[-1.18,0.18],[-0.542,-1.013],[0.272,-1.313],[2.171,-2.612],[0.162,-1.631],[-1.498,0.459],[-1.937,-2.229],[0.089,-1.111],[0.575,-1.35],[2.308,-2.703],[0.346,-1.567],[-1.706,0.023],[-1.693,0.209],[-0.968,-1.126],[0.423,-1.613]],"o":[[-0.245,0.975],[-1.037,1.364],[-1.564,1.335],[-1.47,1.243],[-1.19,1.132],[0.529,1.546],[1.808,-0.108],[3.201,0.196],[-0.417,3.22],[-2.747,1.896],[-5.888,2.235],[-0.256,0.45],[0.043,-0.078],[-2.76,-2.221],[-2.582,-2.569],[-1.153,-1.424],[-0.979,-1.385],[-0.727,-2.577],[2.416,-1.142],[0.608,0.492],[1.266,0.959],[1.469,-0.565],[-0.216,-1.606],[-1.146,-1.36],[-1.868,-2.92],[-0.309,-1.618],[0.829,-1.164],[3.226,0.495],[1.839,-0.011],[-0.409,-1.622],[-2.26,-2.363],[-0.67,-1.316],[0.302,-1.238],[1.053,-0.774],[1.564,0.545],[0.662,0.315],[0.797,-0.282],[-0.281,-1.672],[-2.413,-2.917],[-0.884,-1.47],[0.02,-1.348],[1.196,-0.769],[0.976,0.522],[1.628,-0.543],[-0.345,-1.844],[-0.546,-2.724],[1.925,-2.209],[2.836,1.868],[0.069,1.778],[0.107,1.586],[1.289,0.412],[0.982,-0.591],[1.164,-0.165],[0.679,1.244],[-0.662,3.3],[-0.99,1.196],[-0.132,1.423],[1.999,-0.601],[0.781,0.893],[-0.125,1.463],[-1.374,3.24],[-1.023,1.203],[-0.375,1.729],[1.729,-0.014],[1.474,-0.178],[1.203,1.402],[0,0]],"v":[[54.38,64.481],[53.072,67.182],[49.37,70.759],[44.661,74.757],[40.259,78.526],[38.482,82.976],[42.278,84.777],[47.62,84.046],[52.296,90.132],[46.596,97.731],[37.561,102.08],[21.741,112.316],[20.995,111.94],[21.136,111.713],[13.23,104.647],[5.939,96.547],[2.618,92.167],[0.266,87.671],[2.927,80.633],[9.302,82.363],[11.051,83.786],[15.789,85.154],[17.526,81.549],[15.149,77.335],[11.95,73.12],[7.933,63.526],[8.659,58.794],[12.329,57.224],[20.655,61.514],[22.666,58.298],[20.022,54.05],[13.406,46.799],[12.742,42.545],[14.828,39.366],[18.52,38.766],[22.563,41.359],[24.788,41.645],[25.77,39.827],[22.95,35.524],[16.379,26.298],[14.665,21.48],[16.532,18.025],[20.283,18.105],[23.828,19.5],[24.727,15.258],[23.416,9.778],[24.921,1.767],[32.437,1.104],[36.305,9.361],[36.217,14.699],[38.743,18.71],[42.371,17.744],[45.543,16.252],[48.384,17.661],[48.607,21.728],[44.262,30.767],[41.532,34.793],[43.941,36.895],[50.444,36.104],[51.252,39.396],[49.978,43.598],[44.407,52.575],[41.861,56.624],[44.58,59.432],[49.553,58.365],[53.411,59.74],[54.38,64.481]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274509804,0.490196078431,0.494117647059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3022","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_11","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3021","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[127.385,239.835,0],"ix":2},"a":{"a":0,"k":[2.567,33.497,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.019,10.309],[-0.224,-0.571],[0.452,-10.725],[0.897,-11.494],[-0.048,0.613],[-0.527,11.224]],"o":[[0.513,-10.934],[-0.224,-0.571],[3.936,10.099],[-0.487,11.521],[-0.047,0.605],[0.874,-11.201],[0,0]],"v":[[4.009,32.923],[0.035,0.597],[0.946,0.311],[5.003,31.992],[2.462,66.515],[1.509,66.559],[4.009,32.923]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3021","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3020","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[135.093,220.232,0],"ix":2},"a":{"a":0,"k":[6.006,6.913,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.869,-3.274],[-1.893,1.745],[-1.097,2.588],[0.357,0.909],[0.237,0.147],[0.429,-0.103],[1.453,-2.057]],"o":[[-1.957,2.766],[2.55,-0.215],[2.063,-1.911],[0.379,-0.894],[-0.1,-0.263],[-0.375,-0.233],[-2.446,0.578],[0,0]],"v":[[4.288,4.672],[0,13.827],[6.87,10.618],[11.5,3.645],[11.862,0.821],[11.361,0.167],[10.071,0.086],[4.288,4.672]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3020","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3019","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[132.056,209.649,0],"ix":2},"a":{"a":0,"k":[4.614,4.679,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.016,-0.144],[-1.648,1.302],[0.054,2.095],[0.472,0.177],[0.222,-0.041],[1.236,-1.153],[0.172,-2.245],[0,0],[-0.124,-0.176]],"o":[[-0.017,0.144],[1.998,-0.647],[1.646,-1.298],[-0.011,-0.506],[-0.21,-0.075],[-1.661,0.304],[-1.647,1.531],[0,0],[0.124,0.174],[0,0]],"v":[[0.779,8.931],[0.725,9.359],[6.384,6.677],[9.227,1.318],[8.59,0.05],[7.929,0.037],[3.676,2.657],[0.166,8.236],[0,8.355],[0.37,8.88]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3019","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3018","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[136.338,232.192,0],"ix":2},"a":{"a":0,"k":[7.709,7.196,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.016,-0.25],[0,0],[-2.628,1.606],[-0.623,3.454],[0.585,0.611],[1.063,-0.441],[1.783,-2.241],[1.382,-2.511],[0,0],[0.011,-0.177],[0.004,-0.029]],"o":[[-0.011,0.254],[0,0],[2.992,-0.731],[2.999,-1.826],[0.148,-0.829],[-0.792,-0.829],[-2.648,1.101],[-1.784,2.247],[0,0],[-0.01,0.182],[0.001,0.034],[0,0]],"v":[[0.037,13.617],[0,14.374],[0.388,14.392],[8.886,10.858],[15.341,2.945],[14.884,0.555],[11.651,0.399],[5.007,5.712],[0.451,12.998],[0.072,12.98],[0.042,13.521],[0.037,13.617]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3018","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3017","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[137.452,246.227,0],"ix":2},"a":{"a":0,"k":[9.407,8.085,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.004,-0.45],[-0.279,0.072],[-3.511,2],[-1.302,1.572],[0.224,2.029],[0.35,0.385],[0.469,0.1],[1.685,-1.081],[3.073,-4.987]],"o":[[-0.005,0.45],[0.262,0.091],[3.91,-0.993],[1.768,-1.012],[1.305,-1.566],[-0.06,-0.518],[-0.323,-0.356],[-1.962,-0.426],[-4.909,3.151],[0,0]],"v":[[0.008,14.777],[0.001,16.125],[0.845,16.082],[12.046,11.564],[16.849,7.825],[18.779,2.188],[18.233,0.753],[16.967,0.111],[11.309,1.624],[0.008,14.777]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3017","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3016","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[136.992,259.728,0],"ix":2},"a":{"a":0,"k":[8.532,5.409,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.077,-0.555],[-3.825,1.857],[-0.892,0.886],[0.064,1.259],[0.297,0.392],[1.118,-0.095],[2.336,-1.807],[1.588,-2.122]],"o":[[0.058,0.561],[4.241,0.148],[1.132,-0.546],[0.891,-0.887],[-0.025,-0.49],[-0.68,-0.892],[-2.941,0.255],[-2.101,1.617],[0,0]],"v":[[0,9.136],[0.196,10.808],[12.445,7.733],[15.596,5.694],[17.059,2.335],[16.596,0.954],[13.515,0.026],[5.456,3.391],[0,9.136]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3016","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Caminho 3015","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[121.992,201.428,0],"ix":2},"a":{"a":0,"k":[3.684,6.548,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.049,-0.132],[0.726,2.137],[1.97,1.443],[0.549,-0.486],[-0.136,-0.585],[-3.454,-2.682]],"o":[[0.049,0.131],[0.109,-2.258],[-0.786,-2.307],[-0.587,-0.434],[-0.448,0.397],[0.962,4.267],[0,0]],"v":[[7.192,12.702],[7.341,13.097],[6.508,6.419],[2.348,0.539],[0.348,0.233],[0.101,1.923],[7,12.774]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3015","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Caminho 3014","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[122.556,210.566,0],"ix":2},"a":{"a":0,"k":[4.877,3.552,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.112,-0.534],[-0.977,-0.719],[-1.947,-0.502],[-0.626,0.189],[0,0],[0.079,0.331],[3.085,1.171],[0.351,-0.156]],"o":[[-0.495,0.226],[0.243,1.188],[1.619,1.198],[0.629,0.159],[0,0],[-0.075,-0.332],[-2.03,-2.606],[-0.361,-0.139],[0,0]],"v":[[0.536,0.073],[0.04,1.503],[2.201,4.332],[7.619,6.914],[9.544,7.008],[9.754,6.997],[9.522,6],[1.66,0.179],[0.536,0.073]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3014","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Caminho 3013","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[122.778,219.417,0],"ix":2},"a":{"a":0,"k":[6.118,7.885,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.037,0.007],[0.008,0.081],[0,0],[4.477,3.446],[0.427,0.222],[0.771,-0.25],[-1.143,-2.001],[-1.617,-1.643],[-2.328,-0.302],[-0.04,0.074]],"o":[[0.038,-0.001],[0.001,-0.076],[0,0],[-0.991,-5.564],[-0.368,-0.287],[-0.737,-0.377],[-0.256,2.292],[1.144,2.006],[1.653,1.673],[0.111,0.013],[0,0]],"v":[[12.127,15.639],[12.236,15.628],[12.229,15.395],[12.157,15.398],[3.559,1.227],[2.354,0.437],[0.053,0.111],[1.636,6.725],[5.972,12.091],[11.832,15.768],[12.127,15.639]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3013","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Caminho 3012","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.819,229.401,0],"ix":2},"a":{"a":0,"k":[7.824,9.108,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.828,-1.435],[-5.911,-1.759],[3.085,3.8],[2.583,0.896],[0.393,-0.059],[0.053,-1.025]],"o":[[-0.078,1.653],[3.092,5.337],[-1.174,-4.748],[-1.724,-2.125],[-0.375,-0.129],[-1.011,0.147],[0,0]],"v":[[0.006,2.354],[1.453,7.031],[15.649,18.216],[9.154,5.181],[2.773,0.191],[1.608,0.017],[0.006,2.354]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3012","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Caminho 3011","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[119.244,243.519,0],"ix":2},"a":{"a":0,"k":[8.262,10.363,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.043,-0.49],[-4.159,-3.396],[-2.863,-1.432],[1.12,2.29],[4.664,3.094],[0.698,0.103],[0.351,-0.611]],"o":[[-0.242,0.428],[0.469,5.347],[2.479,2.029],[0.518,-2.492],[-2.459,-5.026],[-0.588,-0.389],[-0.697,-0.097],[0,0]],"v":[[0.214,0.779],[0.024,2.223],[8.329,15.515],[16.37,20.725],[14.904,13.354],[3.965,0.889],[2.058,0.021],[0.214,0.779]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3011","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Caminho 3010","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[117.902,256.66,0],"ix":2},"a":{"a":0,"k":[10.559,7.48,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.778,-0.902],[-7.402,-0.67],[-0.174,0.228],[0.025,0.295],[2.96,2.563],[3.963,-0.356],[0.389,-1.177]],"o":[[-0.368,1.132],[4.846,5.635],[0.166,-0.228],[-0.034,-0.296],[-1.867,-3.442],[-3.005,-2.61],[-1.236,0.106],[0,0]],"v":[[0.095,1.806],[1.267,5.006],[20.612,14.959],[21.117,14.274],[21.029,13.389],[14.044,4.03],[3.131,0.046],[0.095,1.806]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.294117647059,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3010","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_12","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3008","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[119.052,268.367,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.828],[0.463,0.16],[0.483,-0.147],[0,0],[-0.547,-0.837],[-0.339,-0.184],[-0.103,-0.036],[-0.482,0.147]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.516,-0.178],[0,0],[-0.946,0.321],[0.189,0.288],[0.121,0.065],[0.514,0.178],[0,0]],"v":[[2.968,7.993],[17.294,3.135],[18.019,1.04],[16.833,0.138],[15.316,0.106],[0.989,4.963],[0.266,7.059],[1.099,7.816],[1.452,7.96],[2.968,7.993]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3008","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3009","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130.585,290.521,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.827],[0.463,0.16],[0.483,-0.147],[0,0],[-0.547,-0.837],[-0.339,-0.185],[-0.103,-0.036],[-0.482,0.145]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.516,-0.178],[0,0],[-0.946,0.322],[0.189,0.288],[0.121,0.064],[0.514,0.178],[0,0]],"v":[[2.968,7.993],[17.294,3.135],[18.019,1.04],[16.833,0.138],[15.316,0.106],[0.989,4.962],[0.266,7.059],[1.099,7.816],[1.452,7.96],[2.968,7.993]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3009","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 3007","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[105.969,239.835,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.828],[0.464,0.16],[0.483,-0.147],[0,0],[-0.547,-0.837],[-0.34,-0.184],[-0.103,-0.036],[-0.483,0.147]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.514,-0.178],[0,0],[-0.946,0.322],[0.188,0.288],[0.121,0.064],[0.514,0.178],[0,0]],"v":[[2.968,7.993],[17.294,3.135],[18.019,1.04],[16.832,0.138],[15.316,0.106],[0.989,4.962],[0.266,7.059],[1.099,7.816],[1.452,7.96],[2.968,7.993]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3007","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3006","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[94.436,217.681,0],"ix":2},"a":{"a":0,"k":[9.134,4.049,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.521,0.828],[0.463,0.16],[0.483,-0.145],[0,0],[-0.547,-0.837],[-0.339,-0.184],[-0.103,-0.035],[-0.482,0.147]],"o":[[0,0],[0.921,-0.329],[-0.264,-0.404],[-0.516,-0.178],[0,0],[-0.946,0.321],[0.189,0.289],[0.121,0.065],[0.514,0.178],[0,0]],"v":[[2.968,7.992],[17.294,3.135],[18.019,1.039],[16.833,0.138],[15.316,0.105],[0.989,4.963],[0.266,7.058],[1.099,7.815],[1.452,7.96],[2.968,7.992]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3006","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3005","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[108.704,258.301,0],"ix":2},"a":{"a":0,"k":[33.704,56.691,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.503,-4.837],[0,0],[-7.501,3.882],[-0.789,0.775],[4.33,8.368],[0,0],[0,0],[0.363,2.449],[-0.412,2.236],[-2.194,2.054],[1.013,-0.524],[0.823,-4.473]],"o":[[-0.825,4.473],[0,0],[5.005,9.674],[1.013,-0.524],[-6.997,1.412],[0,0],[0,0],[-1.251,-2.419],[-0.426,-2.477],[0.599,-3.254],[-1.088,0.195],[-3.75,1.941],[0,0]],"v":[[0.322,11.251],[2.741,25.759],[41.937,101.506],[64.688,112.024],[67.408,110.065],[47.844,98.449],[29.949,63.865],[8.649,22.702],[6.208,15.319],[6.231,8.195],[10.453,0],[7.284,1.088],[0.322,11.251]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.619607843137,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3005","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 3004","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[113.934,256.643,0],"ix":2},"a":{"a":0,"k":[33.03,55.282,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-6.996,1.412],[4.33,8.368],[0,0],[6.996,-1.414],[0.599,-3.253],[-0.427,-2.477],[-1.251,-2.419]],"o":[[0,0],[4.33,8.368],[5.194,-4.895],[0,0],[-4.33,-8.368],[-2.194,2.054],[-0.412,2.237],[0.363,2.449],[0,0]],"v":[[2.745,22.952],[41.94,98.699],[61.504,110.314],[63.321,87.636],[24.125,11.888],[4.549,0.25],[0.326,8.444],[0.304,15.569],[2.745,22.952]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.764705882353,0.466666666667,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3004","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_13","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3056","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":20,"s":[100]},{"t":146,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":0,"s":[125.954,230.277,0],"to":[0.417,-8.083,0],"ti":[-0.417,13.083,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":30,"s":[128.454,181.777,0],"to":[0.417,-13.083,0],"ti":[0,5,0]},{"t":195,"s":[128.454,151.777,0]}],"ix":2},"a":{"a":0,"k":[3.546,3.546,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":19.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":33.457,"s":[95,95,100]},{"t":47,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = transform.scale;"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.303,-1.934],[1.935,-0.303],[0.302,1.934],[-1.934,0.302]],"o":[[1.934,-0.302],[0.302,1.934],[-1.934,0.303],[-0.303,-1.935],[0,0]],"v":[[2.998,0.043],[7.049,2.998],[4.093,7.049],[0.043,4.094],[2.998,0.043]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3041","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 3055","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":22,"s":[100]},{"t":148,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[126.426,229.697,0],"to":[-1.333,-13.25,0],"ti":[1.333,18.25,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":32,"s":[118.426,150.197,0],"to":[-1.333,-18.25,0],"ti":[0,5,0]},{"t":195,"s":[118.426,120.197,0]}],"ix":2},"a":{"a":0,"k":[5.188,5.188,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":21.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":35.457,"s":[95,95,100]},{"t":49,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.442,-2.831],[2.831,-0.442],[0.442,2.83],[-2.83,0.442]],"o":[[2.83,-0.442],[0.442,2.83],[-2.83,0.444],[-0.441,-2.831],[0,0]],"v":[[4.387,0.063],[10.313,4.387],[5.989,10.312],[0.063,5.989],[4.387,0.063]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3040","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2,"op":3602,"st":2,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Retângulo 17287","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":24,"s":[100]},{"t":150,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[295.736]},{"t":591,"s":[685.736]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":4,"s":[126.234,229.913,0],"to":[2.167,-11.75,0],"ti":[-2.167,16.75,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":34,"s":[139.234,159.413,0],"to":[2.167,-16.75,0],"ti":[0,5,0]},{"t":195,"s":[139.234,129.413,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":23.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":37.457,"s":[95,95,100]},{"t":51,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[8.504,8.505],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Retângulo 17284","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":3604,"st":4,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 3054","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":26,"s":[100]},{"t":152,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":6,"s":[126.559,229.522,0],"to":[4.833,-14.833,0],"ti":[-4.833,19.833,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":36,"s":[155.559,140.522,0],"to":[4.833,-19.833,0],"ti":[0,5,0]},{"t":195,"s":[155.559,110.522,0]}],"ix":2},"a":{"a":0,"k":[6.105,6.105,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":39.457,"s":[95,95,100]},{"t":53,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.325,0.521],[-0.52,-3.33],[3.325,-0.519],[0.519,3.324]],"o":[[-0.522,-3.33],[3.324,-0.52],[0.519,3.324],[-3.324,0.519],[0,0]],"v":[[0.074,7.051],[5.159,0.074],[12.137,5.165],[7.045,12.137],[0.074,7.051]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.326,-2.084],[-2.084,0.326],[0.325,2.08],[2.084,-0.326]],"o":[[-2.084,0.326],[0.325,2.078],[2.084,-0.326],[-0.326,-2.084],[0,0]],"v":[[5.511,2.328],[2.328,6.699],[6.693,9.883],[9.883,5.517],[5.511,2.328]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3039","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":3606,"st":6,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 3053","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":27,"s":[100]},{"t":153,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":591,"s":[390]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.99,"y":1},"o":{"x":0.2,"y":0},"t":7,"s":[128.525,232.07,0],"to":[0.167,-17.083,0],"ti":[-0.167,22.083,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.01,"y":0},"t":37,"s":[129.525,129.57,0],"to":[0.167,-22.083,0],"ti":[0,5,0]},{"t":195,"s":[129.525,99.57,0]}],"ix":2},"a":{"a":0,"k":[5.328,5.34,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":7,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":26.916,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":40.457,"s":[95,95,100]},{"t":54,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.675,7.555],[3.391,10.679],[0.844,8.821],[3.122,5.692],[0,3.42],[1.856,0.868],[4.986,3.145],[7.28,0],[9.827,1.857],[7.532,5.002],[10.656,7.287],[8.792,9.834]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3038","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":3607,"st":7,"bm":0}]},{"id":"comp_14","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"quadrados","parent":2,"refId":"comp_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":-18,"op":3582,"st":-18,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"celular","refId":"comp_29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[95,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_15","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"quadradocomicone","refId":"comp_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2179","refId":"comp_22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[219.649,266.884,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":29,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":46,"s":[95,95,100]},{"t":63,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":4,"op":3604,"st":4,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Grupo 2176","refId":"comp_24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275.291,204.69,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":2,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":27,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":44,"s":[95,95,100]},{"t":61,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":2,"op":3602,"st":2,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"quadradoanimado","refId":"comp_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_16","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Caminho 3003 Comp 1","parent":3,"refId":"comp_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[298.982,244.831],[250.232,244.831],[250.232,272.804],[298.982,272.804]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":-12,"op":3588,"st":-12,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Caminho 3002 Comp 1","parent":3,"refId":"comp_18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,406,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[298.982,259.831],[250.232,259.831],[250.232,300.635],[298.982,300.635]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":-12,"op":3588,"st":-12,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Retângulo 17283 Comp 1","parent":4,"refId":"comp_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-62.291,165.659,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[252.043,274.25],[210.278,274.25],[210.278,279.779],[252.043,279.779]],"c":true}]},{"t":53,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[295.016,274.25],[253.25,274.25],[253.25,279.779],[295.016,279.779]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":375,"h":812,"ip":-12,"op":3588,"st":-12,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Grupo 2182","refId":"comp_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275.291,265.841,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":6,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":31,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":48,"s":[95,95,100]},{"t":65,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":6,"op":3606,"st":6,"bm":0}]},{"id":"comp_17","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3003","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":29,"s":[-274]},{"t":65,"s":[0]}],"ix":10},"p":{"a":0,"k":[255.926,272.935,0],"ix":2},"a":{"a":0,"k":[-0.777,16.81,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":37,"s":[0,51,100]},{"t":65,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-19.427,-0.534],[-1.57,-4.823],[0,0]],"o":[[0,0],[0,0],[11.678,0.319],[1.058,3.213],[0,0]],"v":[[36.437,17.12],[0.025,17.12],[17.985,0.012],[35.544,11.249],[36.437,17.12]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3003","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_18","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3002","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[274.262,263.115,0],"to":[0,-1.989,0],"ti":[0,1.989,0]},{"t":65,"s":[274.262,251.181,0]}],"ix":2},"a":{"a":0,"k":[3.135,3.13,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.724,0],[0,-1.725],[1.735,0],[0,1.735]],"o":[[0,-1.725],[1.735,0],[0,1.735],[-1.724,0],[0,0]],"v":[[0,3.13],[3.14,0],[6.27,3.13],[3.14,6.26],[0,3.13]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3002","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_19","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Retângulo 17283","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[274.683,276.71,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-22.997,0.195]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[38.412,2.822],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-19.12,-0.331],"ix":2},"a":{"a":0,"k":[-19.12,-0.331],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Retângulo 17283","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_20","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2181","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.305],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2180","parent":1,"refId":"comp_21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.305],[0,50.305]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_21","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3001","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.053,50.305],[0,42.252],[0,8.053],[8.053,0],[42.252,0],[50.305,8.053],[50.305,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5647058823529412,0.9176470588235294,0.5764705882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3001","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_22","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2178","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.305],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2177","parent":1,"refId":"comp_23","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.305],[0,50.305]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_23","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 3000","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.052,50.305],[0,42.252],[0,8.053],[8.052,0],[42.252,0],[50.303,8.053],[50.303,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 3000","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_24","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2175","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.305],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2174","parent":1,"refId":"comp_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.305],[0,50.305]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_25","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 2999","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.152,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.428,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.053,50.305],[0,42.252],[0,8.053],[8.053,0],[42.252,0],[50.305,8.053],[50.305,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2999","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_26","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Grupo 2173","refId":"comp_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[219.649,205.733,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":25,"s":[110,110,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[95,95,100]},{"t":59,"s":[100,100,100]}],"ix":6}},"ao":0,"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_27","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Grupo 2172","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.153,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50.305,50.306],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Grupo 2171","parent":1,"refId":"comp_28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[25.5,25.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[50.305,0],[50.305,50.306],[0,50.306]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":51,"h":51,"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_28","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 2998","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.152,25.153,0],"ix":2},"a":{"a":0,"k":[25.152,25.152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,4.428],[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0]],"o":[[0,0],[-4.427,0],[0,0],[0,-4.428],[0,0],[4.43,0],[0,0],[0,4.428],[0,0]],"v":[[42.252,50.305],[8.052,50.305],[0,42.252],[0,8.053],[8.052,0],[42.252,0],[50.303,8.053],[50.303,42.252],[42.252,50.305]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.7215686274509804,0.9137254901960784,0.5254901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2998","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_29","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Caminho 2997","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.51,391.907,0],"ix":2},"a":{"a":0,"k":[56.555,11.277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[7.33,0],[0,0],[0,7.321],[0,0],[0,0],[-5.479,0],[0,0],[0,5.48]],"o":[[0,0],[0,7.321],[0,0],[-7.313,0],[0,0],[0,0],[0,5.48],[0,0],[5.479,0],[0,0]],"v":[[113.109,0],[113.109,9.234],[99.79,22.553],[13.319,22.553],[0,9.234],[0,0],[2.319,0],[12.283,9.956],[100.682,9.956],[110.637,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2997","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Caminho 2996","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.51,268.159,0],"ix":2},"a":{"a":0,"k":[56.555,112.472,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[5.479,0],[0,0],[0,-5.479],[0,0],[0,0],[0,0],[-7.313,0],[0,0],[0,-7.33]],"o":[[0,0],[0,0],[0,0],[0,-5.479],[0,0],[-5.479,0],[0,0],[0,0],[0,0],[0,-7.33],[0,0],[7.33,0],[0,0]],"v":[[113.109,13.319],[113.109,224.943],[110.637,224.943],[110.637,14.219],[100.682,4.255],[12.283,4.255],[2.319,14.219],[2.319,224.943],[0,224.943],[0,13.319],[13.319,0],[99.79,0],[113.109,13.319]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2996","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Caminho 2995","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.516,164.596,0],"ix":2},"a":{"a":0,"k":[19.56,4.65,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.434,0],[0,-1.434],[-1.426,0],[0,1.426]],"o":[[0,-1.434],[-1.426,0],[0,1.426],[1.434,0],[0,0]],"v":[[12.689,4.12],[10.095,1.525],[7.509,4.12],[10.095,6.705],[12.689,4.12]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.706],[0,0],[-0.704,0],[0,0],[0,0.713],[0,0],[0.713,0]],"o":[[0,0],[-0.704,0],[0,0],[0,0.713],[0,0],[0.713,0],[0,0],[0,-0.706],[0,0]],"v":[[22.03,1.525],[16.949,1.525],[15.665,2.81],[15.665,4.12],[16.949,5.403],[22.03,5.403],[23.315,4.12],[23.315,2.81],[22.03,1.525]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.034,-3.954],[2.976,0],[0,0],[0,0],[0.042,3.945],[0,0]],"o":[[0,0],[0,0],[-0.041,3.945],[0,0],[0,0],[-2.975,0],[-0.032,-3.954],[0,0]],"v":[[0,0],[39.12,0],[34.877,4.683],[28.544,9.299],[19.56,9.299],[10.576,9.299],[4.243,4.683],[0,0]],"c":false},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,-1.219],[-1.277,0],[0,1.219],[1.284,0]],"o":[[-1.277,0],[0,1.219],[1.284,0],[0,-1.219],[0,0]],"v":[[28.653,1.666],[26.331,3.871],[28.653,6.075],[30.974,3.871],[28.653,1.666]],"c":false},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.243137254902,0.223529411765,0.309803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2995","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Caminho 2994","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.446,163.41,0],"ix":2},"a":{"a":0,"k":[3.825,1.94,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.713,0],[0,0],[0,0.713],[0,0],[-0.704,0],[0,0],[0,-0.704]],"o":[[0,0],[0,0.713],[0,0],[-0.704,0],[0,0],[0,-0.704],[0,0],[0.713,0],[0,0]],"v":[[7.65,1.285],[7.65,2.594],[6.365,3.879],[1.285,3.879],[0,2.594],[0,1.285],[1.285,0],[6.365,0],[7.65,1.285]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960784314,0.121568627451,0.160784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2994","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Caminho 2993","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.608,163.817,0],"ix":2},"a":{"a":0,"k":[2.319,2.208,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.283,0],[0,1.215],[-1.274,0],[0,-1.214]],"o":[[0,1.215],[-1.274,0],[0,-1.214],[1.283,0],[0,0]],"v":[[4.638,2.208],[2.319,4.416],[0,2.208],[2.319,0],[4.638,2.208]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317647058824,0.341176470588,0.376470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2993","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Caminho 2992","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[202.055,164.061,0],"ix":2},"a":{"a":0,"k":[2.59,2.59,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-1.434],[1.434,0],[0,1.426],[-1.426,0]],"o":[[1.434,0],[0,1.426],[-1.426,0],[0,-1.434],[0,0]],"v":[[2.586,0],[5.18,2.595],[2.586,5.181],[0,2.595],[2.586,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137254902,0.254901960784,0.294117647059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2992","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Caminho 2991","sr":1,"ks":{"o":{"a":0,"k":98,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.434,275.264,0],"ix":2},"a":{"a":0,"k":[54.159,115.322,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.479,0],[0,0],[0,5.479],[0,0],[-5.479,0],[0,0],[0,-5.479]],"o":[[0,0],[0,5.479],[0,0],[-5.479,0],[0,0],[0,-5.479],[0,0],[5.479,0],[0,0]],"v":[[108.318,9.964],[108.318,220.688],[98.362,230.644],[9.964,230.644],[0,220.688],[0,9.964],[9.964,0],[98.362,0],[108.318,9.964]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2991","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Caminho 2990","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.239,279.443,0],"ix":2},"a":{"a":0,"k":[61.498,127.366,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-9.615],[0,0],[-9.615,0],[0,0],[0,9.615],[0,0],[9.614,0]],"o":[[0,0],[-9.615,0],[0,0],[0,9.615],[0,0],[9.614,0],[0,0],[0,-9.615],[0,0]],"v":[[105.558,0],[17.439,0],[0,17.447],[0,237.294],[17.439,254.732],[105.558,254.732],[122.997,237.294],[122.997,17.447],[105.558,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[9.156,0],[0,0],[0,9.156],[0,0],[-9.157,0],[0,0],[0,-9.156]],"o":[[0,9.156],[0,0],[-9.157,0],[0,0],[0,-9.156],[0,0],[9.156,0],[0,0]],"v":[[122.172,237.294],[105.558,253.899],[17.439,253.899],[0.833,237.294],[0.833,17.447],[17.439,0.832],[105.558,0.832],[122.172,17.447]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.8,0.8,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2990","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Caminho 2989","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211.243,279.443,0],"ix":2},"a":{"a":0,"k":[61.086,126.95,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-9.359],[0,0],[-9.352,0],[0,0],[0,9.369],[0,0],[9.359,0]],"o":[[0,0],[-9.352,0],[0,0],[0,9.369],[0,0],[9.359,0],[0,0],[0,-9.359],[0,0]],"v":[[105.142,0],[17.023,0],[0,17.031],[0,236.878],[17.023,253.9],[105.142,253.9],[122.172,236.878],[122.172,17.031],[105.142,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.478],[0,0],[5.479,0],[0,0],[0,5.48],[0,0],[-5.478,0]],"o":[[5.479,0],[0,0],[0,5.48],[0,0],[-5.478,0],[0,0],[0,-5.478],[0,0]],"v":[[105.481,7.449],[115.437,17.413],[115.437,228.136],[105.481,238.093],[17.082,238.093],[7.119,228.136],[7.119,17.413],[17.082,7.449]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.160784313725,0.160784313725,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Caminho 2989","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"relogio","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[179,349,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":5,"op":3605,"st":5,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"sacodepao","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[197,353,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":15,"op":3615,"st":15,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"elementosesq","refId":"comp_13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[0]},{"t":36,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[176.214,353.201,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":18,"op":3618,"st":18,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"celular","refId":"comp_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[197,346,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"elementosesq","refId":"comp_13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[0]},{"t":37,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[244.377,275.164,0],"ix":2},"a":{"a":0,"k":[187.5,406,0],"ix":1},"s":{"a":0,"k":[-83,83,100],"ix":6}},"ao":0,"w":375,"h":812,"ip":20,"op":3620,"st":20,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/enatega-multivendor-rider/src/assets/rest_icon.png b/enatega-multivendor-rider/src/assets/rest_icon.png
new file mode 100644
index 0000000..25c14a7
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/rest_icon.png differ
diff --git a/enatega-multivendor-rider/src/assets/rider.png b/enatega-multivendor-rider/src/assets/rider.png
new file mode 100644
index 0000000..a12772f
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/rider.png differ
diff --git a/enatega-multivendor-rider/src/assets/rider_icon.png b/enatega-multivendor-rider/src/assets/rider_icon.png
new file mode 100644
index 0000000..0e03305
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/rider_icon.png differ
diff --git a/enatega-multivendor-rider/src/assets/svg/Component1.svg b/enatega-multivendor-rider/src/assets/svg/Component1.svg
new file mode 100644
index 0000000..39eed16
--- /dev/null
+++ b/enatega-multivendor-rider/src/assets/svg/Component1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/enatega-multivendor-rider/src/assets/svg/DeliveryBoy.png b/enatega-multivendor-rider/src/assets/svg/DeliveryBoy.png
new file mode 100644
index 0000000..b1a6615
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/svg/DeliveryBoy.png differ
diff --git a/enatega-multivendor-rider/src/assets/svg/Ellipse20.svg b/enatega-multivendor-rider/src/assets/svg/Ellipse20.svg
new file mode 100644
index 0000000..65135af
--- /dev/null
+++ b/enatega-multivendor-rider/src/assets/svg/Ellipse20.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/enatega-multivendor-rider/src/assets/svg/LocationPermission.js b/enatega-multivendor-rider/src/assets/svg/LocationPermission.js
new file mode 100644
index 0000000..bbe2333
--- /dev/null
+++ b/enatega-multivendor-rider/src/assets/svg/LocationPermission.js
@@ -0,0 +1,560 @@
+import React, { useContext } from 'react'
+import Svg, { Path, G, Circle } from 'react-native-svg'
+import ThemeContext from '../../../ui/ThemeContext/ThemeContext'
+import { theme } from '../../../utils/themeColors'
+
+function LocationPermission(props) {
+ const themeContext = useContext(ThemeContext)
+ const currentTheme = theme[themeContext.ThemeValue]
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default LocationPermission
diff --git a/enatega-multivendor-rider/src/assets/svg/RiderLogin.png b/enatega-multivendor-rider/src/assets/svg/RiderLogin.png
new file mode 100644
index 0000000..76a57d4
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/svg/RiderLogin.png differ
diff --git a/enatega-multivendor-rider/src/assets/svg/RiderLogin.svg b/enatega-multivendor-rider/src/assets/svg/RiderLogin.svg
new file mode 100644
index 0000000..ed2d05d
--- /dev/null
+++ b/enatega-multivendor-rider/src/assets/svg/RiderLogin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/enatega-multivendor-rider/src/assets/svg/WalletBg.png b/enatega-multivendor-rider/src/assets/svg/WalletBg.png
new file mode 100644
index 0000000..9b80060
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/svg/WalletBg.png differ
diff --git a/enatega-multivendor-rider/src/assets/svg/doneIcon.png b/enatega-multivendor-rider/src/assets/svg/doneIcon.png
new file mode 100644
index 0000000..e6a52ce
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/svg/doneIcon.png differ
diff --git a/enatega-multivendor-rider/src/assets/svg/restaurant.png b/enatega-multivendor-rider/src/assets/svg/restaurant.png
new file mode 100644
index 0000000..4a1f78e
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/svg/restaurant.png differ
diff --git a/enatega-multivendor-rider/src/assets/svg/tick.png b/enatega-multivendor-rider/src/assets/svg/tick.png
new file mode 100644
index 0000000..73a5d61
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/svg/tick.png differ
diff --git a/enatega-multivendor-rider/src/assets/wallet.png b/enatega-multivendor-rider/src/assets/wallet.png
new file mode 100644
index 0000000..126301d
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/wallet.png differ
diff --git a/enatega-multivendor-rider/src/assets/walletIcon.png b/enatega-multivendor-rider/src/assets/walletIcon.png
new file mode 100644
index 0000000..54def2a
Binary files /dev/null and b/enatega-multivendor-rider/src/assets/walletIcon.png differ
diff --git a/enatega-multivendor-rider/src/components/Amount/Amount.js b/enatega-multivendor-rider/src/components/Amount/Amount.js
new file mode 100644
index 0000000..5ef4597
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Amount/Amount.js
@@ -0,0 +1,55 @@
+import { View, TouchableOpacity } from 'react-native'
+import React, { useContext } from 'react'
+import styles from './style'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import { FontAwesome5 } from '@expo/vector-icons'
+import { useNavigation } from '@react-navigation/native'
+import ConfigurationContext from '../../context/configuration'
+
+const Amount = ({
+ text,
+ amount,
+ icon = false,
+ shadow = false,
+ disabled = true,
+ bg = false
+}) => {
+ const navigation = useNavigation()
+ const configuration = useContext(ConfigurationContext)
+ return (
+
+ navigation.navigate('AvailableCash', { prevBtn: 'wallet' })
+ }
+ disabled={disabled}
+ activeOpacity={0.7}
+ style={[styles.container, shadow && styles.shadow, bg && styles.bg]}>
+
+ {text}
+
+
+
+ {configuration.currencySymbol}
+
+
+ {amount}
+
+ {icon && (
+
+ )}
+
+
+ )
+}
+
+export default Amount
diff --git a/enatega-multivendor-rider/src/components/Amount/style.js b/enatega-multivendor-rider/src/components/Amount/style.js
new file mode 100644
index 0000000..25a441c
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Amount/style.js
@@ -0,0 +1,42 @@
+import { StyleSheet, Dimensions, Platform } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+import colors from '../../utilities/colors'
+const { height, width } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ container: {
+ height: height * 0.18,
+ width: width * 0.8,
+ alignSelf: 'center',
+ alignItems: 'center',
+ borderRadius: 20,
+ padding: 30
+ },
+ bg: {
+ backgroundColor: colors.black
+ },
+ shadow: {
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 5
+ },
+ shadowOpacity: 0.34,
+ shadowRadius: 6.27,
+ elevation: 10
+ },
+ amount: {
+ display: 'flex',
+ flexDirection: 'row',
+ paddingTop: Platform.OS === 'android' ? null : 5,
+ alignItems: 'center'
+ },
+ sign: {
+ marginTop: 8,
+ ...alignment.PRxSmall
+ },
+ icon: {
+ marginTop: 5,
+ ...alignment.PLsmall
+ }
+})
diff --git a/enatega-multivendor-rider/src/components/ComingSoon/ComingSoon.js b/enatega-multivendor-rider/src/components/ComingSoon/ComingSoon.js
new file mode 100644
index 0000000..fba194c
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/ComingSoon/ComingSoon.js
@@ -0,0 +1,18 @@
+import React from 'react'
+import { StyleSheet, View } from 'react-native'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import {useTranslation} from 'react-i18next'
+const ComingSoon = () => {
+ const {t} = useTranslation()
+ return (
+
+
+ {t('walletFeature')}
+
+
+ )
+}
+const styles = StyleSheet.create({
+ container: { flex: 1, justifyContent: 'center', alignItems: 'center' }
+})
+export default ComingSoon
diff --git a/enatega-multivendor-rider/src/components/FdRadioBtn/RadioBtn.js b/enatega-multivendor-rider/src/components/FdRadioBtn/RadioBtn.js
new file mode 100644
index 0000000..a0d08c8
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/FdRadioBtn/RadioBtn.js
@@ -0,0 +1,50 @@
+import React from 'react'
+import { TouchableOpacity } from 'react-native'
+import { View } from 'react-native-animatable'
+import PropTypes from 'prop-types'
+import colors from '../../utilities/colors'
+import styles from './styles'
+
+const DEFAULT_SIZE_MULTIPLIER = 0.7
+
+export default function RadioButton(props) {
+ const { size, innerColor, outerColor, isSelected, onPress } = props
+ const outerStyle = {
+ borderColor: outerColor,
+ width: size + size * DEFAULT_SIZE_MULTIPLIER,
+ height: size + size * DEFAULT_SIZE_MULTIPLIER,
+ borderRadius: (size + size * DEFAULT_SIZE_MULTIPLIER) / 2,
+ borderWidth: isSelected ? size / 2 : 1
+ }
+
+ const innerStyle = {
+ width: size / 2,
+ height: size / 2,
+ borderRadius: size / 2,
+ backgroundColor: innerColor
+ }
+
+ return (
+
+ {isSelected ? (
+
+ ) : null}
+
+ )
+}
+
+RadioButton.propTypes = {
+ size: PropTypes.number,
+ innerColor: PropTypes.string,
+ outerColor: PropTypes.string,
+ isSelected: PropTypes.bool,
+ onPress: PropTypes.func
+}
+
+RadioButton.defaultProps = {
+ size: 16,
+ innerColor: colors.radioColor,
+ outerColor: colors.radioOuterColor,
+ isSelected: false,
+ onPress: () => null
+}
diff --git a/enatega-multivendor-rider/src/components/FdRadioBtn/styles.js b/enatega-multivendor-rider/src/components/FdRadioBtn/styles.js
new file mode 100644
index 0000000..8c46fa6
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/FdRadioBtn/styles.js
@@ -0,0 +1,7 @@
+export default {
+ radio: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ alignSelf: 'center'
+ }
+}
diff --git a/enatega-multivendor-rider/src/components/FlashMessage/FlashMessage.js b/enatega-multivendor-rider/src/components/FlashMessage/FlashMessage.js
new file mode 100644
index 0000000..faf8469
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/FlashMessage/FlashMessage.js
@@ -0,0 +1,14 @@
+import { showMessage } from 'react-native-flash-message'
+import PropTypes from 'prop-types'
+
+export const FlashMessage = props => {
+ showMessage({
+ backgroundColor: 'rgba(52, 52, 52, .9)',
+ message: props.message,
+ position: 'center',
+ style: { borderRadius: 40 }
+ })
+}
+FlashMessage.propTypes = {
+ message: PropTypes.string.isRequired
+}
diff --git a/enatega-multivendor-rider/src/components/Header/HeaderIcons/HeaderIcons.js b/enatega-multivendor-rider/src/components/Header/HeaderIcons/HeaderIcons.js
new file mode 100644
index 0000000..1033156
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Header/HeaderIcons/HeaderIcons.js
@@ -0,0 +1,59 @@
+import React from 'react'
+import { Ionicons, MaterialIcons } from '@expo/vector-icons'
+import styles from './styles'
+import { useNavigation } from '@react-navigation/native'
+import { HeaderBackButton } from '@react-navigation/elements'
+import PropTypes from 'prop-types'
+
+function BackButton(props) {
+ if (props.icon === 'leftArrow') {
+ return (
+
+ )
+ } else if (props.icon === 'menu') {
+ return (
+
+ )
+ }
+}
+
+function LeftButton(props) {
+ const navigation = useNavigation()
+ if (props.icon === 'back') {
+ return (
+ BackButton({ icon: 'leftArrow' })}
+ onPress={() => {
+ navigation.goBack()
+ }}
+ />
+ )
+ } else {
+ return (
+ BackButton({ icon: 'menu' })}
+ onPress={() => navigation.toggleDrawer()}
+ />
+ )
+ }
+}
+LeftButton.propTypes = {
+ icon: PropTypes.string
+}
+
+BackButton.propTypes = {
+ icon: PropTypes.string.isRequired
+}
+
+export default LeftButton
diff --git a/enatega-multivendor-rider/src/components/Header/HeaderIcons/styles.js b/enatega-multivendor-rider/src/components/Header/HeaderIcons/styles.js
new file mode 100644
index 0000000..32bd13b
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Header/HeaderIcons/styles.js
@@ -0,0 +1,11 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utilities/alignment'
+
+const styles = StyleSheet.create({
+ leftIconPadding: {
+ ...alignment.PLsmall,
+ ...alignment.PRlarge
+ }
+})
+
+export default styles
diff --git a/enatega-multivendor-rider/src/components/Order/Order.js b/enatega-multivendor-rider/src/components/Order/Order.js
new file mode 100644
index 0000000..296f675
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Order/Order.js
@@ -0,0 +1,149 @@
+import { View, TouchableOpacity } from 'react-native'
+import React from 'react'
+import styles from './style'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import useOrder from './useOrder'
+import Spinner from '../Spinner/Spinner'
+import {useTranslation} from 'react-i18next'
+
+
+const Order = ({ order, orderAmount }) => {
+ const {
+ active,
+ navigation,
+ time,
+ mutateAssignOrder,
+ loadingAssignOrder
+ } = useOrder(order)
+
+ const {t} = useTranslation()
+ return (
+ <>
+
+ {order?.orderStatus === 'ACCEPTED' ||
+ order?.orderStatus === 'PICKED' ? (
+
+ ) : null}
+
+
+ navigation.navigate('OrderDetail', {
+ itemId: order?._id,
+ order
+ })
+ }>
+
+
+ {t('orderID')}
+
+
+ {order?.orderId}
+
+
+
+
+ {t('orderAmount')}
+
+
+ {orderAmount}
+
+
+
+
+ {t('paymentMethod')}
+
+
+ {order?.paymentMethod}
+
+
+ {active === 'MyOrders' && (
+
+
+ {t('deliveryTime')}
+
+
+ {new Date(order?.createdAt).toLocaleDateString()}{' '}
+ {new Date(order?.createdAt).toLocaleTimeString()}
+
+
+ )}
+
+
+ {active === 'NewOrders' && (
+
+
+ {t('timeLeft')}
+
+
+ {time}
+
+
+ )}
+ {active === 'MyOrders' ? (
+
+
+ {order?.orderStatus === 'DELIVERED'
+ ? t('DELIVERED')
+ : t('inProgress')}
+
+
+ ) : (
+ {
+ mutateAssignOrder({
+ variables: { id: order?._id }
+ })
+ }}>
+
+ {loadingAssignOrder ? (
+
+ ) : (
+ t('assignMe')
+ )}
+
+
+ )}
+
+
+
+ >
+ )
+}
+
+export default Order
diff --git a/enatega-multivendor-rider/src/components/Order/style.js b/enatega-multivendor-rider/src/components/Order/style.js
new file mode 100644
index 0000000..59772bb
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Order/style.js
@@ -0,0 +1,85 @@
+import colors from '../../utilities/colors'
+import { Dimensions } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+const { width } = Dimensions.get('window')
+
+const Styles = {
+ container: {
+ width: width * 0.85,
+ alignItems: 'center',
+ borderRadius: 20,
+ padding: 20,
+ paddingBottom: 0,
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 5
+ },
+ shadowOpacity: 0.34,
+ shadowRadius: 6.27,
+ elevation: 10,
+ marginTop: -15,
+ ...alignment.MBmedium
+ },
+ bgWhite: {
+ backgroundColor: colors.white
+ },
+ bgPrimary: {
+ backgroundColor: colors.primary
+ },
+ row: {
+ display: 'flex',
+ flexDirection: 'row',
+ ...alignment.MBsmall
+ },
+ rowItem1: {
+ flex: 7
+ },
+ rowItem2: {
+ flex: 5
+ },
+ horizontalLine: {
+ width: width * 0.78,
+ borderBottomColor: colors.black,
+ borderBottomWidth: 1
+ },
+ timeLeft: {
+ marginTop: 25
+ },
+ time: {
+ marginTop: -8,
+ ...alignment.MLxSmall
+ },
+ btn: {
+ backgroundColor: colors.black,
+ borderRadius: 10,
+ marginTop: 10,
+ height: 60,
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ pt5: {
+ paddingTop: 5
+ },
+ pt15: {
+ paddingTop: 16
+ },
+
+ badge: {
+ display: 'flex',
+ alignSelf: 'flex-end',
+ width: 16,
+ height: 16,
+ borderRadius: 8,
+ zIndex: 999,
+ elevation: 999
+ },
+ bgRed: {
+ backgroundColor: colors.orderUncomplete
+ },
+ bgBlack: {
+ backgroundColor: colors.black
+ }
+}
+
+export default Styles
diff --git a/enatega-multivendor-rider/src/components/Order/useOrder.js b/enatega-multivendor-rider/src/components/Order/useOrder.js
new file mode 100644
index 0000000..4aa77de
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Order/useOrder.js
@@ -0,0 +1,89 @@
+import { useContext, useState, useEffect, useRef } from 'react'
+import { TabsContext } from '../../context/tabs'
+import { useNavigation } from '@react-navigation/native'
+import { gql, useMutation, useSubscription } from '@apollo/client'
+import { assignOrder } from '../../apollo/mutations'
+import { FlashMessage } from '../FlashMessage/FlashMessage'
+import { subscriptionOrder } from '../../apollo/subscriptions'
+import { getRemainingAcceptingTime } from '../../utilities/utils'
+import UserContext from '../../context/user'
+const ASSIGN_ORDER = gql`
+ ${assignOrder}
+`
+
+const useOrder = order => {
+ const { active } = useContext(TabsContext)
+ const { refetchAssigned } = useContext(UserContext)
+ const navigation = useNavigation()
+ const secondsRef = useRef(0)
+ const minutesRef = useRef(2)
+ const timerRef = useRef(null)
+ const [time, setTime] = useState('00:00')
+
+ useEffect(() => {
+ const remainingSeconds = getRemainingAcceptingTime(order?.acceptedAt)
+ if (remainingSeconds > 0) {
+ minutesRef.current = Math.floor(remainingSeconds / 60)
+ secondsRef.current = remainingSeconds % 60
+ timerRef.current = setInterval(() => {
+ if (secondsRef.current > 0) {
+ secondsRef.current = secondsRef.current - 1
+ }
+ if (secondsRef.current < 1) {
+ if (minutesRef.current > 0) {
+ minutesRef.current = minutesRef.current - 1
+ secondsRef.current = 59
+ } else {
+ timerRef.current && clearInterval(timerRef.current)
+ timerRef.current = null
+ refetchAssigned()
+ }
+ }
+ if (secondsRef.current > 0 && secondsRef.current < 10) {
+ setTime(`0${minutesRef.current}:0${secondsRef.current}`)
+ } else {
+ setTime(`0${minutesRef.current}:${secondsRef.current}`)
+ }
+ }, 1000)
+ }
+ return () => timerRef.current && clearInterval(timerRef.current)
+ }, [])
+
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id: order?._id }, skip: !order }
+ )
+ const [mutateAssignOrder, { loading: loadingAssignOrder }] = useMutation(
+ ASSIGN_ORDER,
+ {
+ onCompleted,
+ onError
+ }
+ )
+
+ async function onCompleted(result) {
+ if (result.assignOrder) {
+ console.log(result.assignOrder)
+ }
+ }
+
+ function onError({ graphQLErrors, networkError }) {
+ let message = 'Unknown error occured'
+ if (networkError) message = 'Internal Server Error'
+ if (graphQLErrors) message = graphQLErrors.map(o => o.message).join(', ')
+
+ FlashMessage({ message: message })
+ }
+
+ return {
+ active,
+ navigation,
+ time,
+ mutateAssignOrder,
+ loadingAssignOrder
+ }
+}
+
+export default useOrder
diff --git a/enatega-multivendor-rider/src/components/OrderDetail/Details/Details.js b/enatega-multivendor-rider/src/components/OrderDetail/Details/Details.js
new file mode 100644
index 0000000..decd991
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/OrderDetail/Details/Details.js
@@ -0,0 +1,348 @@
+import { View, TouchableOpacity } from 'react-native'
+import React from 'react'
+import styles from './style'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import colors from '../../../utilities/colors'
+import Spinner from '../../Spinner/Spinner'
+import TextError from '../../Text/TextError/TextError'
+import CountDown from 'react-native-countdown-component'
+import useDetails from './useDetails'
+import {useTranslation} from 'react-i18next'
+
+const Details = ({ orderData, navigation, itemId, distance, duration }) => {
+ const {
+ active,
+ order,
+ dataConfig,
+ loadingConfig,
+ errorConfig,
+ preparationSeconds,
+ currentSeconds,
+ mutateAssignOrder,
+ mutateOrderStatus,
+ loadingAssignOrder,
+ loadingOrderStatus
+ } = useDetails(orderData)
+ const {t} = useTranslation()
+ if (!order) return null
+
+ return (
+
+ {order.orderStatus !== 'DELIVERED' ? (
+ <>
+
+
+ {t('preparing')}
+
+
+
+
+
+ {t('timeLeftForMeal')}
+
+
+
+ {distance !== null ? (
+
+
+ {t('distanceToDestination')}
+
+
+ {`${distance.toFixed(2)} km`}
+
+
+ ) : null}
+ {duration !== null ? (
+
+
+ {t('durationToDestination')}
+
+
+ {`${duration.toFixed(0)} mins`}
+
+
+ ) : null}
+ {active === 'NewOrders' ? (
+
+ {
+ mutateAssignOrder({ variables: { id: itemId } })
+ }}
+ style={[styles.btn, { backgroundColor: colors.black }]}>
+
+ {loadingAssignOrder ? (
+
+ ) : (
+ t('assignMe')
+ )}
+
+
+
+ ) : order.orderStatus === 'ASSIGNED' ? (
+
+
+ {
+ mutateOrderStatus({
+ variables: { id: itemId, status: 'PICKED' }
+ })
+ }}
+ activeOpacity={0.8}
+ style={[styles.btn, { backgroundColor: colors.black }]}>
+
+ {loadingOrderStatus ? (
+
+ ) : (
+ t('pick')
+ )}
+
+
+
+ ) : order.orderStatus === 'PICKED' ? (
+
+
+ {
+ mutateOrderStatus({
+ variables: { id: itemId, status: 'DELIVERED' }
+ })
+ }}
+ style={[
+ styles.btn,
+ { backgroundColor: colors.primary },
+
+ ]}>
+
+ {loadingOrderStatus ? (
+
+ ) : (
+ t('markAsDelivered')
+ )}
+
+
+
+ ) : null}
+ >
+ ) : null}
+
+
+
+ {t('OrderDetail')}
+
+
+
+
+
+ )
+}
+
+const OrderDetails = ({ order }) => {
+ const {t} = useTranslation()
+ return (
+
+
+
+ {t('yourOrderFrom')}
+
+
+ {order.restaurant.name}
+
+
+
+
+ {t('orderNo')}
+
+
+ {order.orderId}
+
+
+
+
+ {t('deliveryAddress')}
+
+
+ {order.deliveryAddress.deliveryAddress}
+
+
+
+ )
+}
+
+const ItemDetails = ({ order, dataConfig, loading, error }) => {
+ let subTotal = 0
+ const {t} = useTranslation()
+ if (loading) return
+ if (error) return
+ return (
+
+ {order.items.map(item => {
+ subTotal = subTotal + item.variation.price
+ return (
+
+
+ {item.quantity}X
+
+
+
+ {item.title}
+
+ {item.addons
+ ? item.addons.map(addon => (
+
+ {addon.title}
+
+ ))
+ : null}
+
+
+ {dataConfig.configuration.currencySymbol}
+ {item.variation.price}
+
+
+ )
+ })}
+
+
+
+ {t('subTotal')}
+
+
+ {dataConfig.configuration.currencySymbol}
+ {subTotal}
+
+
+
+
+ {t('tip')}
+
+
+ {dataConfig.configuration.currencySymbol}
+ {order.tipping}
+
+
+
+
+ {t('taxCharges')}
+
+
+ {dataConfig.configuration.currencySymbol}
+ {order.taxationAmount}
+
+
+
+
+ {t('delvieryCharges')}
+
+
+ {dataConfig.configuration.currencySymbol}
+ {order.deliveryCharges}
+
+
+
+
+
+ {t('total')}
+
+
+ {dataConfig.configuration.currencySymbol}
+ {order.orderAmount}
+
+
+
+ )
+}
+
+const ChatWithCustomerButton = ({ navigation, order }) => {
+ const { t } = useTranslation();
+
+ return (
+
+ navigation.navigate('ChatWithCustomer', {
+ phoneNumber: order?.user.phone,
+ id: order?._id
+ })
+ }
+ activeOpacity={0.8}
+ style={[styles.btn, { backgroundColor: colors.black }]}>
+
+ {t('chatWithCustomer')}
+
+
+ );
+}
+export default Details
diff --git a/enatega-multivendor-rider/src/components/OrderDetail/Details/style.js b/enatega-multivendor-rider/src/components/OrderDetail/Details/style.js
new file mode 100644
index 0000000..975540f
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/OrderDetail/Details/style.js
@@ -0,0 +1,85 @@
+import colors from '../../../utilities/colors'
+import { Dimensions, StyleSheet } from 'react-native'
+import { alignment } from '../../../utilities/alignment'
+const { height, width } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ container: {
+ backgroundColor: colors.white,
+ borderRadius: 25,
+ marginTop: -25,
+ padding: 20
+ },
+ timeContainer: {
+ ...alignment.Pmedium
+ },
+ btn: {
+ alignSelf: 'center',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: width * 0.7,
+ borderRadius: 10,
+ height: height * 0.07,
+ ...alignment.MBmedium
+ },
+ pt5: {
+ paddingTop: 5
+ },
+ pt15: {
+ paddingTop: 20
+ },
+ heading: {
+ ...alignment.MTmedium
+ },
+ horizontalLine: {
+ alignSelf: 'center',
+ width: width * 0.9,
+ borderBottomWidth: 1,
+ borderBottomColor: colors.fontSecondColor,
+ ...alignment.MTlarge,
+ ...alignment.MBlarge
+ },
+ horizontalLine2: {
+ alignSelf: 'center',
+ width: width * 0.8,
+ borderBottomWidth: 1,
+ borderBottomColor: colors.fontSecondColor,
+ ...alignment.MBmedium
+ },
+ orderDetails: {
+ backgroundColor: colors.white,
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 5
+ },
+ shadowOpacity: 0.34,
+ shadowRadius: 6.27,
+ elevation: 10,
+ borderRadius: 20,
+ ...alignment.MTlarge,
+ ...alignment.MBlarge,
+ ...alignment.Plarge
+ },
+ rowDisplay: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ col1: {
+ flex: 6
+ },
+ col2: {
+ flex: 6,
+ ...alignment.PBmedium
+ },
+ coll1: {
+ flex: 2
+ },
+ coll2: {
+ flex: 7,
+ ...alignment.PBmedium
+ },
+ coll3: {
+ flex: 3
+ }
+})
diff --git a/enatega-multivendor-rider/src/components/OrderDetail/Details/useDetails.js b/enatega-multivendor-rider/src/components/OrderDetail/Details/useDetails.js
new file mode 100644
index 0000000..ea1d5a9
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/OrderDetail/Details/useDetails.js
@@ -0,0 +1,152 @@
+import { useContext, useState, useEffect } from 'react'
+import UserContext from '../../../context/user'
+import { gql, useQuery, useMutation, useSubscription } from '@apollo/client'
+import { configuration, riderOrders } from '../../../apollo/queries'
+import { assignOrder, updateOrderStatusRider } from '../../../apollo/mutations'
+import { TabsContext } from '../../../context/tabs'
+import { FlashMessage } from '../../FlashMessage/FlashMessage'
+import { subscriptionOrder } from '../../../apollo/subscriptions'
+import {useTranslation} from 'react-i18next'
+
+const CONFIGURATION = gql`
+ ${configuration}
+`
+const ASSIGN_ORDER = gql`
+ ${assignOrder}
+`
+const ORDERS = gql`
+ ${riderOrders}
+`
+const UPDATE_ORDER_STATUS = gql`
+ ${updateOrderStatusRider}
+`
+
+const useDetails = orderData => {
+ const { active, setActive } = useContext(TabsContext)
+ const { assignedOrders, loadingAssigned } = useContext(UserContext)
+ const [order, setOrder] = useState(orderData)
+ const {t} = useTranslation()
+ useEffect(() => {
+ if (!loadingAssigned && order) {
+ setOrder(assignedOrders.find(o => o._id === order?._id))
+ }
+ }, [assignedOrders, order])
+
+ const preparationTime = {
+ hours: new Date(order?.preparationTime).getHours(),
+ minutes: new Date(order?.preparationTime).getMinutes(),
+ seconds: new Date(order?.preparationTime).getSeconds()
+ }
+
+ const currentTime = {
+ hours: new Date().getHours(),
+ minutes: new Date().getMinutes(),
+ seconds: new Date().getSeconds()
+ }
+
+ const preparationSeconds =
+ preparationTime.hours * 3600 +
+ preparationTime.minutes * 60 +
+ preparationTime.seconds
+ const currentSeconds =
+ currentTime.hours * 3600 + currentTime.minutes * 60 + currentTime.seconds
+
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id: order?._id }, skip: !order }
+ )
+
+ const {
+ data: dataConfig,
+ loading: loadingConfig,
+ error: errorConfig
+ } = useQuery(CONFIGURATION)
+
+ const [mutateAssignOrder, { loading: loadingAssignOrder }] = useMutation(
+ ASSIGN_ORDER,
+ {
+ onCompleted,
+ onError,
+ update
+ }
+ )
+
+ const [
+ mutateOrderStatus,
+ { loading: loadingOrderStatus }
+ ] = useMutation(UPDATE_ORDER_STATUS, { onCompleted, onError, update })
+
+ async function onCompleted(result) {
+ if (result.updateOrderStatusRider) {
+ FlashMessage({
+ message: `${t('orderMarkedAs')} ${t(result.updateOrderStatusRider.orderStatus)}`
+ })
+ }
+ if (result.assignOrder) {
+ FlashMessage({
+ message: t('orderAssingnedFlash')
+ })
+ setActive('MyOrders')
+ }
+ }
+
+ function onError({ graphQLErrors, networkError }) {
+ let message = t('errorOccured')
+ if (networkError) message = 'Internal Server Error'
+ if (graphQLErrors) message = graphQLErrors.map(o => o.message).join(', ')
+
+ FlashMessage({ message: message })
+ }
+
+ async function update(cache, { data: result }) {
+ if (result.assignOrder) {
+ const data = cache.readQuery({ query: ORDERS })
+ if (data) {
+ const index = data.riderOrders.findIndex(
+ o => o._id === result.assignOrder._id
+ )
+ if (index > -1) {
+ data.riderOrders[index].rider = result.assignOrder.rider
+ data.riderOrders[index].orderStatus = result.assignOrder.orderStatus
+ cache.writeQuery({
+ query: ORDERS,
+ data: { riderOrders: [...data.riderOrders] }
+ })
+ }
+ }
+ }
+ if (result.updateOrderStatusRider) {
+ const data = cache.readQuery({ query: ORDERS })
+ if (data) {
+ const index = data.riderOrders.findIndex(
+ o => o._id === result.updateOrderStatusRider._id
+ )
+ if (index > -1) {
+ data.riderOrders[index].orderStatus =
+ result.updateOrderStatusRider.orderStatus
+ cache.writeQuery({
+ query: ORDERS,
+ data: { riderOrders: [...data.riderOrders] }
+ })
+ }
+ }
+ }
+ }
+ return {
+ active,
+ order,
+ dataConfig,
+ currentSeconds,
+ preparationSeconds,
+ loadingConfig,
+ errorConfig,
+ mutateAssignOrder,
+ mutateOrderStatus,
+ loadingAssignOrder,
+ loadingOrderStatus
+ }
+}
+
+export default useDetails
diff --git a/enatega-multivendor-rider/src/components/OrderDetail/Status/Status.js b/enatega-multivendor-rider/src/components/OrderDetail/Status/Status.js
new file mode 100644
index 0000000..e6def46
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/OrderDetail/Status/Status.js
@@ -0,0 +1,203 @@
+import { Image, View } from 'react-native'
+import React, { useContext, useState, useEffect } from 'react'
+import styles from './style'
+import colors from '../../../utilities/colors'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import Tick from '../../../assets/svg/tick.png'
+import Restaurant from '../../../assets/svg/restaurant.png'
+import DeliveryBoy from '../../../assets/svg/DeliveryBoy.png'
+import UserContext from '../../../context/user'
+import {useTranslation} from 'react-i18next'
+
+/*const STATUS_MESSAGES = {
+ PICKED: {
+ text: i18n.t('youPickedParcel'),
+ subText: i18n.t('youPickedParcel')
+ },
+ // PROCESS: 'Your parcel is in process.',
+ DELIVERED: {
+ text: i18n.t('parcelDelivered'),
+ subText: i18n.t('orderDelivered')
+ },
+ ACCEPTED: { text: i18n.t('newOrder'), subText: i18n.t('hurryUp') },
+ // READY: 'Your parcel is ready.',
+ ASSIGNED: {
+ text: i18n.t('orderAssigned'),
+ subText: i18n.t('orderAssignedSubText')
+ },
+ CANCELLED: {
+ text: i18n.t('orderNotAvailable'),
+ subText: i18n.t('orderNotAvailableSubText')
+ }
+}
+
+const STATUS_ORDER = ['ASSIGNED', 'PICKED', 'DELIVERED']*/
+const formatTime = date =>
+ new Date(date).toLocaleTimeString('en-US', { timeStyle: 'short' })
+
+const Status = ({ orderData, itemId, pickedAt, deliveredAt, assignedAt }) => {
+ const {t} = useTranslation()
+ const STATUS_MESSAGES = {
+ PICKED: {
+ text: t('youPickedParcel'),
+ subText: t('youPickedParcel')
+ },
+ // PROCESS: 'Your parcel is in process.',
+ DELIVERED: {
+ text: t('parcelDelivered'),
+ subText: t('orderDelivered')
+ },
+ ACCEPTED: { text: t('newOrder'), subText: t('hurryUp') },
+ // READY: 'Your parcel is ready.',
+ ASSIGNED: {
+ text: t('orderAssigned'),
+ subText: t('orderAssignedSubText')
+ },
+ CANCELLED: {
+ text: t('orderNotAvailable'),
+ subText: t('orderNotAvailableSubText')
+ }
+ }
+
+ const STATUS_ORDER = [t('ASSIGNED'), t('PICKED'), t('DELIVERED')]
+ const { assignedOrders, loadingAssigned } = useContext(UserContext)
+ const [order, setOrder] = useState(orderData)
+
+ useEffect(() => {
+ if (!loadingAssigned) {
+ setOrder(assignedOrders.find(o => o._id === itemId))
+ }
+ }, [assignedOrders])
+ if (!order) {
+ return (
+
+
+
+
+
+ )
+ }
+ return (
+
+
+
+
+
+
+ = 0}
+ status={STATUS_ORDER[0]}
+ order={order}
+ time={order.assignedAt ? formatTime(order.assignedAt) : null}
+ />
+
+ = 1}
+ status={STATUS_ORDER[1]}
+ order={order}
+ time={order.pickedAt ? formatTime(order.pickedAt) : null}
+ />
+
+ = 2}
+ status={STATUS_ORDER[2]}
+ time={order.deliveredAt ? formatTime(order.deliveredAt) : null}
+ address={order.deliveryAddress.deliveryAddress}
+ order={order}
+ />
+
+
+ )
+}
+
+const StatusRow = ({
+ status,
+ time,
+ address = null,
+ order,
+ fillColor = styles.bgSecondary
+}) => {
+ return (
+
+
+
+
+ {status}
+
+ {address !== null && (
+
+ {address}
+
+ )}
+
+
+
+ {time}
+
+
+
+ )
+}
+
+const StatusMessage = ({ message, subText }) => {
+ return (
+
+
+ {message}
+
+
+ {subText}
+
+
+ )
+}
+
+const Icon = ({ name }) => {
+ return (
+
+
+
+ )
+}
+
+export default Status
diff --git a/enatega-multivendor-rider/src/components/OrderDetail/Status/style.js b/enatega-multivendor-rider/src/components/OrderDetail/Status/style.js
new file mode 100644
index 0000000..52b12dc
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/OrderDetail/Status/style.js
@@ -0,0 +1,69 @@
+import colors from '../../../utilities/colors'
+import { Platform, StyleSheet } from 'react-native'
+import { alignment } from '../../../utilities/alignment'
+
+export default StyleSheet.create({
+ container: {
+ backgroundColor: colors.black,
+ ...alignment.PBlarge
+ },
+ statusMessage: {
+ display: 'flex',
+ flexDirection: 'row',
+ backgroundColor: colors.primary,
+ height: 80,
+ borderRadius: 25,
+ marginTop: -20,
+ padding: 4,
+ justifyContent: 'flex-start',
+ alignItems: 'center'
+ },
+ iconView: {
+ height: 50,
+ width: 50,
+ margin: Platform.OS === 'android' ? 7 : 10,
+ padding: 10,
+ borderRadius: 25,
+ backgroundColor: colors.black
+ },
+ icon: {
+ height: 30,
+ width: 30
+ },
+ message: {
+ margin: 10
+ },
+ status: {
+ padding: 20
+ },
+ statusRow: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ circle: {
+ width: 26,
+ height: 26,
+ borderRadius: 13,
+ ...alignment.MRlarge
+ },
+ bgPrimary: {
+ backgroundColor: colors.primary
+ },
+ bgSecondary: {
+ backgroundColor: colors.fontSecondColor
+ },
+ statusOrder: {
+ flex: 7
+ },
+ time: {
+ flex: 5,
+ marginTop: -5
+ },
+ verticalLine: {
+ height: 50,
+ width: 2,
+ ...alignment.MTsmall,
+ ...alignment.MBsmall,
+ ...alignment.MLsmall
+ }
+})
diff --git a/enatega-multivendor-rider/src/components/ScreenBackground/ScreenBackground.js b/enatega-multivendor-rider/src/components/ScreenBackground/ScreenBackground.js
new file mode 100644
index 0000000..298498c
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/ScreenBackground/ScreenBackground.js
@@ -0,0 +1,27 @@
+import React from 'react'
+import { View, StatusBar, Image } from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './style'
+import RiderLogin from '../../assets/svg/RiderLogin.png'
+
+const ScreenBackground = ({ children }) => {
+ return (
+
+
+
+
+ {children}
+
+
+ )
+}
+
+export default ScreenBackground
diff --git a/enatega-multivendor-rider/src/components/ScreenBackground/WalletScreenBg.js b/enatega-multivendor-rider/src/components/ScreenBackground/WalletScreenBg.js
new file mode 100644
index 0000000..215d89d
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/ScreenBackground/WalletScreenBg.js
@@ -0,0 +1,42 @@
+import React from 'react'
+import { View, StatusBar, Image, Dimensions } from 'react-native'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import styles from './style'
+import WalletBg from '../../assets/svg/WalletBg.png'
+import { Ionicons } from '@expo/vector-icons'
+import colors from '../../utilities/colors'
+import { useNavigation } from '@react-navigation/native'
+const { height } = Dimensions.get('window')
+const WalletScreenBg = ({ children, backBtn = false }) => {
+ const navigation = useNavigation()
+ const insets = useSafeAreaInsets()
+ return (
+
+
+
+ {backBtn && (
+
+ navigation.goBack()}
+ name="chevron-back"
+ size={24}
+ color={colors.white}
+ />
+
+ )}
+
+ {children}
+
+
+ )
+}
+
+export default WalletScreenBg
diff --git a/enatega-multivendor-rider/src/components/ScreenBackground/style.js b/enatega-multivendor-rider/src/components/ScreenBackground/style.js
new file mode 100644
index 0000000..6e48db3
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/ScreenBackground/style.js
@@ -0,0 +1,54 @@
+import colors from '../../utilities/colors'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+
+export default StyleSheet.create({
+ flex: {
+ flex: 1
+ },
+ bgColor: {
+ backgroundColor: colors.themeBackground
+ },
+ container: {
+ width: '100%',
+ alignSelf: 'center',
+ flex: 1
+ },
+ image: {
+ alignSelf: 'center',
+ height: 150,
+ width: 250,
+ ...alignment.MBlarge,
+ ...alignment.MTmedium
+ },
+ walletImage: {
+ alignSelf: 'center',
+ height: 240,
+ width: 250,
+ ...alignment.MBlarge,
+ ...alignment.MTmedium
+ },
+ innerContainer: {
+ backgroundColor: colors.white,
+ flex: 1,
+ borderTopRightRadius: 20,
+ borderTopLeftRadius: 20,
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 12
+ },
+ shadowOpacity: 0.58,
+ shadowRadius: 16.0,
+ elevation: 24,
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ icon: {
+ position: 'absolute',
+ zIndex: 999,
+ backgroundColor: colors.black,
+ borderRadius: 7,
+ ...alignment.MLmedium
+ }
+})
diff --git a/enatega-multivendor-rider/src/components/Sidebar/NavItem/NavItem.js b/enatega-multivendor-rider/src/components/Sidebar/NavItem/NavItem.js
new file mode 100644
index 0000000..40c1245
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/NavItem/NavItem.js
@@ -0,0 +1,29 @@
+import React from 'react'
+import { TouchableOpacity, View } from 'react-native'
+import styles from './styles.js'
+import TextDefault from '../../Text/TextDefault/TextDefault.js'
+import { FontAwesome } from '@expo/vector-icons'
+import { scale } from '../../../utilities/scaling.js'
+import colors from '../../../utilities/colors.js'
+import PropTypes from 'prop-types'
+
+const NavItem = props => (
+
+
+
+
+
+
+
+ {props.title}
+
+
+
+
+)
+NavItem.propTypes = {
+ onPress: PropTypes.func,
+ icons: PropTypes.string,
+ title: PropTypes.string.isRequired
+}
+export default NavItem
diff --git a/enatega-multivendor-rider/src/components/Sidebar/NavItem/styles.js b/enatega-multivendor-rider/src/components/Sidebar/NavItem/styles.js
new file mode 100644
index 0000000..0fe3c59
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/NavItem/styles.js
@@ -0,0 +1,22 @@
+export default {
+ Flex: {
+ flex: 1
+ },
+ container: {
+ flex: 1,
+ flexDirection: 'row',
+ justifyContent: 'space-evenly',
+ alignItems: 'center'
+ },
+ leftContainer: {
+ height: '100%',
+ width: '15%',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ rightContainer: {
+ height: '80%',
+ width: '75%',
+ justifyContent: 'center'
+ }
+}
diff --git a/enatega-multivendor-rider/src/components/Sidebar/Profile/Profile.js b/enatega-multivendor-rider/src/components/Sidebar/Profile/Profile.js
new file mode 100644
index 0000000..0d14824
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/Profile/Profile.js
@@ -0,0 +1,36 @@
+import React from 'react'
+import { View } from 'react-native'
+import { useQuery, gql } from '@apollo/client'
+import styles from './styles'
+import { profile } from '../../../apollo/queries'
+import TextDefault from '../../Text/TextDefault/TextDefault'
+import colors from '../../../utilities/colors'
+import Spinner from '../../Spinner/Spinner'
+import TextError from '../../Text/TextError/TextError'
+import {useTranslation} from 'react-i18next'
+
+const PROFILE = gql`
+ ${profile}
+`
+
+function Profile() {
+ const {t} = useTranslation()
+ const { data, loading, error } = useQuery(PROFILE)
+
+ if (loading && !data) return
+ if (error) return
+ return (
+
+
+
+ {data.rider.name}
+
+
+
+ {t('welcomeText')}
+
+
+ )
+}
+
+export default Profile
diff --git a/enatega-multivendor-rider/src/components/Sidebar/Profile/styles.js b/enatega-multivendor-rider/src/components/Sidebar/Profile/styles.js
new file mode 100644
index 0000000..8546715
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/Profile/styles.js
@@ -0,0 +1,28 @@
+import colors from '../../../utilities/colors'
+import { verticalScale } from '../../../utilities/scaling'
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../../utilities/alignment'
+
+export default {
+ container: {
+ flex: 1,
+ width: '100%',
+ alignSelf: 'center',
+ justifyContent: 'center',
+ borderBottomWidth: StyleSheet.hairlineWidth,
+ borderColor: colors.horizontalLine,
+ backgroundColor: 'transparent'
+ },
+ img: {
+ width: verticalScale(120),
+ height: verticalScale(120),
+ borderRadius: verticalScale(35),
+ borderWidth: 10,
+ justifyContent: 'center',
+ alignSelf: 'center',
+ borderColor: colors.horizontalLine,
+ backgroundColor: colors.primary,
+ color: '#000',
+ ...alignment.MBmedium
+ }
+}
diff --git a/enatega-multivendor-rider/src/components/Sidebar/Sidebar.js b/enatega-multivendor-rider/src/components/Sidebar/Sidebar.js
new file mode 100644
index 0000000..b7f7c17
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/Sidebar.js
@@ -0,0 +1,76 @@
+import React from 'react'
+import { View, Platform, Switch, ImageBackground, Linking } from 'react-native'
+import NavItem from './NavItem/NavItem'
+import Profile from './Profile/Profile'
+import styles from './styles'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import rider from '../../assets/rider.png'
+import useSidebar from './useSidebar'
+import {useTranslation} from 'react-i18next'
+
+function SidebBar() {
+ const { logout, isEnabled, toggleSwitch, datas } = useSidebar()
+ const {t} = useTranslation()
+ return (
+
+
+
+
+
+
+
+
+ {t('status')}
+
+
+
+ {isEnabled ? t('available') : t('notAvailable')}
+
+
+
+
+ {datas.map((data, ind) => (
+
+
+ Linking.canOpenURL(data.navigateTo).then(() => {
+ Linking.openURL(data.navigateTo)
+ })
+ }
+ icon={data.icon}
+ title={data.title}
+ />
+
+ ))}
+
+
+ logout()}
+ icon="sign-out"
+ title={t('titleLogout')}
+ />
+
+
+
+ )
+}
+export default SidebBar
diff --git a/enatega-multivendor-rider/src/components/Sidebar/styles.js b/enatega-multivendor-rider/src/components/Sidebar/styles.js
new file mode 100644
index 0000000..a4f1038
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/styles.js
@@ -0,0 +1,54 @@
+import colors from '../../utilities/colors'
+import { alignment } from '../../utilities/alignment'
+
+const styles = {
+ flex: {
+ flex: 1,
+ color: colors.white
+ },
+ topContainer: {
+ height: '30%',
+ backgroundColor: colors.horizontalLine
+ },
+ botContainer: {
+ flex: 1,
+ marginTop: '4%',
+ marginBottom: 70,
+ backgroundColor: colors.cartContainer
+ },
+ item: {
+ height: '10%',
+ ...alignment.MBsmall
+ },
+ spinnerBackgorund: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ backgroundColor: colors.fontSecondColor,
+ opacity: 1
+ },
+ rowDisplay: {
+ display: 'flex',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ padding: 20
+ },
+ row: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ online: {
+ marginTop: 2,
+ ...alignment.MRxSmall
+ },
+ image: {
+ flex: 1,
+ justifyContent: 'center',
+ },
+ opacity: {
+ backgroundColor: colors.black,
+ opacity: 0.8
+ }
+}
+
+export default styles
diff --git a/enatega-multivendor-rider/src/components/Sidebar/useSidebar.js b/enatega-multivendor-rider/src/components/Sidebar/useSidebar.js
new file mode 100644
index 0000000..6f1b8be
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Sidebar/useSidebar.js
@@ -0,0 +1,90 @@
+import { useContext, useEffect, useState } from 'react'
+import { AuthContext } from '../../context/auth'
+import { gql, useMutation } from '@apollo/client'
+import { toggleAvailablity } from '../../apollo/mutations'
+import UserContext from '../../context/user'
+import { profile } from '../../apollo/queries'
+import { useTranslation } from 'react-i18next'
+
+const TOGGLE_RIDER = gql`
+ ${toggleAvailablity}
+`
+const PROFILE = gql`
+ ${profile}
+`
+
+const PRODUCT_URL = 'https://enatega.com/enatega-multi-vendor/'
+const PRIVACY_URL = 'https://enatega.com/privacy-policy/'
+
+const ABOUT_URL = 'https://ninjascode.com/'
+
+// constants
+/*const datas = [
+ {
+ title: 'Product Page',
+ icon: 'product-hunt',
+ navigateTo: PRODUCT_URL
+ },
+ {
+ title: 'Privacy Policy',
+ icon: 'lock',
+ navigateTo: PRIVACY_URL
+ },
+ {
+ title: 'About Us',
+ icon: 'info-circle',
+ navigateTo: ABOUT_URL
+ }
+]*/
+
+const useSidebar = () => {
+ const { t } = useTranslation()
+ const datas = [
+ {
+ title: t('productPage'),
+ icon: 'product-hunt',
+ navigateTo: PRODUCT_URL
+ },
+ {
+ title: t('privacyPolicy'),
+ icon: 'lock',
+ navigateTo: PRIVACY_URL
+ },
+ {
+ title: t('aboutUs'),
+ icon: 'info-circle',
+ navigateTo: ABOUT_URL
+ }
+ ]
+ const { logout } = useContext(AuthContext)
+ const { dataProfile } = useContext(UserContext)
+ const [isEnabled, setIsEnabled] = useState(dataProfile?.rider.available)
+
+ const toggleSwitch = () => {
+ mutateToggle({ variables: { id: dataProfile.rider._id }, onCompleted })
+ setIsEnabled(previousState => !previousState)
+ }
+
+ useEffect(() => {
+ if (!dataProfile) return
+ setIsEnabled(dataProfile?.rider.available)
+ }, [dataProfile])
+
+ function onCompleted({ toggleAvailability }) {
+ if (toggleAvailability) {
+ setIsEnabled(toggleAvailability.available)
+ }
+ }
+ const [mutateToggle] = useMutation(TOGGLE_RIDER, {
+ refetchQueries: [{ query: PROFILE }]
+ })
+ return {
+ logout,
+ isEnabled,
+ toggleSwitch,
+ datas,
+ dataProfile
+ }
+}
+
+export default useSidebar
diff --git a/enatega-multivendor-rider/src/components/Spinner/Spinner.js b/enatega-multivendor-rider/src/components/Spinner/Spinner.js
new file mode 100644
index 0000000..19673bc
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Spinner/Spinner.js
@@ -0,0 +1,14 @@
+import React from 'react'
+import { ActivityIndicator } from 'react-native'
+import colors from '../../utilities/colors'
+function Spinner(props) {
+ return (
+
+ )
+}
+
+export default Spinner
diff --git a/enatega-multivendor-rider/src/components/Tabs/Tabs.js b/enatega-multivendor-rider/src/components/Tabs/Tabs.js
new file mode 100644
index 0000000..93ae4c3
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Tabs/Tabs.js
@@ -0,0 +1,94 @@
+import { View, TouchableOpacity } from 'react-native'
+import React, { useContext, useState, useEffect } from 'react'
+import styles from './style'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import { TabsContext } from '../../context/tabs'
+import UserContext from '../../context/user'
+import {useTranslation} from 'react-i18next'
+
+const Tabs = props => {
+ const {t} = useTranslation()
+ const { active } = useContext(TabsContext)
+ const { assignedOrders } = useContext(UserContext)
+ const [ordersLength, setOrderslength] = useState(
+ assignedOrders?.filter(
+ o => o.orderStatus === 'ACCEPTED' && !o.rider && !o.isPickedUp
+ ).length
+ )
+ const [myOrdersLength, setMyOrderslength] = useState(
+ assignedOrders?.filter(
+ o =>
+ (o.orderStatus === 'ASSIGNED' || o.orderStatus === 'PICKED') &&
+ !o.isPickedUp
+ ).length
+ )
+
+ useEffect(() => {
+ setOrderslength(
+ assignedOrders?.filter(
+ o => o.orderStatus === 'ACCEPTED' && !o.rider && !o.isPickedUp
+ ).length
+ )
+ setMyOrderslength(
+ assignedOrders?.filter(
+ o =>
+ (o.orderStatus === 'ASSIGNED' || o.orderStatus === 'PICKED') &&
+ !o.isPickedUp
+ ).length
+ )
+ }, [assignedOrders])
+
+ return (
+
+ {active === 'MyOrders' && (
+
+
+ {ordersLength > 0 ? ordersLength : 0}
+
+
+ )}
+
+ props.navigation.navigate('Home')}
+ style={[
+ styles.row,
+ active === 'NewOrders' && styles.btn,
+ { width: '40%' }
+ ]}>
+
+ {t('NewOrders')}
+
+
+
+ props.navigation.navigate('MyOrders')}
+ style={[
+ styles.row,
+ active === 'MyOrders' && styles.btn,
+ { width: '45%' }
+ ]}>
+
+ {t('myorders')}
+
+ {active === 'NewOrders' && (
+
+
+ {myOrdersLength > 0 ? myOrdersLength : 0}
+
+
+ )}
+
+
+ )
+}
+
+export default Tabs
diff --git a/enatega-multivendor-rider/src/components/Tabs/style.js b/enatega-multivendor-rider/src/components/Tabs/style.js
new file mode 100644
index 0000000..c8835a7
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Tabs/style.js
@@ -0,0 +1,53 @@
+import colors from '../../utilities/colors'
+import { Dimensions } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+const { width } = Dimensions.get('window')
+
+export default {
+ container: {
+ display: 'flex',
+ flexDirection: 'row',
+ width: width * 0.79,
+ height: 60,
+ backgroundColor: colors.black,
+ borderRadius: 15,
+ alignItems: 'center',
+ marginTop: -30,
+ ...alignment.PLlarge
+ },
+ row: {
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginRight: 10
+ },
+ btn: {
+ backgroundColor: colors.primary,
+ borderRadius: 10,
+ ...alignment.MRmedium,
+ ...alignment.PLsmall,
+ ...alignment.PRsmall,
+ ...alignment.PTsmall,
+ ...alignment.PBsmall,
+ },
+ badge: {
+ width: 20,
+ height: 20,
+ backgroundColor: colors.primary,
+ borderRadius: 15,
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginRight: 2,
+ marginTop: -20
+ },
+ rightBadge: {
+ width: 20,
+ height: 20,
+ backgroundColor: colors.primary,
+ borderRadius: 15,
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginRight: 2,
+ marginTop: -20
+ }
+}
diff --git a/enatega-multivendor-rider/src/components/Text/TextDefault/TextDefault.js b/enatega-multivendor-rider/src/components/Text/TextDefault/TextDefault.js
new file mode 100644
index 0000000..faa9d4c
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Text/TextDefault/TextDefault.js
@@ -0,0 +1,58 @@
+import React from 'react'
+import { Text, StyleSheet } from 'react-native'
+import color from './styles'
+import { textStyles } from '../../../utilities/textStyles'
+import colors from '../../../utilities/colors'
+import PropTypes from 'prop-types'
+
+function TextDefault(props) {
+ const textColor = props.textColor ? props.textColor : colors.fontMainColor
+ const defaultStyle = StyleSheet.flatten([
+ color(textColor).color,
+ textStyles.Regular,
+ textStyles.Normal
+ ])
+ var customStyles = [defaultStyle]
+
+ if (props.bold) customStyles.push(textStyles.Bold)
+ if (props.bolder) customStyles.push(textStyles.Bolder)
+ if (props.center) customStyles.push(textStyles.Center)
+ if (props.right) customStyles.push(textStyles.Right)
+ if (props.small) customStyles.push(textStyles.Small)
+ if (props.XL) customStyles.push(textStyles.XL)
+ if (props.H5) customStyles.push(textStyles.H5)
+ if (props.H4) customStyles.push(textStyles.H4)
+ if (props.H3) customStyles.push(textStyles.H3)
+ if (props.H2) customStyles.push(textStyles.H2)
+ if (props.H1) customStyles.push(textStyles.H1)
+ if (props.uppercase) customStyles.push(textStyles.UpperCase)
+ if (props.lineOver) customStyles.push(textStyles.LineOver)
+
+ customStyles = StyleSheet.flatten([customStyles, props.style])
+ return (
+
+ {props.children}
+
+ )
+}
+
+TextDefault.propTypes = {
+ bold: PropTypes.bool,
+ bolder: PropTypes.bool,
+ center: PropTypes.bool,
+ right: PropTypes.bool,
+ small: PropTypes.bool,
+ XL: PropTypes.bool,
+ H5: PropTypes.bool,
+ H4: PropTypes.bool,
+ H3: PropTypes.bool,
+ H2: PropTypes.bool,
+ H1: PropTypes.bool,
+ uppercase: PropTypes.bool,
+ lineOver: PropTypes.bool,
+ numberOfLines: PropTypes.number
+}
+
+export default TextDefault
diff --git a/enatega-multivendor-rider/src/components/Text/TextDefault/styles.js b/enatega-multivendor-rider/src/components/Text/TextDefault/styles.js
new file mode 100644
index 0000000..14a2c89
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Text/TextDefault/styles.js
@@ -0,0 +1,10 @@
+import { StyleSheet } from 'react-native'
+
+const color = textColor =>
+ StyleSheet.create({
+ color: {
+ color: textColor
+ }
+ })
+
+export default color
diff --git a/enatega-multivendor-rider/src/components/Text/TextError/TextError.js b/enatega-multivendor-rider/src/components/Text/TextError/TextError.js
new file mode 100644
index 0000000..1a7b830
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/Text/TextError/TextError.js
@@ -0,0 +1,33 @@
+import React from 'react'
+import { View } from 'react-native'
+import TextDefault from '../TextDefault/TextDefault'
+import colors from '../../../utilities/colors'
+import PropTypes from 'prop-types'
+
+function TextError(props) {
+ return (
+
+
+ {props.text}{' '}
+
+
+ )
+}
+TextError.propTypes = {
+ text: PropTypes.string,
+ backColor: PropTypes.string,
+ textColor: PropTypes.string
+}
+export default TextError
diff --git a/enatega-multivendor-rider/src/components/WalletCard/WalletCard.js b/enatega-multivendor-rider/src/components/WalletCard/WalletCard.js
new file mode 100644
index 0000000..45ff9f6
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/WalletCard/WalletCard.js
@@ -0,0 +1,43 @@
+import { View } from 'react-native'
+import React, { useContext } from 'react'
+import styles from './style'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import {useTranslation} from 'react-i18next'
+
+import { RequestRow } from './WithDrawRequestCard'
+import ConfigurationContext from '../../context/configuration'
+
+const WalletCard = ({ item }) => {
+ const {t} = useTranslation()
+ const configuration = useContext(ConfigurationContext)
+ return (
+
+
+ {t('orderID')}{' '}
+
+ {item?.orderId}
+ {' '}
+
+
+
+
+
+
+
+ )
+}
+
+export default WalletCard
diff --git a/enatega-multivendor-rider/src/components/WalletCard/WithDrawRequestCard.js b/enatega-multivendor-rider/src/components/WalletCard/WithDrawRequestCard.js
new file mode 100644
index 0000000..7e281bb
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/WalletCard/WithDrawRequestCard.js
@@ -0,0 +1,79 @@
+import { View } from 'react-native'
+import React, { useContext } from 'react'
+import styles from './style'
+import TextDefault from '../Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import ConfigurationContext from '../../context/configuration'
+import {useTranslation} from 'react-i18next'
+
+const STATUS_COLORS = {
+ CANCELLED: colors.orderUncomplete,
+ REQUESTED: colors.textErrorColor,
+ TRANSFERRED: colors.primary
+}
+
+const RequestCard = ({ item }) => {
+ const {t} = useTranslation()
+ const configuration = useContext(ConfigurationContext)
+ return (
+
+
+ {t('requestID')}{' '}
+
+ {item?.requestId}
+ {' '}
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export const RequestRow = ({ label, value, color = colors.black }) => {
+ return (
+
+
+ {label}
+
+
+ {value}
+
+
+ )
+}
+
+export default RequestCard
diff --git a/enatega-multivendor-rider/src/components/WalletCard/style.js b/enatega-multivendor-rider/src/components/WalletCard/style.js
new file mode 100644
index 0000000..4e20ee8
--- /dev/null
+++ b/enatega-multivendor-rider/src/components/WalletCard/style.js
@@ -0,0 +1,49 @@
+import { StyleSheet, Dimensions } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+import colors from '../../utilities/colors'
+const { width } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ container: {
+ width: width * 0.85,
+ borderRadius: 20,
+ alignItems: 'center',
+ alignSelf: 'center',
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 5
+ },
+ shadowOpacity: 0.34,
+ shadowRadius: 6.27,
+ elevation: 10,
+ ...alignment.PTsmall,
+ ...alignment.PBsmall,
+ ...alignment.PLlarge,
+ ...alignment.PRlarge,
+ ...alignment.MBmedium
+ },
+ bgBlack: {
+ backgroundColor: colors.black
+ },
+ bgWhite: {
+ backgroundColor: colors.white
+ },
+ horizontalLine: {
+ width: width * 0.75,
+ borderBottomWidth: 1,
+ borderBottomColor: colors.white,
+ ...alignment.Msmall
+ },
+ requestDetails: {
+ display: 'flex',
+ flexDirection: 'row',
+ ...alignment.PBxSmall
+ },
+ col1: {
+ flex: 5
+ },
+ col2: {
+ flex: 5
+ }
+})
diff --git a/enatega-multivendor-rider/src/context/auth.js b/enatega-multivendor-rider/src/context/auth.js
new file mode 100644
index 0000000..c020183
--- /dev/null
+++ b/enatega-multivendor-rider/src/context/auth.js
@@ -0,0 +1,3 @@
+import React from 'react'
+
+export const AuthContext = React.createContext()
diff --git a/enatega-multivendor-rider/src/context/configuration.js b/enatega-multivendor-rider/src/context/configuration.js
new file mode 100644
index 0000000..ca2a5c2
--- /dev/null
+++ b/enatega-multivendor-rider/src/context/configuration.js
@@ -0,0 +1,23 @@
+import React from 'react'
+import { useQuery, gql } from '@apollo/client'
+
+import { configuration } from '../apollo/queries'
+
+const GETCONFIGURATION = gql`
+ ${configuration}
+`
+
+const ConfigurationContext = React.createContext({})
+
+export const ConfigurationProvider = props => {
+ const { loading, data, error } = useQuery(GETCONFIGURATION)
+ const configuration =
+ loading || error || !data.configuration ? {} : data.configuration
+ return (
+
+ {props.children}
+
+ )
+}
+export const ConfigurationConsumer = ConfigurationContext.Consumer
+export default ConfigurationContext
diff --git a/enatega-multivendor-rider/src/context/location.js b/enatega-multivendor-rider/src/context/location.js
new file mode 100644
index 0000000..20504ac
--- /dev/null
+++ b/enatega-multivendor-rider/src/context/location.js
@@ -0,0 +1,56 @@
+import React, { useState, useEffect, useContext, useRef } from 'react'
+import * as Location from 'expo-location'
+import { LocationAccuracy } from 'expo-location'
+
+const locationContext = React.createContext({
+ locationPermission: false,
+ setLocationPermission: () => {}
+})
+
+export const LocationProvider = ({ children }) => {
+ const locationListener = useRef(null)
+ const [locationPermission, setLocationPermission] = useState(false)
+ const [location, setLocation] = useState(null)
+
+ const getLocationPermission = async() => {
+ const { status } = await Location.getForegroundPermissionsAsync()
+ if (status === 'granted') {
+ setLocationPermission(true)
+ }
+ const currentLocation = await Location.getCurrentPositionAsync({})
+ setLocation(currentLocation.coords)
+ }
+
+ useEffect(() => {
+ getLocationPermission()
+ }, [])
+
+ useEffect(() => {
+ if (!locationPermission) return
+ const trackRiderLocation = async() => {
+ locationListener.current = await Location.watchPositionAsync(
+ { accuracy: LocationAccuracy.BestForNavigation, distanceInterval: 100 },
+ location => {
+ setLocation({
+ latitude: location.coords.latitude.toString(),
+ longitude: location.coords.longitude.toString()
+ })
+ }
+ )
+ }
+ trackRiderLocation()
+ return () => {
+ locationListener.current && locationListener.current.remove()
+ }
+ }, [locationPermission])
+ return (
+
+ {children}
+
+ )
+}
+
+export const LocationConsumer = locationContext.Consumer
+export const useLocationContext = () => useContext(locationContext)
+export default locationContext
diff --git a/enatega-multivendor-rider/src/context/sound.js b/enatega-multivendor-rider/src/context/sound.js
new file mode 100644
index 0000000..1d8479b
--- /dev/null
+++ b/enatega-multivendor-rider/src/context/sound.js
@@ -0,0 +1,48 @@
+import React, { useContext, useEffect, useState } from 'react'
+import { useTabsContext } from './tabs'
+import { Audio } from 'expo-av'
+import { useUserContext } from './user'
+const SoundContext = React.createContext()
+export const SoundContextProvider = ({ children }) => {
+ const [sound, setSound] = useState(null)
+ const { active } = useTabsContext()
+ const { assignedOrders } = useUserContext()
+ useEffect(() => {
+ if (assignedOrders) {
+ const shouldPlaySound = assignedOrders.some(o => o.isRiderRinged)
+ if (shouldPlaySound) playSound()
+ else stopSound()
+ }
+ }, [assignedOrders])
+ const playSound = async () => {
+ if (active === 'NewOrders') {
+ await stopSound()
+ const { sound } = await Audio.Sound.createAsync(
+ require('../assets/beep3.mp3')
+ )
+ await sound.setIsLoopingAsync(true)
+ await Audio.setAudioModeAsync({
+ allowsRecordingIOS: false,
+ staysActiveInBackground: true,
+ interruptionModeIOS: (Audio.INTERRUPTION_MODE_IOS_DUCK_OTHERS = 2),
+ playsInSilentModeIOS: true,
+ shouldDuckAndroid: true,
+ interruptionModeAndroid: (Audio.INTERRUPTION_MODE_ANDROID_DUCK_OTHERS = 2),
+ playThroughEarpieceAndroid: false
+ })
+ await sound.playAsync()
+ setSound(sound)
+ }
+ }
+ const stopSound = async () => {
+ await sound?.unloadAsync()
+ }
+ return (
+
+ {children}
+
+ )
+}
+export const SoundContextConsumer = SoundContext.Consumer
+export const useSoundContext = () => useContext(SoundContext)
+export default SoundContext
diff --git a/enatega-multivendor-rider/src/context/tabs.js b/enatega-multivendor-rider/src/context/tabs.js
new file mode 100644
index 0000000..0fd6390
--- /dev/null
+++ b/enatega-multivendor-rider/src/context/tabs.js
@@ -0,0 +1,4 @@
+import React, { useContext } from 'react'
+
+export const TabsContext = React.createContext()
+export const useTabsContext = () => useContext(TabsContext)
diff --git a/enatega-multivendor-rider/src/context/user.js b/enatega-multivendor-rider/src/context/user.js
new file mode 100644
index 0000000..4365ba2
--- /dev/null
+++ b/enatega-multivendor-rider/src/context/user.js
@@ -0,0 +1,190 @@
+import React, { useContext, useEffect, useRef } from 'react'
+import {
+ requestForegroundPermissionsAsync,
+ watchPositionAsync,
+ LocationAccuracy
+} from 'expo-location'
+import { useQuery, gql } from '@apollo/client'
+import { profile, riderOrders } from '../apollo/queries'
+
+import { updateLocation } from '../apollo/mutations'
+import {
+ subscriptionZoneOrders,
+ subscriptionAssignRider
+} from '../apollo/subscriptions'
+import { useLocationContext } from './location'
+
+const PROFILE = gql`
+ ${profile}
+`
+const RIDER_ORDERS = gql`
+ ${riderOrders}
+`
+
+const SUBSCRIPTION_UNASSIGNED_ORDER = gql`
+ ${subscriptionZoneOrders}
+`
+const UPDATE_LOCATION = gql`
+ ${updateLocation}
+`
+
+const UserContext = React.createContext({})
+
+export const UserProvider = props => {
+ console.log('riderOrders', riderOrders)
+ const locationListener = useRef(null)
+ const { locationPermission } = useLocationContext()
+
+ const {
+ loading: loadingProfile,
+ error: errorProfile,
+ data: dataProfile
+ } = useQuery(PROFILE, {
+ fetchPolicy: 'network-only',
+ onCompleted,
+ pollInterval: 10000,
+ onError: error1
+ })
+
+ const {
+ client,
+ loading: loadingAssigned,
+ error: errorAssigned,
+ data: dataAssigned,
+ networkStatus: networkStatusAssigned,
+ subscribeToMore,
+ refetch: refetchAssigned
+ } = useQuery(RIDER_ORDERS, {
+ onCompleted,
+ onError: error2,
+ fetchPolicy: 'network-only',
+ notifyOnNetworkStatusChange: true
+ // pollInterval: 15000
+ })
+
+ let unsubscribeZoneOrder = null
+ let unsubscribeAssignOrder = null
+
+ useEffect(() => {
+ if (!dataProfile) return
+ {
+ const { unsubZoneOrder, unsubAssignOrder } = subscribeNewOrders()
+ unsubscribeZoneOrder = unsubZoneOrder
+ unsubscribeAssignOrder = unsubAssignOrder
+ }
+ return () => {
+ unsubscribeZoneOrder && unsubscribeZoneOrder()
+ unsubscribeAssignOrder && unsubscribeAssignOrder()
+ }
+ }, [dataProfile])
+
+ useEffect(() => {
+ const trackRiderLocation = async () => {
+ locationListener.current = await watchPositionAsync(
+ { accuracy: LocationAccuracy.BestForNavigation, distanceInterval: 100 },
+ async location => {
+ client.mutate({
+ mutation: UPDATE_LOCATION,
+ variables: {
+ latitude: location.coords.latitude.toString(),
+ longitude: location.coords.longitude.toString()
+ }
+ })
+ }
+ )
+ }
+ trackRiderLocation()
+ return () => {
+ locationListener.current && locationListener.current.remove()
+ }
+ }, [locationPermission])
+
+ function onCompleted({ rider, assignedOrders }) {
+ console.log(rider)
+ console.log(assignedOrders)
+ console.log('onCompleted context')
+ }
+
+ function error1(error) {
+ console.log('error on fetching context 1', JSON.stringify(error))
+ }
+ function error2(error) {
+ console.log('error on fetching context 2', JSON.stringify(error))
+ }
+
+ const subscribeNewOrders = () => {
+ try {
+ const unsubAssignOrder = subscribeToMore({
+ document: gql`
+ ${subscriptionAssignRider}
+ `,
+ variables: { riderId: dataProfile.rider._id },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ if (subscriptionData.data.subscriptionAssignRider.origin === 'new') {
+ return {
+ riderOrders: [
+ subscriptionData.data.subscriptionAssignRider.order,
+ ...prev.riderOrders
+ ]
+ }
+ } else if (
+ subscriptionData.data.subscriptionAssignRider.origin === 'remove'
+ ) {
+ return {
+ riderOrders: [
+ ...prev.riderOrders.filter(
+ o =>
+ o._id !==
+ subscriptionData.data.subscriptionAssignRider.order._id
+ )
+ ]
+ }
+ }
+ return prev
+ }
+ })
+ const unsubZoneOrder = subscribeToMore({
+ document: SUBSCRIPTION_UNASSIGNED_ORDER,
+ variables: { zoneId: dataProfile.rider.zone._id },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+
+ if (subscriptionData.data.subscriptionZoneOrders.origin === 'new') {
+ return {
+ riderOrders: [
+ subscriptionData.data.subscriptionZoneOrders.order,
+ ...prev.riderOrders
+ ]
+ }
+ }
+ return prev
+ }
+ })
+ return { unsubZoneOrder, unsubAssignOrder }
+ } catch (error) {
+ console.log(error)
+ }
+ }
+
+ return (
+
+ {props.children}
+
+ )
+}
+export const UserConsumer = UserContext.Consumer
+export const useUserContext = () => useContext(UserContext)
+export default UserContext
diff --git a/enatega-multivendor-rider/src/routes/index.js b/enatega-multivendor-rider/src/routes/index.js
new file mode 100644
index 0000000..723db0e
--- /dev/null
+++ b/enatega-multivendor-rider/src/routes/index.js
@@ -0,0 +1,250 @@
+/* eslint-disable react/display-name */
+import React, { useCallback, useContext, useEffect } from 'react'
+import { SafeAreaProvider } from 'react-native-safe-area-context'
+import { NavigationContainer } from '@react-navigation/native'
+import { createStackNavigator } from '@react-navigation/stack'
+import { createDrawerNavigator } from '@react-navigation/drawer'
+import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'
+import * as Notifications from 'expo-notifications'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import Login from '../screens/Login/Login'
+import Sidebar from '../components/Sidebar/Sidebar'
+import Orders from '../screens/Orders/Orders'
+import NewOrders from '../screens/NewOrders/NewOrders'
+import OrderDetail from '../screens/OrderDetail/OrderDetail'
+import Language from '../screens/Language/Language'
+import Help from '../screens/Help/Help'
+import HelpBrowser from '../screens/HelpBrowser/HelpBrowser'
+import { UserProvider } from '../context/user'
+import { screenOptions, tabOptions, tabIcon } from './screenOptions'
+import LeftButton from '../components/Header/HeaderIcons/HeaderIcons'
+import navigationService from './navigationService'
+import LocationPermissions from '../screens/LocationPermissions/LocationPermissions'
+import { useLocationContext } from '../context/location'
+import Wallet from '../screens/Wallet/Wallet'
+import Withdraw from '../screens/Withdraw/Withdraw'
+import WalletHistory from '../screens/WalletHistory/WalletHistory'
+import AvailableCash from '../screens/AvailableCash/AvailableCash'
+import ChatScreen from '../screens/ChatWithCustomer/ChatScreen'
+import { AuthContext } from '../context/auth'
+import { SoundContextProvider } from '../context/sound'
+import { gql, useApolloClient } from '@apollo/client'
+import { riderOrders } from '../apollo/queries'
+import { useTranslation } from 'react-i18next'
+
+const Stack = createStackNavigator()
+const Drawer = createDrawerNavigator()
+const Tab = createBottomTabNavigator()
+
+function MyTabs() {
+ const { t } = useTranslation()
+ return (
+ ({
+ ...tabIcon(route),
+ ...tabOptions()
+ })}>
+
+
+
+ {/* {
+ Platform.OS === 'ios'? null :
+ } */}
+
+ ({
+ tabPress: e => {
+ e.preventDefault()
+ navigation.openDrawer()
+ }
+ })}
+ />
+
+ )
+}
+
+function Auth() {
+ return (
+
+
+
+ )
+}
+
+function LocationStack() {
+ return (
+
+
+
+ )
+}
+
+function Main() {
+ const { locationPermission } = useLocationContext()
+ const client = useApolloClient()
+ const lastNotificationResponse = Notifications.useLastNotificationResponse()
+
+ const handleNotification = useCallback(async response => {
+ if (
+ response &&
+ response.notification &&
+ response.notification.request &&
+ response.notification.request.content &&
+ response.notification.request.content.data
+ ) {
+ const { _id } = response.notification.request.content.data
+ const { data } = await client.query({
+ query: gql`
+ ${riderOrders}
+ `,
+ fetchPolicy: 'network-only'
+ })
+ const order = data.riderOrders.find(o => o._id === _id)
+ const lastNotificationHandledId = await AsyncStorage.getItem(
+ '@lastNotificationHandledId'
+ )
+ if (lastNotificationHandledId === _id) return
+ await AsyncStorage.setItem('@lastNotificationHandledId', _id)
+ navigationService.navigate('OrderDetail', {
+ itemId: _id,
+ order
+ })
+ }
+ }, [])
+
+ useEffect(() => {
+ const subscription = Notifications.addNotificationResponseReceivedListener(
+ handleNotification
+ )
+
+ return () => subscription.remove()
+ }, [handleNotification])
+
+ useEffect(() => {
+ // Register a notification handler that will be called when a notification is received.
+ Notifications.setNotificationHandler({
+ handleNotification: async notification => {
+ return {
+ shouldShowAlert: false, // Prevent the app from closing
+ shouldPlaySound: false,
+ shouldSetBadge: false
+ }
+ }
+ })
+ }, [])
+
+ return locationPermission ? (
+
+
+ }
+ screenOptions={{ headerShown: false }}>
+ {/* */}
+
+
+
+
+
+ ) : (
+
+ )
+}
+
+function NoDrawer() {
+ return (
+
+
+ }}
+ />
+
+
+
+
+
+
+
+
+
+ )
+}
+
+function AppContainer() {
+ const { token } = useContext(AuthContext)
+
+ // Register for push notifications.
+ useEffect(() => {
+ async function registerForPushNotificationsAsync() {
+ const {
+ status: existingStatus
+ } = await Notifications.getPermissionsAsync()
+ let finalStatus = existingStatus
+
+ if (existingStatus !== 'granted') {
+ const { status } = await Notifications.requestPermissionsAsync()
+ finalStatus = status
+ }
+
+ if (finalStatus === 'granted') {
+ Notifications.setNotificationHandler({
+ handleNotification: async notification => {
+ return {
+ shouldShowAlert: false, // Prevent the app from closing
+ shouldPlaySound: false,
+ shouldSetBadge: false
+ }
+ }
+ })
+ }
+ }
+
+ registerForPushNotificationsAsync()
+ }, [])
+
+ return (
+
+ {
+ navigationService.setGlobalRef(ref)
+ }}>
+ {token ? : }
+
+
+ )
+}
+
+export default AppContainer
diff --git a/enatega-multivendor-rider/src/routes/navigationService.js b/enatega-multivendor-rider/src/routes/navigationService.js
new file mode 100644
index 0000000..9e2c853
--- /dev/null
+++ b/enatega-multivendor-rider/src/routes/navigationService.js
@@ -0,0 +1,19 @@
+let navObj = null
+
+function setGlobalRef(ref) {
+ navObj = ref
+}
+
+function navigate(path, props = {}) {
+ navObj.navigate(path, props)
+}
+
+function goBack() {
+ navObj.goBack()
+}
+
+export default {
+ setGlobalRef,
+ navigate,
+ goBack
+}
diff --git a/enatega-multivendor-rider/src/routes/screenOptions.js b/enatega-multivendor-rider/src/routes/screenOptions.js
new file mode 100644
index 0000000..05549ee
--- /dev/null
+++ b/enatega-multivendor-rider/src/routes/screenOptions.js
@@ -0,0 +1,63 @@
+/* eslint-disable react/display-name */
+import React from 'react'
+import { View } from 'react-native'
+import { textStyles } from '../utilities/textStyles'
+import { scale } from '../utilities/scaling'
+import colors from '../utilities/colors'
+import { Ionicons } from '@expo/vector-icons'
+import {
+ getFocusedRouteNameFromRoute,
+ useRoute
+} from '@react-navigation/native'
+
+const screenOptions = props => {
+ const route = useRoute()
+ const routeName = getFocusedRouteNameFromRoute(route)
+ return {
+ headerShown: routeName === 'ChatWithCustomer'
+ }
+}
+const tabIcon = route => ({
+ tabBarIcon: ({ color, size }) => {
+ let iconName
+ if (route.name === 'Home') {
+ iconName = 'home'
+ } else if (route.name === 'MyOrders') {
+ iconName = 'time'
+ } else if (route.name === 'Wallet') {
+ iconName = 'wallet'
+ } else if (route.name === 'Profile') {
+ iconName = 'person'
+ } else if (route.name === 'Language') {
+ iconName = 'language'
+ }
+ return (
+
+
+
+ )
+ }
+})
+
+const tabOptions = () => ({
+ headerShown: false,
+ tabBarHideOnKeyboard: true,
+ tabBarActiveTintColor: colors.iconPink,
+ tabBarInactiveTintColor: colors.white,
+ tabBarItemStyle: {
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ tabBarLabelStyle: {
+ ...textStyles.Bold,
+ ...textStyles.Center,
+ ...textStyles.Small
+ },
+ tabBarStyle: {
+ backgroundColor: '#2c2c2c',
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15
+ }
+})
+
+export { screenOptions, tabOptions, tabIcon }
diff --git a/enatega-multivendor-rider/src/routes/styles.js b/enatega-multivendor-rider/src/routes/styles.js
new file mode 100644
index 0000000..a0e9d74
--- /dev/null
+++ b/enatega-multivendor-rider/src/routes/styles.js
@@ -0,0 +1,17 @@
+import { StyleSheet } from 'react-native'
+import { scale } from '../utilities/scaling'
+
+const styles = StyleSheet.create({
+ badge: {
+ position: 'absolute',
+ right: -scale(6),
+ top: 0,
+ borderRadius: scale(9),
+ width: scale(18),
+ height: scale(18),
+ justifyContent: 'center',
+ alignItems: 'center'
+ }
+})
+
+export default styles
diff --git a/enatega-multivendor-rider/src/screens/AvailableCash/AvailableCash.js b/enatega-multivendor-rider/src/screens/AvailableCash/AvailableCash.js
new file mode 100644
index 0000000..8765b74
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/AvailableCash/AvailableCash.js
@@ -0,0 +1,76 @@
+import { FlatList, View } from 'react-native'
+import React, { useContext } from 'react'
+import WalletScreenBg from '../../components/ScreenBackground/WalletScreenBg'
+import Amount from '../../components/Amount/Amount'
+import WalletCard from '../../components/WalletCard/WalletCard'
+import styles from './style'
+import { riderEarnings } from '../../apollo/queries'
+import { gql, useQuery } from '@apollo/client'
+import Spinner from '../../components/Spinner/Spinner'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import UserContext from '../../context/user'
+import {useTranslation} from 'react-i18next'
+
+const AVAILABLE_CASH = gql`
+ ${riderEarnings}
+`
+
+const AvailableCash = () => {
+ const {t} = useTranslation()
+ const { loadingProfile, errorProfile, dataProfile } = useContext(UserContext)
+ const { loading, error, data, refetch, networkStatus, fetchMore } = useQuery(
+ AVAILABLE_CASH,
+ {
+ variables: { offset: 0 },
+ fetchPolicy: 'network-only',
+ pollInterval: 60000
+ }
+ )
+ if (loadingProfile) {
+ return (
+
+
+
+ )
+ }
+ if (errorProfile) {
+ return (
+
+ {t('errorFetchingRider')}
+
+ )
+ }
+ return (
+
+ {loading ? (
+
+ ) : error ? (
+
+ {t('errorOccured')}
+
+ ) : (
+
+ }
+ data={data.riderEarnings}
+ renderItem={({ item }) => }
+ keyExtractor={item => item.orderId}
+ showsVerticalScrollIndicator={false}
+ onEndReached={() =>
+ fetchMore({ variables: { offset: data.riderEarnings.length } })
+ }
+ />
+ )}
+
+ )
+}
+
+export default AvailableCash
diff --git a/enatega-multivendor-rider/src/screens/AvailableCash/style.js b/enatega-multivendor-rider/src/screens/AvailableCash/style.js
new file mode 100644
index 0000000..b88a36a
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/AvailableCash/style.js
@@ -0,0 +1,8 @@
+import { StyleSheet, Dimensions } from 'react-native'
+const { height } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ transactionHistory: {
+ height: height * 0.4
+ }
+})
diff --git a/enatega-multivendor-rider/src/screens/ChatWithCustomer/ChatScreen.js b/enatega-multivendor-rider/src/screens/ChatWithCustomer/ChatScreen.js
new file mode 100644
index 0000000..6c2edbf
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/ChatWithCustomer/ChatScreen.js
@@ -0,0 +1,130 @@
+import React from 'react'
+import { Image, Platform, View } from 'react-native'
+import { GiftedChat, Bubble, Send } from 'react-native-gifted-chat'
+import { useChatScreen } from './useChatScreen'
+import FontAwesome from 'react-native-vector-icons/FontAwesome'
+import { Ionicons, Entypo } from '@expo/vector-icons'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import styles from './styles'
+import colors from '../../utilities/colors'
+
+import {useTranslation} from 'react-i18next'
+
+const ChatScreen = ({ navigation, route }) => {
+ const {
+ messages,
+ onSend,
+ image,
+ setImage,
+ inputMessage,
+ setInputMessage,
+ profile
+ } = useChatScreen({ navigation, route })
+
+ const {t} = useTranslation()
+ const filterImages = src => {
+ setImage(image.filter(item => item !== src))
+ }
+
+ const renderAccessory = props => {
+ return (
+
+ {image.map(item => (
+
+
+ filterImages(item)}
+ name="circle-with-cross"
+ size={18}
+ style={styles.accessoryIcon}
+ color="black"
+ />
+
+ ))}
+
+ )
+ }
+
+ const renderSend = props => {
+ return (
+
+
+
+
+
+ )
+ }
+
+ const renderChatEmpty = props => {
+ return (
+
+
+ {t('chatWithRider')}
+
+
+ )
+ }
+
+ const renderBubble = props => {
+ return (
+
+ )
+ }
+
+ const scrollToBottomComponent = () => {
+ return (
+
+ )
+ }
+
+ return (
+ 0 ? renderAccessory : null}
+ text={inputMessage}
+ onInputTextChanged={m => setInputMessage(m)}
+ />
+ )
+}
+
+export default ChatScreen
diff --git a/enatega-multivendor-rider/src/screens/ChatWithCustomer/styles.js b/enatega-multivendor-rider/src/screens/ChatWithCustomer/styles.js
new file mode 100644
index 0000000..46d210f
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/ChatWithCustomer/styles.js
@@ -0,0 +1,45 @@
+import { StyleSheet } from 'react-native'
+import colors from '../../utilities/colors'
+
+export default StyleSheet.create({
+ rowDisplay: {
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ accessoryContainer: {
+ height: 100,
+ paddingLeft: 20,
+ display: 'flex',
+ flexDirection: 'row'
+ },
+ accessoryImg: { height: 40, width: 40, borderRadius: 5 },
+ accessoryIcon: {
+ marginLeft: -10,
+ marginTop: -10,
+ position: 'relative',
+ elevation: 999
+ },
+ sendIcon: { marginBottom: 7, marginRight: 10 },
+ emptyChat: {
+ marginTop: 300,
+ transform: [{ scaleY: -1 }, {scaleX: -1}],
+ alignSelf:'center'
+ },
+ bubbleRight: {
+ backgroundColor: colors.black,
+ padding: 5,
+ marginBottom: 5,
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15,
+ borderBottomLeftRadius: 15,
+ borderBottomRightRadius: 0
+ },
+ bubbleLeft: {
+ backgroundColor: colors.primary,
+ padding: 5,
+ borderTopLeftRadius: 15,
+ borderTopRightRadius: 15,
+ borderBottomLeftRadius: 0,
+ borderBottomRightRadius: 15
+ }
+})
diff --git a/enatega-multivendor-rider/src/screens/ChatWithCustomer/useChatScreen.js b/enatega-multivendor-rider/src/screens/ChatWithCustomer/useChatScreen.js
new file mode 100644
index 0000000..abc801b
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/ChatWithCustomer/useChatScreen.js
@@ -0,0 +1,145 @@
+import React, { useState, useEffect, useLayoutEffect, useContext} from 'react'
+import { Ionicons, FontAwesome5 } from '@expo/vector-icons'
+import { callNumber } from '../../utilities/callNumber'
+import colors from '../../utilities/colors'
+import { Alert } from 'react-native'
+import { chat } from '../../apollo/queries'
+import { sendChatMessage } from '../../apollo/mutations'
+import { subscriptionNewMessage } from '../../apollo/subscriptions'
+import { gql, useMutation, useQuery } from '@apollo/client'
+import UserContext from '../../context/user'
+import { useTranslation } from 'react-i18next'
+
+export const useChatScreen = ({ navigation, route }) => {
+ const {t} = useTranslation()
+ const { dataProfile } = useContext(UserContext)
+ const [messages, setMessages] = useState([])
+ const [inputMessage, setInputMessage] = useState(null)
+ const [image, setImage] = useState([])
+ const [phone] = useState(route.params?.phoneNumber)
+ const { id: orderId } = route.params
+ const { subscribeToMore: subscribeToMessages, data: chatData } = useQuery(
+ gql`
+ ${chat}
+ `,
+ {
+ variables: { order: orderId },
+ fetchPolicy: 'network-only',
+ onError
+ }
+ )
+ const [send] = useMutation(
+ gql`
+ ${sendChatMessage}
+ `,
+ { onCompleted, onError }
+ )
+ useEffect(() => {
+ if (chatData) {
+ setMessages(
+ chatData.chat.map(message => ({
+ _id: message.id,
+ text: message.message,
+ createdAt: message.createdAt,
+ user: {
+ _id: message.user.id,
+ name: message.user.name
+ }
+ }))
+ )
+ }
+ }, [chatData])
+
+ function onCompleted({ sendChatMessage: messageResult }) {
+ if (!messageResult?.success) {
+ Alert.alert('Error', messageResult.message)
+ }
+ }
+ function onError(error) {
+ Alert.alert('Error', error.message)
+ }
+ useEffect(() => {
+ const unsubscribe = subscribeToMessages({
+ document: gql`
+ ${subscriptionNewMessage}
+ `,
+ variables: { order: orderId },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev
+ return {
+ chat: [subscriptionData.data.subscriptionNewMessage, ...prev.chat]
+ }
+ }
+ })
+ return unsubscribe
+ })
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerStyle: {
+ backgroundColor: colors.white
+ },
+ headerTitleStyle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: colors.primary
+ },
+ headerLeft: () => (
+ navigation.goBack()}
+ />
+ ),
+ headerRight: () => (
+ callNumber(phone)}
+ />
+ ),
+ headerTitle: t('contactCustomer')
+ })
+ }, [navigation])
+
+ const onSend = () => {
+ send({
+ variables: {
+ orderId: orderId,
+ messageInput: {
+ message: inputMessage,
+ user: {
+ id: dataProfile.rider._id,
+ name: dataProfile.rider.name
+ }
+ }
+ }
+ })
+ setInputMessage(null)
+ setImage([])
+ }
+
+ return {
+ messages,
+ onSend,
+ image,
+ setImage,
+ inputMessage,
+ setInputMessage,
+ profile: dataProfile
+ }
+}
diff --git a/enatega-multivendor-rider/src/screens/Help/Help.js b/enatega-multivendor-rider/src/screens/Help/Help.js
new file mode 100644
index 0000000..3df0b6a
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Help/Help.js
@@ -0,0 +1,64 @@
+import React, { useLayoutEffect } from 'react'
+import { View, TouchableOpacity } from 'react-native'
+import { useSafeArea } from 'react-native-safe-area-context'
+import styles from './styles'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import { useNavigation } from '@react-navigation/native'
+import {useTranslation} from 'react-i18next'
+
+
+const links = [
+ {
+ title: ('productPage'),
+ url:
+ 'https://market.nativebase.io/view/enatega-multivendor-food-backend-app'
+ },
+ {
+ title: ('docs'),
+ url: 'https://enatega-multi.gitbook.io/enatega-multivendor/'
+ },
+ {
+ title: ('blog'),
+ url:
+ 'https://blog.geekyants.com/enatega-multivendor-foodpanda-clone-v1-0-0-e4b4f21ba1c1'
+ },
+ { title: ('aboutUs'), url: 'https://ninjascode.com/pages/ourteam.html' }
+]
+function Help() {
+ const {t} = useTranslation()
+ const navigation = useNavigation()
+ const inset = useSafeArea()
+
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerRight: null,
+ headerTitle: t('titleHelp')
+ })
+ }, [navigation])
+
+ return (
+ <>
+
+ {links.map(({ title, url }, index) => (
+ navigation.navigate('HelpBrowser', { title, url })}
+ style={styles.itemContainer}
+ key={index}>
+
+ {t('title')}
+
+
+ ))}
+
+
+ >
+ )
+}
+
+export default Help
diff --git a/enatega-multivendor-rider/src/screens/Help/styles.js b/enatega-multivendor-rider/src/screens/Help/styles.js
new file mode 100644
index 0000000..49c00e8
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Help/styles.js
@@ -0,0 +1,18 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+import colors from '../../utilities/colors'
+
+const styles = StyleSheet.create({
+ flex: {
+ flex: 1,
+ backgroundColor: colors.themeBackground
+ },
+ itemContainer: {
+ borderBottomWidth: StyleSheet.hairlineWidth,
+ borderColor: colors.horizontalLine,
+ ...alignment.PTlarge,
+ ...alignment.PBlarge,
+ ...alignment.PLlarge
+ }
+})
+export default styles
diff --git a/enatega-multivendor-rider/src/screens/HelpBrowser/HelpBrowser.js b/enatega-multivendor-rider/src/screens/HelpBrowser/HelpBrowser.js
new file mode 100644
index 0000000..aaaade1
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/HelpBrowser/HelpBrowser.js
@@ -0,0 +1,36 @@
+import React, { useState, useLayoutEffect } from 'react'
+import { View, ActivityIndicator } from 'react-native'
+import { WebView } from 'react-native-webview'
+import { useNavigation, useRoute } from '@react-navigation/native'
+
+function HelpBrowser() {
+ const navigation = useNavigation()
+ const route = useRoute()
+ const [loading, loadingSetter] = useState(true)
+ const { title, url } = route.params
+
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerRight: null,
+ headerTitle: title
+ })
+ }, [navigation])
+
+ return (
+
+ {
+ loadingSetter(false)
+ }}
+ />
+ {loading ? (
+
+ ) : null}
+
+ )
+}
+
+export default HelpBrowser
diff --git a/enatega-multivendor-rider/src/screens/Language/Language.js b/enatega-multivendor-rider/src/screens/Language/Language.js
new file mode 100644
index 0000000..6cb9dc1
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Language/Language.js
@@ -0,0 +1,177 @@
+import React, { useState, useEffect, useLayoutEffect } from 'react'
+import { View, TouchableOpacity, Platform } from 'react-native'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import * as Updates from 'expo-updates'
+import * as Localization from 'expo-localization'
+import styles from './styles'
+import { useSafeAreaInsets } from 'react-native-safe-area-context'
+import colors from '../../utilities/colors'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { alignment } from '../../utilities/alignment'
+import Modal from 'react-native-modal'
+import RadioButton from '../../components/FdRadioBtn/RadioBtn'
+import { useNavigation } from '@react-navigation/native'
+import i18next from '../../../i18next'
+import {useTranslation} from 'react-i18next'
+
+const languageTypes = [
+ { value: 'English', code: 'en', index: 0 },
+ { value: 'français', code: 'fr', index: 1 },
+ { value: 'ភាសាខ្មែរ', code: 'km', index: 2 },
+ { value: '中文', code: 'zh', index: 3 },
+ { value: 'Deutsche', code: 'de', index: 4 },
+ { value: 'Arabic', code: 'ar', index: 5 }
+]
+
+function Language() {
+ const navigation = useNavigation()
+ const {t} = useTranslation()
+ const [modalVisible, modalVisibleSetter] = useState(false)
+ const [activeRadio, setActiveRadio] = useState(languageTypes[0].index)
+ const [languageName, languageNameSetter] = useState('English')
+ const inset = useSafeAreaInsets()
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ title: t('titleLanguage')
+ })
+ }, [navigation, languageName])
+
+ useEffect(() => {
+ selectedLanguageFunc()
+ }, [])
+
+ async function selectedLanguageFunc() {
+ const lang = await AsyncStorage.getItem('enatega-language')
+ if (lang) {
+ const defLang = languageTypes.findIndex(el => el.code === lang)
+ const langName = languageTypes[defLang].value
+ setActiveRadio(defLang)
+ languageNameSetter(langName)
+ }
+ }
+
+ async function onSelectedLanguage() {
+ const languageInd = activeRadio
+ const lang = languageTypes[languageInd].code
+ i18next.changeLanguage(lang)
+ console.log(lang)
+ if (Platform.OS === 'android') {
+ const localization = await Localization.getLocalizationAsync()
+ localization.locale = languageTypes[languageInd].code
+ await AsyncStorage.setItem(
+ 'enatega-language',
+ languageTypes[languageInd].code
+ )
+ }
+ if (lang) {
+ const defLang = languageTypes.findIndex(el => el.code === lang)
+ const langName = languageTypes[defLang].value
+ setActiveRadio(defLang)
+ languageNameSetter(langName)
+ }
+ modalVisibleSetter(false)
+ }
+
+ return (
+
+
+
+
+
+ {t('language')}
+
+
+ modalVisibleSetter(true)}
+ style={styles.button}>
+
+ {t('edit')}
+
+
+
+
+ {languageName}
+
+
+ {/* Modal for language Changes */}
+
+ modalVisibleSetter(false)}
+ onBackButtonPress={() => modalVisibleSetter(false)}>
+
+
+ {t('selectLanguage')}
+
+
+ {languageTypes.map((item, index) => (
+ setActiveRadio(item.index)}
+ style={[styles.radioContainer]}>
+ setActiveRadio(item.index)}
+ />
+
+ {item.value}
+
+
+ ))}
+
+ modalVisibleSetter(false)}>
+
+ {t('cancel')}
+
+
+ onSelectedLanguage()}>
+
+ {t('select')}
+
+
+
+
+
+
+ )
+}
+
+export default Language
\ No newline at end of file
diff --git a/enatega-multivendor-rider/src/screens/Language/styles.js b/enatega-multivendor-rider/src/screens/Language/styles.js
new file mode 100644
index 0000000..ca7bdcd
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Language/styles.js
@@ -0,0 +1,64 @@
+import colors from '../../utilities/colors'
+import { verticalScale, scale } from '../../utilities/scaling'
+import { alignment } from '../../utilities/alignment'
+
+export default {
+ flex: {
+ flex: 1
+ },
+ headingLanguage: {
+ width: '70%',
+ justifyContent: 'center'
+ },
+ languageContainer: {
+ width: '100%',
+ backgroundColor: colors.cartContainer,
+ ...alignment.PRmedium,
+ ...alignment.PTsmall,
+ ...alignment.PBlarge,
+ ...alignment.PLmedium
+ },
+ shadow: {
+ shadowOffset: { width: 0, height: scale(2) },
+ shadowColor: 'black',
+ shadowOpacity: 0.3,
+ shadowRadius: scale(1),
+ elevation: 5,
+ borderWidth: 0.4,
+ borderColor: '#e1e1e1'
+ },
+ changeLanguage: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ width: '100%',
+ height: verticalScale(40)
+ },
+ button: {
+ width: '25%',
+ height: '100%',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ modalContainer: {
+ width: '100%',
+ backgroundColor: 'white',
+ borderRadius: verticalScale(4),
+ ...alignment.Plarge
+ },
+ radioContainer: {
+ width: '100%',
+ backgroundColor: colors.cartContainer,
+ flexDirection: 'row',
+ alignItems: 'center',
+ ...alignment.PTxSmall,
+ ...alignment.PBxSmall
+ },
+ modalButtonsContainer: {
+ flexDirection: 'row',
+ justifyContent: 'flex-end'
+ },
+ modalButtons: {
+ ...alignment.Msmall,
+ marginBottom: 0
+ }
+}
diff --git a/enatega-multivendor-rider/src/screens/LocationPermissions/LocationPermissions.js b/enatega-multivendor-rider/src/screens/LocationPermissions/LocationPermissions.js
new file mode 100644
index 0000000..afbb8ee
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/LocationPermissions/LocationPermissions.js
@@ -0,0 +1,86 @@
+import React, { useEffect } from 'react'
+import { View, TouchableOpacity, Linking, Alert } from 'react-native'
+import * as Location from 'expo-location'
+import styles from './styles'
+import { useLocationContext } from '../../context/location'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+
+const LocationPermissions = ({ navigation }) => {
+ const { setLocationPermission } = useLocationContext()
+
+ const getLocationPermission = async() => {
+ const { status } = await Location.getForegroundPermissionsAsync()
+ if (status === 'granted') {
+ setLocationPermission(true)
+ }
+ }
+
+ const LocationAlert = async() => {
+ Alert.alert(
+ 'Location access',
+ 'Location permissions are required to use this app. Kindly open settings to allow location access.',
+ [
+ {
+ text: 'Open settings',
+ onPress: async() => {
+ await Linking.openSettings()
+ }
+ }
+ ]
+ )
+ const { status } = await Location.getForegroundPermissionsAsync()
+ if (status === 'granted') {
+ setLocationPermission(true)
+ }
+ }
+
+ const askLocationPermission = async() => {
+ const {
+ status,
+ canAskAgain
+ } = await Location.getForegroundPermissionsAsync()
+ if (status === 'granted') {
+ setLocationPermission(true)
+ }
+ if (canAskAgain) {
+ const { status } = await Location.requestForegroundPermissionsAsync()
+ if (status === 'granted') {
+ setLocationPermission(true)
+ } else {
+ LocationAlert()
+ }
+ } else {
+ LocationAlert()
+ }
+ }
+
+ useEffect(() => {
+ getLocationPermission()
+ }, [])
+
+ return (
+ <>
+
+
+
+ {
+ 'Enatega uses your location for features like finding orders nearby and tracking customer orders!'
+ }
+
+
+ {
+ askLocationPermission()
+ }}>
+
+ {'Allow Location'}
+
+
+
+ >
+ )
+}
+
+export default LocationPermissions
diff --git a/enatega-multivendor-rider/src/screens/LocationPermissions/styles.js b/enatega-multivendor-rider/src/screens/LocationPermissions/styles.js
new file mode 100644
index 0000000..a3cc259
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/LocationPermissions/styles.js
@@ -0,0 +1,30 @@
+import { StyleSheet } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+import colors from '../../utilities/colors'
+
+const styles = (props = null) =>
+ StyleSheet.create({
+ flex: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ flex: 1
+ },
+ screenBackground: {
+ backgroundColor: props != null ? props.themeBackground : '#FFF'
+ },
+ descriptionEmpty: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ ...alignment.Plarge
+ },
+ linkButton: {
+ ...alignment.Pmedium,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: colors.buttonBackground,
+ color: colors.buttonText,
+ borderRadius: 10
+ }
+ })
+
+export default styles
diff --git a/enatega-multivendor-rider/src/screens/Login/Login.js b/enatega-multivendor-rider/src/screens/Login/Login.js
new file mode 100644
index 0000000..98fc7ee
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Login/Login.js
@@ -0,0 +1,107 @@
+import React from 'react'
+import {
+ View,
+ TouchableOpacity,
+ TextInput,
+ Image,
+ ScrollView
+} from 'react-native'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import styles from './styles'
+import colors from '../../utilities/colors'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import RiderLogin from '../../assets/svg/RiderLogin.png'
+import { FontAwesome } from '@expo/vector-icons'
+import Spinner from '../../components/Spinner/Spinner'
+import useLogin from './useLogin'
+import {useTranslation} from 'react-i18next'
+
+export default function Login() {
+ const {
+ username,
+ setUsername,
+ password,
+ setPassword,
+ usernameError,
+ passwordError,
+ onSubmit,
+ showPassword,
+ setShowPassword,
+ loading,
+ height
+ } = useLogin()
+
+ const {t} = useTranslation()
+ return (
+
+
+
+
+
+ {t('signInText')}
+
+ setUsername(e)}
+ />
+ {usernameError ? (
+
+ {usernameError}
+
+ ) : null}
+
+ setPassword(e)}
+ />
+ setShowPassword(!showPassword)}
+ name={showPassword ? 'eye' : 'eye-slash'}
+ size={24}
+ style={styles.eyeBtn}
+ />
+ {console.log(username)}
+
+ {passwordError ? (
+
+
+ {passwordError}
+
+
+ ) : null}
+ onSubmit()}>
+
+ {loading ? : t('signInBtn')}
+
+
+
+
+
+ )
+}
diff --git a/enatega-multivendor-rider/src/screens/Login/styles.js b/enatega-multivendor-rider/src/screens/Login/styles.js
new file mode 100644
index 0000000..ccb6622
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Login/styles.js
@@ -0,0 +1,103 @@
+import colors from '../../utilities/colors'
+import { Dimensions, Platform } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+const { height } = Dimensions.get('window')
+export default {
+ flex: {
+ flex: 1
+ },
+ bgColor: {
+ backgroundColor: colors.themeBackground
+ },
+ scrollContainer: {
+ justifyContent: 'top',
+ ...alignment.PTlarge
+ },
+ container: {
+ width: '100%',
+ alignSelf: 'center',
+ height: height * 1.2
+ },
+ image: {
+ alignSelf: 'center',
+ height: 150,
+ width: 250,
+ ...alignment.MBlarge,
+ ...alignment.MTmedium
+ },
+ innerContainer: {
+ height: height * 1,
+ backgroundColor: colors.themeBackground,
+ borderTopLeftRadius: 40,
+ borderTopRightRadius: 40,
+ shadowColor: colors.headerText,
+ shadowOffset: {
+ width: 0,
+ height: 12
+ },
+ shadowOpacity: 0.58,
+ shadowRadius: 13.0,
+ elevation: 24,
+ ...alignment.MTlarge
+ },
+ signInText: {
+ marginTop: 50,
+ marginBottom: 50
+ },
+ textInput: {
+ width: '80%',
+ alignSelf: 'center',
+ padding: 15,
+ backgroundColor: colors.white,
+ borderColor: colors.themeBackground,
+ borderWidth: 1,
+ borderRadius: 10,
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ },
+ shadowOpacity: 0.25,
+ shadowRadius: 3.84,
+ elevation: 4,
+ ...alignment.MTlarge
+ },
+ passwordField: {
+ display: 'flex',
+ flexDirection: 'row',
+ width: '100%',
+ marginLeft: '10%'
+ },
+ eyeBtn: {
+ position: 'relative',
+ display: 'flex',
+ zIndex: 1,
+ elevation: 999,
+ marginTop: Platform.OS === 'ios' ? 33 : 40,
+ marginLeft: -40,
+ color: colors.primary
+ },
+ btn: {
+ width: '70%',
+ height: height * 0.06,
+ alignItems: 'center',
+ backgroundColor: colors.black,
+ color: colors.white,
+ alignSelf: 'center',
+ borderRadius: 10,
+ marginTop: height * 0.15
+ },
+ pt5: {
+ paddingTop: 5
+ },
+ pt15: {
+ paddingTop: 12
+ },
+ error: {
+ marginLeft: '10%',
+ ...alignment.MTxSmall
+ },
+ errorInput: {
+ borderColor: colors.textErrorColor
+ }
+}
diff --git a/enatega-multivendor-rider/src/screens/Login/useLogin.js b/enatega-multivendor-rider/src/screens/Login/useLogin.js
new file mode 100644
index 0000000..e82495b
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Login/useLogin.js
@@ -0,0 +1,129 @@
+import { useContext, useState } from 'react'
+import { Dimensions } from 'react-native'
+import { riderLogin } from '../../apollo/mutations'
+import { defaultRiderCreds } from '../../apollo/queries'
+import { AuthContext } from '../../context/auth'
+import { FlashMessage } from '../../components/FlashMessage/FlashMessage'
+import AsyncStorage from '@react-native-async-storage/async-storage'
+import { gql, useMutation, useQuery } from '@apollo/client'
+import * as Notifications from 'expo-notifications'
+import * as Device from 'expo-device'
+import { useTranslation } from 'react-i18next'
+
+const RIDER_LOGIN = gql`
+ ${riderLogin}
+`
+const RIDER_CREDS = gql`${defaultRiderCreds}`
+
+const useLogin = () => {
+ const { t } = useTranslation()
+ const [username, setUsername] = useState('')
+ const [password, setPassword] = useState('')
+ const [showPassword, setShowPassword] = useState(true)
+ const [usernameError, setUsernameError] = useState(false)
+ const [passwordError, setPasswordError] = useState(false)
+ const { height } = Dimensions.get('window')
+
+ const { setTokenAsync } = useContext(AuthContext)
+
+ const [mutate, { loading }] = useMutation(RIDER_LOGIN, {
+ onCompleted,
+ onError
+ })
+
+ useQuery(RIDER_CREDS, { onCompleted, onError })
+
+ function validateForm() {
+ let result = true
+ setUsernameError('')
+ setPasswordError('')
+
+ if (!username) {
+ setUsernameError(t('emptyUsernameError'))
+ result = false
+ }
+ if (!password) {
+ setPasswordError(t('emptyPasswordError'))
+ result = false
+ }
+ return result
+ }
+
+ async function onCompleted({ riderLogin, lastOrderCreds }) {
+ if (riderLogin) {
+ FlashMessage({ message: t('loginFlashMsg') })
+ await AsyncStorage.setItem('rider-id', riderLogin.userId)
+ await setTokenAsync(riderLogin.token)
+ } else if (lastOrderCreds && lastOrderCreds.riderUsername && lastOrderCreds.riderPassword) {
+ setUsername(lastOrderCreds.riderUsername)
+ setPassword(lastOrderCreds.riderPassword)
+ }
+ }
+ function onError(error) {
+ console.log('error', JSON.stringify(error))
+ let message = 'Check internet connection'
+ try {
+ message = error.message
+ } catch (error) { }
+ FlashMessage({ message: message })
+ }
+
+ async function onSubmit() {
+ if (validateForm()) {
+ // Get notification permissions
+ const settings = await Notifications.getPermissionsAsync()
+ let notificationPermissions = { ...settings }
+
+ // Request notification permissions if not granted or not provisional on iOS
+ if (
+ settings?.status !== 'granted' ||
+ settings.ios?.status !== Notifications.IosAuthorizationStatus.PROVISIONAL
+ ) {
+ notificationPermissions = await Notifications.requestPermissionsAsync({
+ ios: {
+ allowProvisional: true,
+ allowAlert: true,
+ allowBadge: true,
+ allowSound: true,
+ allowAnnouncements: true
+ }
+ })
+ }
+
+ let notificationToken = null
+ // Get notification token if permissions are granted and it's a device
+ if (
+ (notificationPermissions?.status === 'granted' ||
+ notificationPermissions.ios?.status ===
+ Notifications.IosAuthorizationStatus.PROVISIONAL) &&
+ Device.isDevice
+ ) {
+ notificationToken = (await Notifications.getExpoPushTokenAsync()).data
+ }
+
+ // Perform mutation with the obtained data
+ mutate({
+ variables: {
+ username: username.toLowerCase(),
+ password: password,
+ notificationToken: notificationToken
+ }
+ })
+ }
+ }
+ return {
+ username,
+ setUsername,
+ password,
+ setPassword,
+ usernameError,
+ passwordError,
+ onSubmit,
+ showPassword,
+ setShowPassword,
+ loading,
+ height
+ }
+}
+
+export default useLogin
diff --git a/enatega-multivendor-rider/src/screens/NewOrders/NewOrders.js b/enatega-multivendor-rider/src/screens/NewOrders/NewOrders.js
new file mode 100644
index 0000000..cb69d8a
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/NewOrders/NewOrders.js
@@ -0,0 +1,135 @@
+import { View, FlatList, Dimensions } from 'react-native'
+import React, { useContext, useState, useEffect } from 'react'
+import ScreenBackground from '../../components/ScreenBackground/ScreenBackground'
+import styles from './style'
+import Tabs from '../../components/Tabs/Tabs'
+import Order from '../../components/Order/Order'
+import { TabsContext } from '../../context/tabs'
+import { useFocusEffect } from '@react-navigation/native'
+import ConfigurationContext from '../../context/configuration'
+import UserContext from '../../context/user'
+import Spinner from '../../components/Spinner/Spinner'
+import TextError from '../../components/Text/TextError/TextError'
+import LottieView from 'lottie-react-native'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import { NetworkStatus } from '@apollo/client'
+import i18next from '../../../i18next'
+import {useTranslation} from 'react-i18next'
+
+
+const { height, width } = Dimensions.get('window')
+const NewOrders = ({ navigation }) => {
+ const {t} = useTranslation()
+ const { setActive } = useContext(TabsContext)
+ const configuration = useContext(ConfigurationContext)
+ const {
+ loadingAssigned,
+ errorAssigned,
+ assignedOrders,
+ refetchAssigned,
+ networkStatusAssigned
+ } = useContext(UserContext)
+ const [orders, setOrders] = useState([])
+
+ useFocusEffect(() => {
+ setActive('NewOrders')
+ })
+
+ useEffect(() => {
+ if (assignedOrders) {
+ setOrders(
+ assignedOrders.filter(
+ o => o.orderStatus === 'ACCEPTED' && !o.rider && !o.isPickedUp
+ )
+ )
+ }
+ }, [assignedOrders])
+
+ const noNewOrders = orders.length === 0
+ useEffect(() => {
+ // Trigger refetch when orders length changes
+ if (noNewOrders) {
+ refetchAssigned()
+ }
+ }, [noNewOrders])
+
+ return (
+
+
+
+
+
+ {loadingAssigned && (
+
+
+
+ )}
+ {errorAssigned && (
+
+
+
+ )}
+ {
+ return (
+ 670
+ ? height - height * 0.5
+ : height - height * 0.6,
+ justifyContent: 'center',
+ alignItems: 'center'
+ }}>
+
+
+ {noNewOrders ? (
+
+ {t('noNewOrders')}
+
+ ) : (
+
+ {t('pullToRefresh')}
+
+ )}
+
+ )
+ }}
+ style={styles.ordersContainer}
+ keyExtractor={item => item._id}
+ data={orders}
+ showsVerticalScrollIndicator={false}
+ refreshing={networkStatusAssigned === NetworkStatus.loading}
+ onRefresh={refetchAssigned}
+ renderItem={({ item }) => (
+
+ )}
+ />
+
+
+ )
+}
+
+export default NewOrders
diff --git a/enatega-multivendor-rider/src/screens/NewOrders/style.js b/enatega-multivendor-rider/src/screens/NewOrders/style.js
new file mode 100644
index 0000000..a69d031
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/NewOrders/style.js
@@ -0,0 +1,40 @@
+import colors from '../../utilities/colors'
+import { Dimensions, Platform } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+const { height } = Dimensions.get('window')
+
+const styles = {
+ flex: {
+ flex: 1
+ },
+ container: {
+ height: '100%',
+ width: '100%'
+ },
+ innerContainer: {
+ height: height * 1,
+ backgroundColor: colors.themeBackground,
+ borderTopLeftRadius: 40,
+ borderTopRightRadius: 40,
+ shadowColor: colors.headerText,
+ shadowOffset: {
+ width: 0,
+ height: 12
+ },
+ shadowOpacity: 0.58,
+ shadowRadius: 13.0,
+ elevation: 24,
+ alignItems: 'center',
+ ...alignment.MTlarge
+ },
+ ordersContainer: {
+ height: height,
+ marginBottom: Platform.OS === 'ios' ? height * 0.4 : height * 0.35,
+ ...alignment.MTlarge
+ },
+ margin500: {
+ marginTop: -500
+ }
+}
+
+export default styles
diff --git a/enatega-multivendor-rider/src/screens/OrderDetail/OrderDetail.js b/enatega-multivendor-rider/src/screens/OrderDetail/OrderDetail.js
new file mode 100644
index 0000000..14ffc93
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/OrderDetail/OrderDetail.js
@@ -0,0 +1,161 @@
+import { ScrollView, View, Image } from 'react-native'
+import React from 'react'
+import { SafeAreaView } from 'react-native-safe-area-context'
+import { Ionicons } from '@expo/vector-icons'
+import MapView, { Marker, PROVIDER_GOOGLE } from 'react-native-maps'
+import MapViewDirections from 'react-native-maps-directions'
+import styles from './styles'
+import colors from '../../utilities/colors'
+import Status from '../../components/OrderDetail/Status/Status'
+import Details from '../../components/OrderDetail/Details/Details'
+import RestIcon from '../../assets/rest_icon.png'
+import HomeIcon from '../../assets/home_icon.png'
+import RiderIcon from '../../assets/rider_icon.png'
+import { linkToMapsApp } from '../../utilities/links'
+import { MapStyles } from '../../utilities/mapStyles'
+import useOrderDetail from './useOrderDetail'
+
+const OrderDetail = () => {
+ const {
+ locationPin,
+ restaurantAddressPin,
+ deliveryAddressPin,
+ GOOGLE_MAPS_KEY,
+ distance,
+ setDistance,
+ duration,
+ setDuration,
+ order,
+ route,
+ navigation,
+ orderID
+ } = useOrderDetail()
+
+ return (
+
+
+
+ {locationPin && (
+
+ {deliveryAddressPin && (
+ {
+ linkToMapsApp(
+ deliveryAddressPin.location,
+ deliveryAddressPin.label
+ )
+ }}>
+
+
+ )}
+ {restaurantAddressPin && (
+ {
+ linkToMapsApp(
+ restaurantAddressPin.location,
+ restaurantAddressPin.label
+ )
+ }}>
+
+
+ )}
+ {locationPin && (
+ {
+ linkToMapsApp(locationPin.location, locationPin.label)
+ }}>
+
+
+ )}
+ {order?.orderStatus === 'ACCEPTED' ? (
+ {
+ setDistance(result.distance)
+ setDuration(result.duration)
+ }}
+ />
+ ) : order?.orderStatus === 'PICKED' ? (
+ {
+ setDistance(result.distance)
+ setDuration(result.duration)
+ }}
+ />
+ ) : (
+ {
+ setDistance(result.distance)
+ setDuration(result.duration)
+ }}
+ />
+ )}
+
+ )}
+
+
+ navigation.goBack()}
+ name="chevron-back"
+ size={26}
+ color={colors.white}
+ style={styles.icon}
+ />
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default OrderDetail
diff --git a/enatega-multivendor-rider/src/screens/OrderDetail/styles.js b/enatega-multivendor-rider/src/screens/OrderDetail/styles.js
new file mode 100644
index 0000000..47c4780
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/OrderDetail/styles.js
@@ -0,0 +1,41 @@
+import colors from '../../utilities/colors'
+import { Dimensions } from 'react-native'
+const { height, width } = Dimensions.get('window')
+
+export default {
+ container: {
+ backgroundColor: colors.themeBackground
+ },
+ map: {
+ width: width,
+ height: height * 0.4
+ },
+ iconView: {
+ position: 'absolute'
+ },
+ icon: {
+ position: 'absolute',
+ backgroundColor: colors.black,
+ borderRadius: 5,
+ marginLeft: 15,
+ marginTop: 10,
+ overflow: 'hidden'
+ },
+ spinner: {
+ display: 'flex',
+ alignItems: 'center',
+ alignSelf: 'center',
+ justifyContent: 'center'
+ },
+ loading: {
+ position: 'absolute',
+ zIndex: 999,
+ elevation: 999,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0,
+ alignItems: 'center',
+ justifyContent: 'center'
+ }
+}
diff --git a/enatega-multivendor-rider/src/screens/OrderDetail/useOrderDetail.js b/enatega-multivendor-rider/src/screens/OrderDetail/useOrderDetail.js
new file mode 100644
index 0000000..7ef3c5a
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/OrderDetail/useOrderDetail.js
@@ -0,0 +1,77 @@
+import React, { useLayoutEffect, useState, useContext, useEffect } from 'react'
+import { useNavigation, useRoute } from '@react-navigation/native'
+import { Ionicons } from '@expo/vector-icons'
+import UserContext from '../../context/user'
+import getEnvVars from '../../../environment'
+import { useLocationContext } from '../../context/location'
+
+const useOrderDetail = () => {
+ const navigation = useNavigation()
+ const route = useRoute()
+ const [orderID] = useState(route.params?.itemId)
+ const { assignedOrders, loadingAssigned } = useContext(UserContext)
+ const [order, setOrder] = useState(route.params?.order)
+ const { GOOGLE_MAPS_KEY } = getEnvVars()
+ const { location } = useLocationContext()
+
+ const [distance, setDistance] = useState(null)
+ const [duration, setDuration] = useState(null)
+
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ headerRight: null,
+ headerTitle: null,
+ headerLeft: () => (
+ navigation.navigate('Home')}
+ name="chevron-back"
+ size={24}
+ color="black"
+ />
+ )
+ })
+ }, [navigation])
+ useEffect(() => {
+ if (!loadingAssigned) {
+ setOrder(assignedOrders.find(o => o._id === orderID))
+ }
+ }, [loadingAssigned, assignedOrders])
+ const deliveryAddressPin = {
+ label: 'Delivery Address',
+ location: {
+ latitude: +order?.deliveryAddress.location.coordinates[1] || 0,
+ longitude: +order?.deliveryAddress.location.coordinates[0] || 0
+ }
+ }
+ const restaurantAddressPin = {
+ label: 'Restaurant Address',
+ location: {
+ latitude: +order?.restaurant.location.coordinates[1] || 0,
+ longitude: +order?.restaurant.location.coordinates[0] || 0
+ }
+ }
+ const locationPin = {
+ label: 'Current Location',
+ location: {
+ latitude: +location?.latitude || 0,
+ longitude: +location?.longitude || 0
+ }
+ }
+ return {
+ locationPin,
+ restaurantAddressPin,
+ deliveryAddressPin,
+ GOOGLE_MAPS_KEY,
+ distance,
+ setDistance,
+ duration,
+ setDuration,
+ loadingAssigned,
+ route,
+ navigation,
+ orderID,
+ order
+ }
+}
+
+export default useOrderDetail
diff --git a/enatega-multivendor-rider/src/screens/Orders/Orders.js b/enatega-multivendor-rider/src/screens/Orders/Orders.js
new file mode 100644
index 0000000..7a1fbd2
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Orders/Orders.js
@@ -0,0 +1,132 @@
+import { View, FlatList, Dimensions } from 'react-native'
+import React, { useContext, useState, useEffect } from 'react'
+import ScreenBackground from '../../components/ScreenBackground/ScreenBackground'
+import styles from './style'
+import Tabs from '../../components/Tabs/Tabs'
+import Order from '../../components/Order/Order'
+import { TabsContext } from '../../context/tabs'
+import { useFocusEffect } from '@react-navigation/native'
+import ConfigurationContext from '../../context/configuration'
+import UserContext from '../../context/user'
+import Spinner from '../../components/Spinner/Spinner'
+import TextError from '../../components/Text/TextError/TextError'
+import LottieView from 'lottie-react-native'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import { useTranslation } from 'react-i18next'
+
+
+const { height, width } = Dimensions.get('window')
+const Orders = ({ navigation }) => {
+ const { t } = useTranslation()
+ const { setActive } = useContext(TabsContext)
+ const configuration = useContext(ConfigurationContext)
+ const {
+ loadingProfile,
+ errorProfile,
+ dataProfile,
+ loadingAssigned,
+ errorAssigned,
+ assignedOrders,
+ refetchAssigned,
+ networkStatusAssigned
+ } = useContext(UserContext)
+ const [orders, setOrders] = useState([])
+
+ useEffect(() => {
+ if (assignedOrders) {
+ setOrders(
+ assignedOrders.length > 0
+ ? assignedOrders.filter(
+ o =>
+ ['PICKED', 'ACCEPTED', 'DELIVERED', 'ASSIGNED'].includes(
+ o.orderStatus
+ ) &&
+ o.rider &&
+ dataProfile.rider._id === o.rider._id
+ )
+ : []
+ )
+ }
+ }, [assignedOrders])
+
+ useFocusEffect(() => {
+ setActive('MyOrders')
+ })
+
+ return (
+
+
+
+
+
+ {loadingProfile || loadingAssigned ? (
+
+
+
+ ) : errorProfile || errorAssigned ? (
+
+
+
+ ) : orders.length > 0 ? (
+ item._id}
+ data={orders.sort((a, b) => {
+ const order = ['DELIVERED', 'PICKED', 'ACCEPTED', 'ASSIGNED']
+ if (
+ a.orderStatus === b.orderStatus &&
+ order.includes(a.orderStatus)
+ ) {
+ return a.orderStatus - b.orderStatus
+ } else {
+ return (
+ order.indexOf(b.orderStatus) - order.indexOf(a.orderStatus)
+ )
+ }
+ })}
+ showsVerticalScrollIndicator={false}
+ refreshing={networkStatusAssigned === 4}
+ onRefresh={refetchAssigned}
+ renderItem={({ item }) => (
+
+ )}
+ />
+ ) : (
+ 670 ? height - height * 0.5 : height - height * 0.6,
+ justifyContent: 'center',
+ alignItems: 'center'
+ }}>
+
+
+ {t('notAnyOrdersYet')}
+
+
+ )}
+
+
+ )
+}
+
+export default Orders
diff --git a/enatega-multivendor-rider/src/screens/Orders/style.js b/enatega-multivendor-rider/src/screens/Orders/style.js
new file mode 100644
index 0000000..8e97323
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Orders/style.js
@@ -0,0 +1,41 @@
+import colors from '../../utilities/colors'
+import { Dimensions, Platform } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+const { height } = Dimensions.get('window')
+
+const styles = {
+ flex: {
+ flex: 1
+ },
+ container: {
+ height: '100%',
+ width: '100%'
+ },
+ innerContainer: {
+ height: height > 670 ? height : height - 60,
+ backgroundColor: colors.themeBackground,
+ borderTopLeftRadius: 40,
+ borderTopRightRadius: 40,
+ shadowColor: colors.headerText,
+ shadowOffset: {
+ width: 0,
+ height: 12
+ },
+ shadowOpacity: 0.58,
+ shadowRadius: 13.0,
+ elevation: 24,
+ alignItems: 'center',
+ ...alignment.MTlarge
+ },
+ ordersContainer: {
+ height: height,
+ marginBottom: Platform.OS === 'ios' ? height * 0.4 : height * 0.35,
+ ...alignment.MTlarge,
+ backgroundColor: 'transparent'
+ },
+ margin500: {
+ marginTop: -500
+ }
+}
+
+export default styles
diff --git a/enatega-multivendor-rider/src/screens/Wallet/Wallet.js b/enatega-multivendor-rider/src/screens/Wallet/Wallet.js
new file mode 100644
index 0000000..63321b7
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Wallet/Wallet.js
@@ -0,0 +1,87 @@
+import { TouchableOpacity, View } from 'react-native'
+import React, { useContext } from 'react'
+import WalletScreenBg from '../../components/ScreenBackground/WalletScreenBg'
+import styles from './style'
+import Amount from '../../components/Amount/Amount'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import { useNavigation } from '@react-navigation/native'
+import UserContext from '../../context/user'
+import Spinner from '../../components/Spinner/Spinner'
+import { MIN_WITHDRAW_AMOUNT } from '../../utilities/constants'
+import ConfigurationContext from '../../context/configuration'
+import {useTranslation} from 'react-i18next'
+
+const Wallet = () => {
+ const {t} = useTranslation()
+ const navigation = useNavigation()
+ const { loadingProfile, errorProfile, dataProfile } = useContext(UserContext)
+ const configuration = useContext(ConfigurationContext)
+ // eslint-disable-next-line no-undef
+ if (loadingProfile) {
+ return (
+
+
+
+ )
+ }
+
+ if (errorProfile) {
+ return (
+
+
+ {t('errorFetchingRiderProfile')}
+
+
+ )
+ }
+
+ return (
+
+
+
+
+
+ {t('minAmountWithdrawl')}{' '}
+
+
+ {configuration.currencySymbol} {MIN_WITHDRAW_AMOUNT.toFixed(2)}
+
+
+
+ navigation.navigate('Withdraw')}
+ activeOpacity={0.8}
+ style={[styles.btn, styles.withdrawBtn]}>
+
+ {t('withdrawMoney')}
+
+
+
+ navigation.navigate('WalletHistory', { prevBtn: 'walletHistory' })
+ }
+ activeOpacity={0.8}
+ style={[styles.btn, styles.historyBtn]}>
+
+ {t('walletHistory')}
+
+
+
+
+
+ )
+}
+
+export default Wallet
diff --git a/enatega-multivendor-rider/src/screens/Wallet/style.js b/enatega-multivendor-rider/src/screens/Wallet/style.js
new file mode 100644
index 0000000..cca7c55
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Wallet/style.js
@@ -0,0 +1,36 @@
+import { StyleSheet, Dimensions } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+import colors from '../../utilities/colors'
+const { width, height } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ textView: {
+ flexDirection: 'row',
+ justifyContent: 'center'
+ },
+ btnView: {
+ alignItems: 'center'
+ },
+ btn: {
+ width: width * 0.8,
+ borderRadius: 10,
+ ...alignment.MBmedium,
+ ...alignment.Pmedium
+ },
+ withdrawBtn: {
+ backgroundColor: colors.primary
+ },
+ historyBtn: {
+ borderWidth: 1
+ },
+ walletView: {
+ height: height * 0.4,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center'
+ },
+ imageView: {
+ ...alignment.MTlarge,
+ ...alignment.MBlarge
+ }
+})
diff --git a/enatega-multivendor-rider/src/screens/WalletHistory/WalletHistory.js b/enatega-multivendor-rider/src/screens/WalletHistory/WalletHistory.js
new file mode 100644
index 0000000..03e20b7
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/WalletHistory/WalletHistory.js
@@ -0,0 +1,77 @@
+import { FlatList, View } from 'react-native'
+import React, { useContext } from 'react'
+import WalletScreenBg from '../../components/ScreenBackground/WalletScreenBg'
+import Amount from '../../components/Amount/Amount'
+import styles from './style'
+import { riderWithdrawRequest } from '../../apollo/queries'
+import { gql, NetworkStatus, useQuery } from '@apollo/client'
+import Spinner from '../../components/Spinner/Spinner'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import colors from '../../utilities/colors'
+import RequestCard from '../../components/WalletCard/WithDrawRequestCard'
+import UserContext from '../../context/user'
+import {useTranslation} from 'react-i18next'
+
+const WALLET_HISTORY = gql`
+ ${riderWithdrawRequest}
+`
+
+const WalletHistory = () => {
+ const {t} = useTranslation()
+ const { loading, error, data, refetch, fetchMore, networkStatus } = useQuery(
+ WALLET_HISTORY,
+ {
+ variables: { offset: 0 },
+ fetchPolicy: 'network-only'
+ }
+ )
+ const { loadingProfile, errorProfile, dataProfile } = useContext(UserContext)
+ if (loadingProfile) {
+ return (
+
+
+
+ )
+ }
+ if (errorProfile) {
+ return (
+
+ {t('errorFetchingRider')}
+
+ )
+ }
+ return (
+
+ {loading ? (
+
+ ) : error ? (
+
+ {t('errorOccured')}
+
+ ) : (
+
+ }
+ data={data.riderWithdrawRequests}
+ renderItem={({ item }) => }
+ keyExtractor={item => item._id}
+ showsVerticalScrollIndicator={false}
+ onRefresh={refetch}
+ onEndReached={() =>
+ fetchMore({
+ variables: { offset: data.riderWithdrawRequests.length }
+ })
+ }
+ refreshing={networkStatus === NetworkStatus.refetch}
+ />
+ )}
+
+ )
+}
+
+export default WalletHistory
diff --git a/enatega-multivendor-rider/src/screens/WalletHistory/style.js b/enatega-multivendor-rider/src/screens/WalletHistory/style.js
new file mode 100644
index 0000000..b88a36a
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/WalletHistory/style.js
@@ -0,0 +1,8 @@
+import { StyleSheet, Dimensions } from 'react-native'
+const { height } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ transactionHistory: {
+ height: height * 0.4
+ }
+})
diff --git a/enatega-multivendor-rider/src/screens/Withdraw/Withdraw.js b/enatega-multivendor-rider/src/screens/Withdraw/Withdraw.js
new file mode 100644
index 0000000..a332874
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Withdraw/Withdraw.js
@@ -0,0 +1,107 @@
+import {
+ View,
+ TextInput,
+ TouchableOpacity,
+ Image,
+ KeyboardAvoidingView,
+ ScrollView,
+ Dimensions
+} from 'react-native'
+import React from 'react'
+import WalletScreenBg from '../../components/ScreenBackground/WalletScreenBg'
+import TextDefault from '../../components/Text/TextDefault/TextDefault'
+import Amount from '../../components/Amount/Amount'
+import colors from '../../utilities/colors'
+import styles from './style'
+import DoneIcon from '../../assets/svg/doneIcon.png'
+import Spinner from '../../components/Spinner/Spinner'
+import { useWithdrawRequest } from './useWithdrawRequest'
+import { useTranslation } from 'react-i18next'
+
+const { height } = Dimensions.get('window')
+
+const Withdraw = () => {
+ const {
+ requestSent,
+ dataProfile,
+ error,
+ loading,
+ onSubmit,
+ amount,
+ setAmount
+ } = useWithdrawRequest()
+
+ const { t } = useTranslation()
+ return (
+
+ {requestSent ? (
+
+
+ {t('requestSent')}
+
+
+
+
+
+ {t('withdrawlRequestSent')}
+
+
+ ) : (
+
+
+
+
+ {/* setAmount(parseFloat(text))}
+ style={[styles.textInput, error && styles.errorInput]}
+ /> */}
+ setAmount(parseFloat(text))}
+ style={[styles.textInput, error && styles.errorInput]}
+ />
+
+ {error || t('enteramount')}
+
+
+
+ {loading ? (
+
+ ) : (
+ onSubmit()}
+ style={styles.btn}
+ activeOpacity={0.7}>
+
+ {t('confirmWithdraw')}
+
+
+ )}
+
+
+
+ )}
+
+ )
+}
+
+export default Withdraw
diff --git a/enatega-multivendor-rider/src/screens/Withdraw/style.js b/enatega-multivendor-rider/src/screens/Withdraw/style.js
new file mode 100644
index 0000000..0004345
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Withdraw/style.js
@@ -0,0 +1,61 @@
+import { Dimensions, StyleSheet } from 'react-native'
+import { alignment } from '../../utilities/alignment'
+import colors from '../../utilities/colors'
+const { width } = Dimensions.get('window')
+
+export default StyleSheet.create({
+ inputView: {
+ ...alignment.Pmedium
+ },
+ textInput: {
+ width: width * 0.8,
+ alignSelf: 'center',
+ padding: 15,
+ backgroundColor: colors.white,
+ borderColor: colors.themeBackground,
+ borderWidth: 1,
+ borderRadius: 10,
+ shadowColor: colors.fontSecondColor,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ },
+ shadowOpacity: 0.25,
+ shadowRadius: 3.84,
+ elevation: 4,
+ ...alignment.MBsmall
+ },
+ errorInput: {
+ borderColor: colors.textErrorColor,
+ borderWidth: 1
+ },
+ btnView: {
+ alignItems: 'center',
+ ...alignment.MTlarge
+ },
+ btn: {
+ width: width * 0.8,
+ borderRadius: 10,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: colors.black,
+ ...alignment.MBmedium,
+ ...alignment.Pmedium,
+ ...alignment.MTlarge
+ },
+ sentView: {
+ ...alignment.Plarge
+ },
+ imageView: {
+ alignItems: 'center',
+ ...alignment.Mlarge
+ },
+ image: {
+ height: 110,
+ width: 140,
+ ...alignment.MBlarge
+ },
+ inputText: {
+ marginLeft: 22
+ }
+})
diff --git a/enatega-multivendor-rider/src/screens/Withdraw/useWithdrawRequest.js b/enatega-multivendor-rider/src/screens/Withdraw/useWithdrawRequest.js
new file mode 100644
index 0000000..650f1a9
--- /dev/null
+++ b/enatega-multivendor-rider/src/screens/Withdraw/useWithdrawRequest.js
@@ -0,0 +1,83 @@
+import { Dimensions } from 'react-native'
+import { useContext, useState, useEffect } from 'react'
+
+import { gql, useMutation } from '@apollo/client'
+import { createWithdrawRequest } from '../../apollo/mutations'
+import UserContext from '../../context/user'
+
+import { FlashMessage } from '../../components/FlashMessage/FlashMessage'
+import { MIN_WITHDRAW_AMOUNT } from '../../utilities/constants'
+
+const WITHDRAW_REQUEST = gql`
+ ${createWithdrawRequest}
+`
+import {useTranslation} from 'react-i18next'
+
+export const useWithdrawRequest = () => {
+ const {t} = useTranslation()
+ const [error, setError] = useState(false)
+ const [amount, setAmount] = useState("")
+ const [requestSent, setRequestSent] = useState(false)
+ const { height } = Dimensions.get('window')
+ const { dataProfile } = useContext(UserContext)
+
+ const [mutate, { loading, error: withdrawRequestError }] = useMutation(
+ WITHDRAW_REQUEST,
+ {
+ onCompleted,
+ onError
+ }
+ )
+ useEffect(() => {
+ if (withdrawRequestError) {
+ setError(withdrawRequestError.message)
+ }
+ }, withdrawRequestError)
+ function validateForm() {
+ let result = true
+ setError('')
+
+ if (!amount) {
+ setError(t('amountReq'))
+ result = false
+ } else if (amount < MIN_WITHDRAW_AMOUNT) {
+ setError(`${t('amountGreater')} ${MIN_WITHDRAW_AMOUNT}!`)
+ result = false
+ } else if (amount > dataProfile.rider.currentWalletAmount) {
+ setError(t('withdrawAmountError'))
+ result = false
+ }
+ return result
+ }
+
+ function onCompleted(data) {
+ setRequestSent(true)
+ }
+
+ function onError(error) {
+ console.log('error onError', error)
+ FlashMessage({
+ message: error.message
+ })
+ }
+
+ function onSubmit() {
+ if (validateForm()) {
+ mutate({
+ variables: {
+ amount: parseFloat(amount)
+ }
+ })
+ }
+ }
+ return {
+ dataProfile,
+ error,
+ amount,
+ setAmount,
+ requestSent,
+ height,
+ loading,
+ onSubmit
+ }
+}
diff --git a/enatega-multivendor-rider/src/utilities/alignment.js b/enatega-multivendor-rider/src/utilities/alignment.js
new file mode 100644
index 0000000..1c2b7a5
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/alignment.js
@@ -0,0 +1,135 @@
+import { scale } from './scaling'
+
+const XSMALL = 5
+const SMALL = 10
+const MEDIUM = 15
+const LARGE = 20
+export const alignment = {
+ MxSmall: {
+ margin: scale(XSMALL)
+ },
+ MBxSmall: {
+ marginBottom: scale(XSMALL)
+ },
+ MTxSmall: {
+ marginTop: scale(XSMALL)
+ },
+ MRxSmall: {
+ marginRight: scale(XSMALL)
+ },
+ MLxSmall: {
+ marginLeft: scale(XSMALL)
+ },
+
+ Msmall: {
+ margin: scale(SMALL)
+ },
+ MBsmall: {
+ marginBottom: scale(SMALL)
+ },
+ MTsmall: {
+ marginTop: scale(SMALL)
+ },
+ MRsmall: {
+ marginRight: scale(SMALL)
+ },
+ MLsmall: {
+ marginLeft: scale(SMALL)
+ },
+
+ Mmedium: {
+ margin: scale(MEDIUM)
+ },
+ MBmedium: {
+ marginBottom: scale(MEDIUM)
+ },
+ MTmedium: {
+ marginTop: scale(MEDIUM)
+ },
+ MRmedium: {
+ marginRight: scale(MEDIUM)
+ },
+ MLmedium: {
+ marginLeft: scale(MEDIUM)
+ },
+ Mlarge: {
+ margin: scale(LARGE)
+ },
+ MBlarge: {
+ marginBottom: scale(LARGE)
+ },
+ MTlarge: {
+ marginTop: scale(LARGE)
+ },
+ MRlarge: {
+ marginRight: scale(LARGE)
+ },
+ MLlarge: {
+ marginLeft: scale(LARGE)
+ },
+
+ // Padding
+ PxSmall: {
+ padding: scale(XSMALL)
+ },
+ PBxSmall: {
+ paddingBottom: scale(XSMALL)
+ },
+ PTxSmall: {
+ paddingTop: scale(XSMALL)
+ },
+ PRxSmall: {
+ paddingRight: scale(XSMALL)
+ },
+ PLxSmall: {
+ paddingLeft: scale(XSMALL)
+ },
+
+ Psmall: {
+ padding: scale(SMALL)
+ },
+ PBsmall: {
+ paddingBottom: scale(SMALL)
+ },
+ PTsmall: {
+ paddingTop: scale(SMALL)
+ },
+ PRsmall: {
+ paddingRight: scale(SMALL)
+ },
+ PLsmall: {
+ paddingLeft: scale(SMALL)
+ },
+
+ Pmedium: {
+ padding: scale(MEDIUM)
+ },
+ PBmedium: {
+ paddingBottom: scale(MEDIUM)
+ },
+ PTmedium: {
+ paddingTop: scale(MEDIUM)
+ },
+ PRmedium: {
+ paddingRight: scale(MEDIUM)
+ },
+ PLmedium: {
+ paddingLeft: scale(MEDIUM)
+ },
+
+ Plarge: {
+ padding: scale(LARGE)
+ },
+ PBlarge: {
+ paddingBottom: scale(LARGE)
+ },
+ PTlarge: {
+ paddingTop: scale(LARGE)
+ },
+ PRlarge: {
+ paddingRight: scale(LARGE)
+ },
+ PLlarge: {
+ paddingLeft: scale(LARGE)
+ }
+}
diff --git a/enatega-multivendor-rider/src/utilities/callNumber.js b/enatega-multivendor-rider/src/utilities/callNumber.js
new file mode 100644
index 0000000..b38cf8b
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/callNumber.js
@@ -0,0 +1,19 @@
+import { Linking, Alert, Platform } from 'react-native'
+
+export const callNumber = phone => {
+ let phoneNumber = phone
+ if (Platform.OS !== 'android') {
+ phoneNumber = `telprompt:${phone}`
+ } else {
+ phoneNumber = `tel:${phone}`
+ }
+ Linking.canOpenURL(phoneNumber)
+ .then(supported => {
+ if (!supported) {
+ Alert.alert('Phone number is not available')
+ } else {
+ return Linking.openURL(phoneNumber)
+ }
+ })
+ .catch(err => console.log(err))
+}
diff --git a/enatega-multivendor-rider/src/utilities/colors.js b/enatega-multivendor-rider/src/utilities/colors.js
new file mode 100644
index 0000000..b501dd7
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/colors.js
@@ -0,0 +1,28 @@
+const colors = {
+ primary: '#90EA93',
+ themeBackground: '#FAFAFA',
+ iconColor: '#333333',
+ tagColor: '#6FCF97',
+ iconPink: '#6FCF97',
+ radioColor: '#FFF',
+ radioOuterColor: '#6FCF97',
+ spinnerColor: '#6FCF97',
+ orderComplete: '#1DB20D',
+ orderUncomplete: '#fe0000',
+ horizontalLine: '#B8B8B8',
+ buttonBackground: '#6FCF97',
+ buttonText: '#FFF',
+ buttonBackgroundPink: '#6FCF97',
+ buttonTextPink: '#FFF',
+ textErrorColor: '#FA7751',
+ headerBackground: '#FFF',
+ headerText: '#2a2a2a',
+ fontMainColor: '#212121',
+ fontSecondColor: '#949393',
+ cartContainer: '#FFF',
+ startColor: '#6FCF97',
+ white: '#FFF',
+ black: '#000'
+}
+
+export default colors
diff --git a/enatega-multivendor-rider/src/utilities/constants.js b/enatega-multivendor-rider/src/utilities/constants.js
new file mode 100644
index 0000000..38c7fc3
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/constants.js
@@ -0,0 +1,2 @@
+export const MAX_TIME = 120
+export const MIN_WITHDRAW_AMOUNT = 10
diff --git a/enatega-multivendor-rider/src/utilities/fontStyles.js b/enatega-multivendor-rider/src/utilities/fontStyles.js
new file mode 100644
index 0000000..2730071
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/fontStyles.js
@@ -0,0 +1,5 @@
+export const fontStyles = {
+ MuseoSans300: 'MuseoSans300',
+ MuseoSans500: 'MuseoSans500',
+ MuseoSans700: 'MuseoSans700'
+}
diff --git a/enatega-multivendor-rider/src/utilities/links.js b/enatega-multivendor-rider/src/utilities/links.js
new file mode 100644
index 0000000..d5ba681
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/links.js
@@ -0,0 +1,12 @@
+import { Platform, Linking } from 'react-native'
+
+export function linkToMapsApp({ latitude, longitude }, label) {
+ const scheme = Platform.select({ ios: 'maps:0,0?q=', android: 'geo:0,0?q=' })
+ const latLng = `${latitude},${longitude}`
+ const url = Platform.select({
+ ios: `${scheme}${label}@${latLng}`,
+ android: `${scheme}${latLng}(${label})`
+ })
+
+ Linking.openURL(url)
+}
diff --git a/enatega-multivendor-rider/src/utilities/location.js b/enatega-multivendor-rider/src/utilities/location.js
new file mode 100644
index 0000000..d928f6e
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/location.js
@@ -0,0 +1,32 @@
+import * as TaskManager from 'expo-task-manager'
+import { clientRef } from '../apollo/index'
+import { updateLocation } from '../apollo/mutations'
+import { gql } from '@apollo/client'
+const UPDATE_LOCATION = gql`
+ ${updateLocation}
+`
+
+TaskManager.defineTask(
+ 'RIDER_LOCATION',
+ async({ data: { locations }, error }) => {
+ try {
+ if (error) {
+ return
+ }
+ if (locations.length > 0) {
+ const {
+ coords: { latitude, longitude }
+ } = locations[locations.length - 1]
+ await clientRef.mutate({
+ mutation: UPDATE_LOCATION,
+ variables: {
+ latitude: latitude.toString(),
+ longitude: longitude.toString()
+ }
+ })
+ }
+ } catch (error) {
+ console.log('error', error)
+ }
+ }
+)
diff --git a/enatega-multivendor-rider/src/utilities/mapStyles.js b/enatega-multivendor-rider/src/utilities/mapStyles.js
new file mode 100644
index 0000000..1e3061b
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/mapStyles.js
@@ -0,0 +1,73 @@
+export const MapStyles = [
+ {
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#ffffff'
+ }
+ ]
+ },
+ {
+ featureType: 'poi.park',
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#90EA93'
+ }
+ ]
+ },
+ {
+ featureType: 'road',
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#b0b0b0'
+ }
+ ]
+ },
+ {
+ featureType: 'road',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#000'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#909090'
+ }
+ ]
+ },
+ {
+ featureType: 'road.highway',
+ elementType: 'geometry.stroke',
+ stylers: [
+ {
+ color: '#707070'
+ }
+ ]
+ },
+ {
+ featureType: 'water',
+ elementType: 'geometry',
+ stylers: [
+ {
+ color: '#6ab8f7'
+ }
+ ]
+ },
+ {
+ featureType: 'water',
+ elementType: 'labels.text.fill',
+ stylers: [
+ {
+ color: '#515c6d'
+ }
+ ]
+ }
+]
diff --git a/enatega-multivendor-rider/src/utilities/scaling.js b/enatega-multivendor-rider/src/utilities/scaling.js
new file mode 100644
index 0000000..26f0f56
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/scaling.js
@@ -0,0 +1,12 @@
+import { Dimensions } from 'react-native'
+
+const { width, height } = Dimensions.get('window')
+// Guideline sizes are based on standard ~5" screen mobile device
+const guidelineBaseWidth = 350
+const guidelineBaseHeight = 680
+const scale = size => (width / guidelineBaseWidth) * size
+const verticalScale = size => (height / guidelineBaseHeight) * size
+const moderateScale = (size, factor = 0.5) =>
+ size + (scale(size) - size) * factor
+
+export { scale, verticalScale, moderateScale }
diff --git a/enatega-multivendor-rider/src/utilities/textStyles.js b/enatega-multivendor-rider/src/utilities/textStyles.js
new file mode 100644
index 0000000..cbaa8db
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/textStyles.js
@@ -0,0 +1,50 @@
+import { scale } from './scaling'
+import { fontStyles } from './fontStyles'
+
+export const textStyles = {
+ XL: {
+ fontSize: scale(55)
+ },
+ H1: {
+ fontSize: scale(35)
+ },
+ H2: {
+ fontSize: scale(24)
+ },
+ H3: {
+ fontSize: scale(20)
+ },
+ H4: {
+ fontSize: scale(16)
+ },
+ H5: {
+ fontSize: scale(14)
+ },
+ Normal: {
+ fontSize: scale(12)
+ },
+ Small: {
+ fontSize: scale(10)
+ },
+ Regular: {
+ fontFamily: fontStyles.MuseoSans300
+ },
+ Bold: {
+ fontFamily: fontStyles.MuseoSans500
+ },
+ Bolder: {
+ fontFamily: fontStyles.MuseoSans700
+ },
+ Center: {
+ textAlign: 'center'
+ },
+ Right: {
+ textAlign: 'right'
+ },
+ UpperCase: {
+ textTransform: 'uppercase'
+ },
+ LineOver: {
+ textDecorationLine: 'line-through'
+ }
+}
diff --git a/enatega-multivendor-rider/src/utilities/utils.js b/enatega-multivendor-rider/src/utilities/utils.js
new file mode 100644
index 0000000..268333c
--- /dev/null
+++ b/enatega-multivendor-rider/src/utilities/utils.js
@@ -0,0 +1,5 @@
+import moment from 'moment'
+import { MAX_TIME } from './constants'
+
+export const getRemainingAcceptingTime = acceptedAt =>
+ moment(acceptedAt).add(MAX_TIME, 'seconds').diff(new Date(), 'seconds')
diff --git a/enatega-multivendor-web/.gitignore b/enatega-multivendor-web/.gitignore
new file mode 100644
index 0000000..34834ac
--- /dev/null
+++ b/enatega-multivendor-web/.gitignore
@@ -0,0 +1,24 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+.history
+
+# 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*
diff --git a/enatega-multivendor-web/README.md b/enatega-multivendor-web/README.md
new file mode 100644
index 0000000..f7a214c
--- /dev/null
+++ b/enatega-multivendor-web/README.md
@@ -0,0 +1 @@
+# This is used for only deployment purposed to see the main code use this link https://github.com/Ninjas-Code-official/Marketplace-Food-Delivery-Solution
diff --git a/enatega-multivendor-web/package-lock.json b/enatega-multivendor-web/package-lock.json
new file mode 100644
index 0000000..3514712
--- /dev/null
+++ b/enatega-multivendor-web/package-lock.json
@@ -0,0 +1,24023 @@
+{
+ "name": "enatega",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "enatega",
+ "version": "0.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "@apollo/client": "^3.3.6",
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.3.0",
+ "@mui/icons-material": "^5.0.1",
+ "@mui/lab": "^5.0.0-alpha.48",
+ "@mui/material": "^5.0.1",
+ "@mui/styles": "^5.0.1",
+ "@react-google-maps/api": "^2.0.2",
+ "@sentry/react": "^6.16.1",
+ "@sentry/tracing": "^6.16.1",
+ "@tawk.to/tawk-messenger-react": "^1.0.0",
+ "@types/react": "^17.0.24",
+ "amplitude-js": "^8.14.1",
+ "autosuggest-highlight": "^3.1.1",
+ "clsx": "^1.1.1",
+ "date-fns": "^2.0.0-beta.5",
+ "env-cmd": "^10.1.0",
+ "firebase": "^9.4.0",
+ "flatlist-react": "^1.5.0",
+ "graphql": "^15.4.0",
+ "i18next": "^23.7.6",
+ "lodash": "^4.17.21",
+ "moment": "^2.29.1",
+ "react": "^17.0.2",
+ "react-calendar": "^3.7.0",
+ "react-dom": "^17.0.2",
+ "react-geocode": "^0.2.2",
+ "react-google-login": "^5.2.2",
+ "react-i18next": "^13.4.1",
+ "react-mentions": "^4.3.1",
+ "react-modal": "^3.16.1",
+ "react-otp-input": "^3.1.1",
+ "react-paypal-button-v2": "^2.6.3",
+ "react-phone-input-2": "^2.15.0",
+ "react-places-autocomplete": "^7.3.0",
+ "react-router-dom": "^6.2.1",
+ "react-scripts": "^4.0.0",
+ "react-scroll": "^1.8.2",
+ "react-scrollspy": "^3.4.3",
+ "react-spinners": "^0.11.0",
+ "react-star-ratings": "^2.3.0",
+ "react-stripe-checkout": "^2.6.3",
+ "source-map-explorer": "^2.5.2",
+ "stripe": "^12.3.0",
+ "subscriptions-transport-ws": "^0.9.19",
+ "uuid": "^8.3.2",
+ "web-vitals": "^0.2.4"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@amplitude/analytics-connector": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-connector/-/analytics-connector-1.5.0.tgz",
+ "integrity": "sha512-T8mOYzB9RRxckzhL0NTHwdge9xuFxXEOplC8B1Y3UX3NHa3BLh7DlBUZlCOwQgMc2nxDfnSweDL5S3bhC+W90g=="
+ },
+ "node_modules/@amplitude/types": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/@amplitude/types/-/types-1.10.2.tgz",
+ "integrity": "sha512-I8qenRI7uU6wKNb9LiZrAosSHVoNHziXouKY81CrqxH9xhVTEIJFXeuCV0hbtBr0Al/8ejnGjQRx+S2SvU/pPg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@amplitude/ua-parser-js": {
+ "version": "0.7.33",
+ "resolved": "https://registry.npmjs.org/@amplitude/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
+ "integrity": "sha512-wKEtVR4vXuPT9cVEIJkYWnlF++Gx3BdLatPBM+SZ1ztVIvnhdGBZR/mn9x/PzyrMcRlZmyi6L56I2J3doVBnjA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@amplitude/utils": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/@amplitude/utils/-/utils-1.10.2.tgz",
+ "integrity": "sha512-tVsHXu61jITEtRjB7NugQ5cVDd4QDzne8T3ifmZye7TiJeUfVRvqe44gDtf55A+7VqhDhyEIIXTA1iVcDGqlEw==",
+ "dependencies": {
+ "@amplitude/types": "^1.10.2",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@apollo/client": {
+ "version": "3.9.5",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.5.tgz",
+ "integrity": "sha512-7y+c8MTPU+hhTwvcGVtMMGIgWduzrvG1mz5yJMRyqYbheBkkky3Lki6ADWVSBXG1lZoOtPYvB2zDgVfKb2HSsw==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@wry/caches": "^1.0.0",
+ "@wry/equality": "^0.5.6",
+ "@wry/trie": "^0.5.0",
+ "graphql-tag": "^2.12.6",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.18.0",
+ "prop-types": "^15.7.2",
+ "rehackt": "0.0.5",
+ "response-iterator": "^0.2.6",
+ "symbol-observable": "^4.0.0",
+ "ts-invariant": "^0.10.3",
+ "tslib": "^2.3.0",
+ "zen-observable-ts": "^1.2.5"
+ },
+ "peerDependencies": {
+ "graphql": "^15.0.0 || ^16.0.0",
+ "graphql-ws": "^5.5.5",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "subscriptions-transport-ws": "^0.9.0 || ^0.11.0"
+ },
+ "peerDependenciesMeta": {
+ "graphql-ws": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "subscriptions-transport-ws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/code-frame/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/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/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dependencies": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.23.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
+ "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dependencies": {
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "dependencies": {
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/highlight/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "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.23.3",
+ "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.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
+ "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz",
+ "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.23.9",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-decorators": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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-optional-chaining": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.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.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz",
+ "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz",
+ "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
+ "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
+ "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "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.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-flow-strip-types": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz",
+ "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-flow": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
+ "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-member-expression-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
+ "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-numeric-separator": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
+ "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.3",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-optional-chaining": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@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-transform-property-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz",
+ "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz",
+ "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz",
+ "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/types": "^7.23.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
+ "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz",
+ "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz",
+ "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz",
+ "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@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-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.9",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.4",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.4",
+ "@babel/plugin-transform-classes": "^7.23.8",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.4",
+ "@babel/plugin-transform-for-of": "^7.23.6",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.4",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.9",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
+ "@babel/plugin-transform-numeric-separator": "^7.23.4",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@babel/plugin-transform-optional-chaining": "^7.23.4",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz",
+ "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-transform-react-display-name": "^7.23.3",
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
+ "@babel/plugin-transform-react-jsx-development": "^7.22.5",
+ "@babel/plugin-transform-react-pure-annotations": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz",
+ "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
+ "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "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/@cnakazawa/watch": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
+ "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
+ "dependencies": {
+ "exec-sh": "^0.3.2",
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "watch": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.1.95"
+ }
+ },
+ "node_modules/@csstools/convert-colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
+ "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/@csstools/normalize.css": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz",
+ "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg=="
+ },
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz",
+ "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.1",
+ "@emotion/memoize": "^0.8.1",
+ "@emotion/serialize": "^1.1.2",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz",
+ "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.1",
+ "@emotion/sheet": "^1.2.2",
+ "@emotion/utils": "^1.2.1",
+ "@emotion/weak-memoize": "^0.3.1",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz",
+ "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ=="
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz",
+ "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.1"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz",
+ "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.11.3",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.3.tgz",
+ "integrity": "sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.11.0",
+ "@emotion/cache": "^11.11.0",
+ "@emotion/serialize": "^1.1.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
+ "@emotion/utils": "^1.2.1",
+ "@emotion/weak-memoize": "^0.3.1",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz",
+ "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==",
+ "dependencies": {
+ "@emotion/hash": "^0.9.1",
+ "@emotion/memoize": "^0.8.1",
+ "@emotion/unitless": "^0.8.1",
+ "@emotion/utils": "^1.2.1",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz",
+ "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA=="
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz",
+ "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.11.0",
+ "@emotion/is-prop-valid": "^1.2.1",
+ "@emotion/serialize": "^1.1.2",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
+ "@emotion/utils": "^1.2.1"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
+ "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz",
+ "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz",
+ "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg=="
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz",
+ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww=="
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@firebase/analytics": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.0.tgz",
+ "integrity": "sha512-Locv8gAqx0e+GX/0SI3dzmBY5e9kjVDtD+3zCFLJ0tH2hJwuCAiL+5WkHuxKj92rqQj/rvkBUCfA1ewlX2hehg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/analytics-compat": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.6.tgz",
+ "integrity": "sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==",
+ "dependencies": {
+ "@firebase/analytics": "0.10.0",
+ "@firebase/analytics-types": "0.8.0",
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/analytics-types": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz",
+ "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw=="
+ },
+ "node_modules/@firebase/app": {
+ "version": "0.9.13",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.13.tgz",
+ "integrity": "sha512-GfiI1JxJ7ecluEmDjPzseRXk/PX31hS7+tjgBopL7XjB2hLUdR+0FTMXy2Q3/hXezypDvU6or7gVFizDESrkXw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "idb": "7.1.1",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/app-check": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.0.tgz",
+ "integrity": "sha512-dRDnhkcaC2FspMiRK/Vbp+PfsOAEP6ZElGm9iGFJ9fDqHoPs0HOPn7dwpJ51lCFi1+2/7n5pRPGhqF/F03I97g==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/app-check-compat": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.7.tgz",
+ "integrity": "sha512-cW682AxsyP1G+Z0/P7pO/WT2CzYlNxoNe5QejVarW2o5ZxeWSSPAiVEwpEpQR/bUlUmdeWThYTMvBWaopdBsqw==",
+ "dependencies": {
+ "@firebase/app-check": "0.8.0",
+ "@firebase/app-check-types": "0.5.0",
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/app-check-interop-types": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.0.tgz",
+ "integrity": "sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg=="
+ },
+ "node_modules/@firebase/app-check-types": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz",
+ "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ=="
+ },
+ "node_modules/@firebase/app-compat": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.13.tgz",
+ "integrity": "sha512-j6ANZaWjeVy5zg6X7uiqh6lM6o3n3LD1+/SJFNs9V781xyryyZWXe+tmnWNWPkP086QfJoNkWN9pMQRqSG4vMg==",
+ "dependencies": {
+ "@firebase/app": "0.9.13",
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/app-types": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz",
+ "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q=="
+ },
+ "node_modules/@firebase/auth": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.23.2.tgz",
+ "integrity": "sha512-dM9iJ0R6tI1JczuGSxXmQbXAgtYie0K4WvKcuyuSTCu9V8eEDiz4tfa1sO3txsfvwg7nOY3AjoCyMYEdqZ8hdg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/auth-compat": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.4.2.tgz",
+ "integrity": "sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==",
+ "dependencies": {
+ "@firebase/auth": "0.23.2",
+ "@firebase/auth-types": "0.12.0",
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/auth-interop-types": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz",
+ "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg=="
+ },
+ "node_modules/@firebase/auth-types": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz",
+ "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x",
+ "@firebase/util": "1.x"
+ }
+ },
+ "node_modules/@firebase/component": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.4.tgz",
+ "integrity": "sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==",
+ "dependencies": {
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/database": {
+ "version": "0.14.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.4.tgz",
+ "integrity": "sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==",
+ "dependencies": {
+ "@firebase/auth-interop-types": "0.2.1",
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "faye-websocket": "0.11.4",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/database-compat": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.4.tgz",
+ "integrity": "sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/database": "0.14.4",
+ "@firebase/database-types": "0.10.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/database-types": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.4.tgz",
+ "integrity": "sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==",
+ "dependencies": {
+ "@firebase/app-types": "0.9.0",
+ "@firebase/util": "1.9.3"
+ }
+ },
+ "node_modules/@firebase/firestore": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.13.0.tgz",
+ "integrity": "sha512-NwcnU+madJXQ4fbLkGx1bWvL612IJN/qO6bZ6dlPmyf7QRyu5azUosijdAN675r+bOOJxMtP1Bv981bHBXAbUg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "@firebase/webchannel-wrapper": "0.10.1",
+ "@grpc/grpc-js": "~1.7.0",
+ "@grpc/proto-loader": "^0.6.13",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/firestore-compat": {
+ "version": "0.3.12",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.12.tgz",
+ "integrity": "sha512-mazuNGAx5Kt9Nph0pm6ULJFp/+j7GSsx+Ncw1GrnKl+ft1CQ4q2LcUssXnjqkX2Ry0fNGqUzC1mfIUrk9bYtjQ==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/firestore": "3.13.0",
+ "@firebase/firestore-types": "2.5.1",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/firestore-types": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz",
+ "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x",
+ "@firebase/util": "1.x"
+ }
+ },
+ "node_modules/@firebase/functions": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.10.0.tgz",
+ "integrity": "sha512-2U+fMNxTYhtwSpkkR6WbBcuNMOVaI7MaH3cZ6UAeNfj7AgEwHwMIFLPpC13YNZhno219F0lfxzTAA0N62ndWzA==",
+ "dependencies": {
+ "@firebase/app-check-interop-types": "0.3.0",
+ "@firebase/auth-interop-types": "0.2.1",
+ "@firebase/component": "0.6.4",
+ "@firebase/messaging-interop-types": "0.2.0",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/functions-compat": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.5.tgz",
+ "integrity": "sha512-uD4jwgwVqdWf6uc3NRKF8cSZ0JwGqSlyhPgackyUPe+GAtnERpS4+Vr66g0b3Gge0ezG4iyHo/EXW/Hjx7QhHw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/functions": "0.10.0",
+ "@firebase/functions-types": "0.6.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/functions-types": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz",
+ "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw=="
+ },
+ "node_modules/@firebase/installations": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.4.tgz",
+ "integrity": "sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "idb": "7.0.1",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/installations-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.4.tgz",
+ "integrity": "sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/installations-types": "0.5.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/installations-types": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz",
+ "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x"
+ }
+ },
+ "node_modules/@firebase/installations/node_modules/idb": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz",
+ "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg=="
+ },
+ "node_modules/@firebase/logger": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz",
+ "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/messaging": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.4.tgz",
+ "integrity": "sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/messaging-interop-types": "0.2.0",
+ "@firebase/util": "1.9.3",
+ "idb": "7.0.1",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/messaging-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.4.tgz",
+ "integrity": "sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/messaging": "0.12.4",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/messaging-interop-types": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz",
+ "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ=="
+ },
+ "node_modules/@firebase/messaging/node_modules/idb": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz",
+ "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg=="
+ },
+ "node_modules/@firebase/performance": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.4.tgz",
+ "integrity": "sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/performance-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.4.tgz",
+ "integrity": "sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/performance": "0.6.4",
+ "@firebase/performance-types": "0.2.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/performance-types": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz",
+ "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA=="
+ },
+ "node_modules/@firebase/remote-config": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.4.tgz",
+ "integrity": "sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/installations": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/remote-config-compat": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.4.tgz",
+ "integrity": "sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/logger": "0.4.0",
+ "@firebase/remote-config": "0.4.4",
+ "@firebase/remote-config-types": "0.3.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/remote-config-types": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz",
+ "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA=="
+ },
+ "node_modules/@firebase/storage": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.2.tgz",
+ "integrity": "sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/util": "1.9.3",
+ "node-fetch": "2.6.7",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
+ }
+ },
+ "node_modules/@firebase/storage-compat": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.2.tgz",
+ "integrity": "sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==",
+ "dependencies": {
+ "@firebase/component": "0.6.4",
+ "@firebase/storage": "0.11.2",
+ "@firebase/storage-types": "0.8.0",
+ "@firebase/util": "1.9.3",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app-compat": "0.x"
+ }
+ },
+ "node_modules/@firebase/storage-types": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz",
+ "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==",
+ "peerDependencies": {
+ "@firebase/app-types": "0.x",
+ "@firebase/util": "1.x"
+ }
+ },
+ "node_modules/@firebase/util": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.3.tgz",
+ "integrity": "sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@firebase/webchannel-wrapper": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.10.1.tgz",
+ "integrity": "sha512-Dq5rYfEpdeel0bLVN+nfD1VWmzCkK+pJbSjIawGE+RY4+NIJqhbUDDQjvV0NUK84fMfwxvtFoCtEe70HfZjFcw=="
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz",
+ "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.1"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz",
+ "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==",
+ "dependencies": {
+ "@floating-ui/core": "^1.0.0",
+ "@floating-ui/utils": "^0.2.0"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz",
+ "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz",
+ "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
+ },
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ },
+ "node_modules/@googlemaps/js-api-loader": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.2.tgz",
+ "integrity": "sha512-psGw5u0QM6humao48Hn4lrChOM2/rA43ZCm3tKK9qQsEj1/VzqkCqnvGfEOshDbBQflydfaRovbKwZMF4AyqbA==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "node_modules/@googlemaps/markerclusterer": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz",
+ "integrity": "sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "supercluster": "^8.0.1"
+ }
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz",
+ "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==",
+ "dependencies": {
+ "@grpc/proto-loader": "^0.7.0",
+ "@types/node": ">=12.12.47"
+ },
+ "engines": {
+ "node": "^8.13.0 || >=10.10.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
+ "version": "0.7.10",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz",
+ "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==",
+ "dependencies": {
+ "lodash.camelcase": "^4.3.0",
+ "long": "^5.0.0",
+ "protobufjs": "^7.2.4",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@grpc/grpc-js/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/@grpc/grpc-js/node_modules/protobufjs": {
+ "version": "7.2.6",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
+ "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
+ "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/@grpc/grpc-js/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@grpc/proto-loader": {
+ "version": "0.6.13",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz",
+ "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==",
+ "dependencies": {
+ "@types/long": "^4.0.1",
+ "lodash.camelcase": "^4.3.0",
+ "long": "^4.0.0",
+ "protobufjs": "^6.11.3",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@hapi/address": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+ "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+ "deprecated": "Moved to 'npm install @sideway/address'"
+ },
+ "node_modules/@hapi/bourne": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained"
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+ "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained"
+ },
+ "node_modules/@hapi/joi": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+ "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+ "deprecated": "Switch to 'npm install joi'",
+ "dependencies": {
+ "@hapi/address": "2.x.x",
+ "@hapi/bourne": "1.x.x",
+ "@hapi/hoek": "8.x.x",
+ "@hapi/topo": "3.x.x"
+ }
+ },
+ "node_modules/@hapi/topo": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+ "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained",
+ "dependencies": {
+ "@hapi/hoek": "^8.3.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "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/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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz",
+ "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz",
+ "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/reporters": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-changed-files": "^26.6.2",
+ "jest-config": "^26.6.3",
+ "jest-haste-map": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-resolve-dependencies": "^26.6.3",
+ "jest-runner": "^26.6.3",
+ "jest-runtime": "^26.6.3",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "jest-watcher": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "p-each-series": "^2.1.0",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz",
+ "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==",
+ "dependencies": {
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz",
+ "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@sinonjs/fake-timers": "^6.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^26.6.2",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz",
+ "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==",
+ "dependencies": {
+ "@jest/environment": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "expect": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz",
+ "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.4",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.3",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "jest-haste-map": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^4.0.1",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "optionalDependencies": {
+ "node-notifier": "^8.0.0"
+ }
+ },
+ "node_modules/@jest/reporters/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/@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/source-map": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz",
+ "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==",
+ "dependencies": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "source-map": "^0.6.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz",
+ "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz",
+ "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==",
+ "dependencies": {
+ "@jest/test-result": "^26.6.2",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^26.6.2",
+ "jest-runner": "^26.6.3",
+ "jest-runtime": "^26.6.3"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz",
+ "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^26.6.2",
+ "babel-plugin-istanbul": "^6.0.0",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-util": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "pirates": "^4.0.1",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "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=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@mui/base": {
+ "version": "5.0.0-beta.36",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.36.tgz",
+ "integrity": "sha512-6A8fYiXgjqTO6pgj31Hc8wm1M3rFYCxDRh09dBVk0L0W4cb2lnurRJa3cAyic6hHY+we1S58OdGYRbKmOsDpGQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@floating-ui/react-dom": "^2.0.8",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "@popperjs/core": "^2.11.8",
+ "clsx": "^2.1.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/base/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/core-downloads-tracker": {
+ "version": "5.15.11",
+ "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz",
+ "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ }
+ },
+ "node_modules/@mui/icons-material": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.10.tgz",
+ "integrity": "sha512-9cF8oUHZKo9oQ7EQ3pxPELaZuZVmphskU4OI6NiJNDVN7zcuvrEsuWjYo1Zh4fLiC39Nrvm30h/B51rcUjvSGA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.0.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/lab": {
+ "version": "5.0.0-alpha.165",
+ "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.165.tgz",
+ "integrity": "sha512-8/zJStT10nh9yrAzLOPTICGhpf5YiGp/JpM0bdTP7u5AE+YT+X2u6QwMxuCrVeW8/WVLAPFg0vtzyfgPcN5T7g==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/base": "5.0.0-beta.36",
+ "@mui/system": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "clsx": "^2.1.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@mui/material": ">=5.15.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/lab/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/material": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.10.tgz",
+ "integrity": "sha512-YJJGHjwDOucecjDEV5l9ISTCo+l9YeWrho623UajzoHRYxuKUmwrGVYOW4PKwGvCx9SU9oklZnbbi2Clc5XZHw==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/base": "5.0.0-beta.36",
+ "@mui/core-downloads-tracker": "^5.15.10",
+ "@mui/system": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "@types/react-transition-group": "^4.4.10",
+ "clsx": "^2.1.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0",
+ "react-transition-group": "^4.4.5"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/material/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/private-theming": {
+ "version": "5.15.11",
+ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz",
+ "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/utils": "^5.15.11",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styled-engine": {
+ "version": "5.15.11",
+ "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz",
+ "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@emotion/cache": "^11.11.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.3.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styles": {
+ "version": "5.15.10",
+ "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.15.10.tgz",
+ "integrity": "sha512-VUl9rCK89lkCZ+ctYv1hSCN9gBke9CfnXF9BtGPkw9jTxPkrW6fQQYep2wcHdzLORE3w96oq9BbSXDqrOnSEPA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@emotion/hash": "^0.9.1",
+ "@mui/private-theming": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "clsx": "^2.1.0",
+ "csstype": "^3.1.3",
+ "hoist-non-react-statics": "^3.3.2",
+ "jss": "^10.10.0",
+ "jss-plugin-camel-case": "^10.10.0",
+ "jss-plugin-default-unit": "^10.10.0",
+ "jss-plugin-global": "^10.10.0",
+ "jss-plugin-nested": "^10.10.0",
+ "jss-plugin-props-sort": "^10.10.0",
+ "jss-plugin-rule-value-function": "^10.10.0",
+ "jss-plugin-vendor-prefixer": "^10.10.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/styles/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/system": {
+ "version": "5.15.9",
+ "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.9.tgz",
+ "integrity": "sha512-SxkaaZ8jsnIJ77bBXttfG//LUf6nTfOcaOuIgItqfHv60ZCQy/Hu7moaob35kBb+guxVJnoSZ+7vQJrA/E7pKg==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@mui/private-theming": "^5.15.9",
+ "@mui/styled-engine": "^5.15.9",
+ "@mui/types": "^7.2.13",
+ "@mui/utils": "^5.15.9",
+ "clsx": "^2.1.0",
+ "csstype": "^3.1.3",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.5.0",
+ "@emotion/styled": "^11.3.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/system/node_modules/clsx": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
+ "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@mui/types": {
+ "version": "7.2.13",
+ "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz",
+ "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==",
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@mui/utils": {
+ "version": "5.15.11",
+ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz",
+ "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@types/prop-types": "^15.7.11",
+ "prop-types": "^15.8.1",
+ "react-is": "^18.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "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/@npmcli/fs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dependencies": {
+ "@gar/promisify": "^1.0.1",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/fs/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/fs/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/@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/move-file/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@popperjs/core": {
+ "version": "2.11.8",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
+ "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/@react-google-maps/api": {
+ "version": "2.19.3",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.19.3.tgz",
+ "integrity": "sha512-jiLqvuOt5lOowkLeq7d077AByTyJp+s6hZVlLhlq7SBacBD37aUNpXBz2OsazfeR6Aw4a+9RRhAEjEFvrR1f5A==",
+ "dependencies": {
+ "@googlemaps/js-api-loader": "1.16.2",
+ "@googlemaps/markerclusterer": "2.5.3",
+ "@react-google-maps/infobox": "2.19.2",
+ "@react-google-maps/marker-clusterer": "2.19.2",
+ "@types/google.maps": "3.55.2",
+ "invariant": "2.2.4"
+ },
+ "peerDependencies": {
+ "react": "^16.8 || ^17 || ^18",
+ "react-dom": "^16.8 || ^17 || ^18"
+ }
+ },
+ "node_modules/@react-google-maps/infobox": {
+ "version": "2.19.2",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.19.2.tgz",
+ "integrity": "sha512-6wvBqeJsQ/eFSvoxg+9VoncQvNoVCdmxzxRpLvmjPD+nNC6mHM0vJH1xSqaKijkMrfLJT0nfkTGpovrF896jwg=="
+ },
+ "node_modules/@react-google-maps/marker-clusterer": {
+ "version": "2.19.2",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz",
+ "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw=="
+ },
+ "node_modules/@remix-run/router": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz",
+ "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@rollup/plugin-node-resolve": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
+ "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==",
+ "dependencies": {
+ "@rollup/pluginutils": "^3.0.8",
+ "@types/resolve": "0.0.8",
+ "builtin-modules": "^3.1.0",
+ "is-module": "^1.0.0",
+ "resolve": "^1.14.2"
+ },
+ "engines": {
+ "node": ">= 8.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/@sentry/browser": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.7.tgz",
+ "integrity": "sha512-oDbklp4O3MtAM4mtuwyZLrgO1qDVYIujzNJQzXmi9YzymJCuzMLSRDvhY83NNDCRxf0pds4DShgYeZdbSyKraA==",
+ "dependencies": {
+ "@sentry/core": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/browser/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/@sentry/core": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz",
+ "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==",
+ "dependencies": {
+ "@sentry/hub": "6.19.7",
+ "@sentry/minimal": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/core/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/@sentry/hub": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz",
+ "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==",
+ "dependencies": {
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/hub/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/@sentry/minimal": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz",
+ "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==",
+ "dependencies": {
+ "@sentry/hub": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/minimal/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/@sentry/react": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.19.7.tgz",
+ "integrity": "sha512-VzJeBg/v41jfxUYPkH2WYrKjWc4YiMLzDX0f4Zf6WkJ4v3IlDDSkX6DfmWekjTKBho6wiMkSNy2hJ1dHfGZ9jA==",
+ "dependencies": {
+ "@sentry/browser": "6.19.7",
+ "@sentry/minimal": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "hoist-non-react-statics": "^3.3.2",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "react": "15.x || 16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/@sentry/react/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/@sentry/tracing": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.19.7.tgz",
+ "integrity": "sha512-ol4TupNnv9Zd+bZei7B6Ygnr9N3Gp1PUrNI761QSlHtPC25xXC5ssSD3GMhBgyQrcvpuRcCFHVNNM97tN5cZiA==",
+ "dependencies": {
+ "@sentry/hub": "6.19.7",
+ "@sentry/minimal": "6.19.7",
+ "@sentry/types": "6.19.7",
+ "@sentry/utils": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/tracing/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/@sentry/types": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz",
+ "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "6.19.7",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz",
+ "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==",
+ "dependencies": {
+ "@sentry/types": "6.19.7",
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sentry/utils/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/@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz",
+ "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "node_modules/@surma/rollup-plugin-off-main-thread": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz",
+ "integrity": "sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==",
+ "dependencies": {
+ "ejs": "^2.6.1",
+ "magic-string": "^0.25.0"
+ }
+ },
+ "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/ejs": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+ "hasInstallScript": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/@tawk.to/tawk-messenger-react": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@tawk.to/tawk-messenger-react/-/tawk-messenger-react-1.0.0.tgz",
+ "integrity": "sha512-4jGmgz47bcbEIdX3Qvi8Uj7//vroIBX1AKFpnTg9urgCejPShprlGPrGkSj0uWjfNTMD6S0Sh+JP0CkopSyXDw==",
+ "dependencies": {
+ "ansi-styles": "^4.3.0",
+ "aria-query": "^5.0.0",
+ "babel-plugin-macros": "^3.1.0",
+ "babel-plugin-named-asset-import": "^0.3.8",
+ "babel-preset-react-app": "^10.0.1",
+ "bindings": "^1.5.0",
+ "body-parser": "^1.19.1",
+ "browserslist": "^4.19.1",
+ "camelcase": "^6.3.0",
+ "caniuse-lite": "^1.0.30001296",
+ "chalk": "^4.1.2",
+ "color-convert": "^2.0.1",
+ "color-name": "^1.1.4",
+ "color-string": "^1.9.0",
+ "confusing-browser-globals": "^1.0.11",
+ "content-disposition": "^0.5.4",
+ "cookie": "^0.4.1",
+ "core-js": "^3.20.2",
+ "core-js-compat": "^3.20.2",
+ "core-js-pure": "^3.20.2",
+ "cross-spawn": "^7.0.3",
+ "css": "^3.0.0",
+ "css-select": "^4.2.1",
+ "css-what": "^5.1.0",
+ "debug": "^4.3.3",
+ "diff-sequences": "^27.4.0",
+ "dom-serializer": "^1.3.2",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.3.0",
+ "domutils": "^2.8.0",
+ "electron-to-chromium": "^1.4.35",
+ "emoji-regex": "^9.2.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-module-utils": "^2.7.2",
+ "eslint-plugin-import": "^2.25.4",
+ "estraverse": "^5.3.0",
+ "execa": "^4.1.0",
+ "express": "^4.17.2",
+ "file-uri-to-path": "^1.0.0",
+ "follow-redirects": "^1.14.6",
+ "get-stream": "^5.2.0",
+ "graceful-fs": "^4.2.9",
+ "has-flag": "^4.0.0",
+ "http-errors": "^1.8.1",
+ "http-parser-js": "^0.5.5",
+ "ignore": "^5.2.0",
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "is-descriptor": "^1.0.2",
+ "is-extendable": "^1.0.1",
+ "is-negative-zero": "^2.0.2",
+ "is-obj": "^1.0.1",
+ "is-stream": "^2.0.1",
+ "is-weakref": "^1.0.2",
+ "istanbul-reports": "^3.1.3",
+ "jest-cli": "^26.6.3",
+ "jest-diff": "^27.4.6",
+ "jest-get-type": "^27.4.0",
+ "jest-worker": "^27.4.6",
+ "minipass": "^3.1.6",
+ "nan": "^2.15.0",
+ "npm-run-path": "^4.0.1",
+ "nth-check": "^2.0.1",
+ "object-inspect": "^1.12.0",
+ "path-key": "^3.1.1",
+ "picomatch": "^2.3.1",
+ "pirates": "^4.0.4",
+ "postcss-selector-parser": "^6.0.8",
+ "postcss-value-parser": "^4.2.0",
+ "pretty-format": "^27.4.6",
+ "prop-types": "^15.8.1",
+ "qs": "^6.9.6",
+ "raw-body": "^2.4.2",
+ "react": "^17.0.2",
+ "react-error-overlay": "^6.0.10",
+ "react-is": "^17.0.2",
+ "resolve-from": "^5.0.0",
+ "send": "^0.17.2",
+ "serve-static": "^1.14.2",
+ "setprototypeof": "^1.2.0",
+ "shebang-command": "^2.0.0",
+ "shebang-regex": "^3.0.0",
+ "sockjs": "^0.3.24",
+ "source-map": "^0.6.1",
+ "source-map-js": "^1.0.1",
+ "source-map-resolve": "^0.6.0",
+ "string_decoder": "^1.3.0",
+ "strip-bom": "^4.0.0",
+ "supports-color": "^7.2.0",
+ "supports-preserve-symlinks-flag": "^1.0.0",
+ "table": "^6.7.5",
+ "toidentifier": "^1.0.1",
+ "tslib": "^2.3.1",
+ "type-fest": "^0.21.3",
+ "typescript": "^4.5.4",
+ "url-parse": "^1.5.4",
+ "util.promisify": "^1.0.0",
+ "which": "^2.0.2"
+ },
+ "peerDependencies": {
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
+ "react-scripts": "4.0.3"
+ }
+ },
+ "node_modules/@tawk.to/tawk-messenger-react/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/@tawk.to/tawk-messenger-react/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/@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/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "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/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ },
+ "node_modules/@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/google.maps": {
+ "version": "3.55.2",
+ "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.2.tgz",
+ "integrity": "sha512-JcTwzkxskR8DN/nnX96Pie3gGN3WHiPpuxzuQ9z3516o1bB243d8w8DHUJ8BohuzoT1o3HUFta2ns/mkZC8KRw=="
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/html-minifier-terser": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz",
+ "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w=="
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
+ "node_modules/@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
+ },
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.20",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
+ "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+ },
+ "node_modules/@types/q": {
+ "version": "1.5.8",
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
+ "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
+ },
+ "node_modules/@types/react": {
+ "version": "17.0.75",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.75.tgz",
+ "integrity": "sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
+ "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/resolve": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
+ "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
+ },
+ "node_modules/@types/source-list-map": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
+ "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g=="
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+ },
+ "node_modules/@types/tapable": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
+ "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q=="
+ },
+ "node_modules/@types/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==",
+ "dependencies": {
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@types/uglify-js/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/@types/webpack": {
+ "version": "4.41.38",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz",
+ "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tapable": "^1",
+ "@types/uglify-js": "*",
+ "@types/webpack-sources": "*",
+ "anymatch": "^3.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/@types/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.7.3"
+ }
+ },
+ "node_modules/@types/webpack-sources/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@types/webpack/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/@types/yargs": {
+ "version": "15.0.19",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
+ "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz",
+ "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==",
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "4.33.0",
+ "@typescript-eslint/scope-manager": "4.33.0",
+ "debug": "^4.3.1",
+ "functional-red-black-tree": "^1.0.1",
+ "ignore": "^5.1.8",
+ "regexpp": "^3.1.0",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^4.0.0",
+ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/experimental-utils": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
+ "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.7",
+ "@typescript-eslint/scope-manager": "4.33.0",
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/typescript-estree": "4.33.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz",
+ "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "4.33.0",
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/typescript-estree": "4.33.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz",
+ "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==",
+ "dependencies": {
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/visitor-keys": "4.33.0"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz",
+ "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==",
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz",
+ "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==",
+ "dependencies": {
+ "@typescript-eslint/types": "4.33.0",
+ "@typescript-eslint/visitor-keys": "4.33.0",
+ "debug": "^4.3.1",
+ "globby": "^11.0.3",
+ "is-glob": "^4.0.1",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/visitor-keys": {
+ "version": "4.33.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz",
+ "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==",
+ "dependencies": {
+ "@typescript-eslint/types": "4.33.0",
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+ "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+ "dependencies": {
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA=="
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+ "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw=="
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+ "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA=="
+ },
+ "node_modules/@webassemblyjs/helper-code-frame": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "dependencies": {
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-fsm": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+ "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw=="
+ },
+ "node_modules/@webassemblyjs/helper-module-context": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+ "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw=="
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+ "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+ "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+ "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+ "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w=="
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+ "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+ "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+ "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+ "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+ "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+ "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@wojtekmaj/date-utils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz",
+ "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/date-utils?sponsor=1"
+ }
+ },
+ "node_modules/@wry/caches": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz",
+ "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/context": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz",
+ "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/equality": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz",
+ "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/trie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz",
+ "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
+ "deprecated": "Use your platform's native atob() and btoa() methods instead"
+ },
+ "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.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "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-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-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": "3.0.0",
+ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz",
+ "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==",
+ "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": "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/ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "peerDependencies": {
+ "ajv": ">=5.0.0"
+ }
+ },
+ "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/alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ=="
+ },
+ "node_modules/amplitude-js": {
+ "version": "8.21.9",
+ "resolved": "https://registry.npmjs.org/amplitude-js/-/amplitude-js-8.21.9.tgz",
+ "integrity": "sha512-d0jJH00wbXu7sxKtVwkdSXtVffjqdUrxuACKlnzP7jU5qt9wriXXMgHifdH5Oq+buKmyF8wKL9S02gAykysURA==",
+ "dependencies": {
+ "@amplitude/analytics-connector": "^1.4.6",
+ "@amplitude/ua-parser-js": "0.7.33",
+ "@amplitude/utils": "^1.10.2",
+ "@babel/runtime": "^7.21.0",
+ "blueimp-md5": "^2.19.0",
+ "query-string": "8.1.0"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==",
+ "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": "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/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "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": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/arity-n": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz",
+ "integrity": "sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ=="
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.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-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array.prototype.filter": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
+ "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
+ "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.reduce": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz",
+ "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
+ "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.1.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/assert": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz",
+ "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==",
+ "dependencies": {
+ "object.assign": "^4.1.4",
+ "util": "^0.10.4"
+ }
+ },
+ "node_modules/assert/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/assert/node_modules/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ast-types-flow": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
+ },
+ "node_modules/async-each": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz",
+ "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "node_modules/asynciterator.prototype": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
+ "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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/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==",
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dependencies": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ },
+ "node_modules/autosuggest-highlight": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/autosuggest-highlight/-/autosuggest-highlight-3.3.4.tgz",
+ "integrity": "sha512-j6RETBD2xYnrVcoV1S5R4t3WxOlWZKyDQjkwnggDPSjF5L4jV98ZltBpvPvbkM1HtoSe5o+bNrTHyjPbieGeYA==",
+ "dependencies": {
+ "remove-accents": "^0.4.2"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/axe-core": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz",
+ "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axobject-query": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
+ "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": ">= 4.12.1"
+ }
+ },
+ "node_modules/babel-eslint/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/babel-extract-comments": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz",
+ "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==",
+ "dependencies": {
+ "babylon": "^6.18.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz",
+ "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==",
+ "dependencies": {
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/babel__core": "^7.1.7",
+ "babel-plugin-istanbul": "^6.0.0",
+ "babel-preset-jest": "^26.6.2",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-loader": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+ "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
+ "dependencies": {
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "mkdirp": "^0.5.3",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
+ },
+ "engines": {
+ "node": ">= 6.9"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "webpack": ">=2"
+ }
+ },
+ "node_modules/babel-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/babel-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.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-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "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/babel-plugin-jest-hoist": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz",
+ "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==",
+ "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.14.2"
+ }
+ },
+ "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.4.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
+ "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-syntax-object-rest-spread": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+ "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w=="
+ },
+ "node_modules/babel-plugin-transform-object-rest-spread": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA==",
+ "dependencies": {
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+ "babel-runtime": "^6.26.0"
+ }
+ },
+ "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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz",
+ "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^26.6.2",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "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/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-runtime/node_modules/core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "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
+ },
+ "node_modules/babel-runtime/node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ },
+ "node_modules/babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
+ },
+ "node_modules/backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
+ },
+ "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/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
+ },
+ "node_modules/bfj": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz",
+ "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==",
+ "dependencies": {
+ "bluebird": "^3.7.2",
+ "check-types": "^11.2.3",
+ "hoopy": "^0.1.4",
+ "jsonpath": "^1.1.1",
+ "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==",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "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/blueimp-md5": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
+ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "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.2",
+ "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/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/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/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/body-parser/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/bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==",
+ "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/bonjour/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/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "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/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+ },
+ "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/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dependencies": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz",
+ "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "browserify-rsa": "^4.1.0",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.4",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.6",
+ "readable-stream": "^3.6.2",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/browserify-sign/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "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/btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
+ "bin": {
+ "btoa": "bin/btoa.js"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.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/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
+ },
+ "node_modules/buffer/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ=="
+ },
+ "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/cacache": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dependencies": {
+ "@npmcli/fs": "^1.0.0",
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cacache/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/cacache/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cacache/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/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-callsite/node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/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.30001589",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
+ "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/capture-exit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
+ "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
+ "dependencies": {
+ "rsvp": "^4.8.4"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/case-sensitive-paths-webpack-plugin": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
+ "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/check-types": {
+ "version": "11.2.3",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz",
+ "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg=="
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "optional": true,
+ "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"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz",
+ "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw=="
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/classnames": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
+ },
+ "node_modules/clean-css": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
+ "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 4.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/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "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/coa/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/coa/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/coa/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/coa/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/coa/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/coa/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/coa/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/collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "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/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/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color/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/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "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": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/compose-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
+ "integrity": "sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg==",
+ "dependencies": {
+ "arity-n": "^1.0.4"
+ }
+ },
+ "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/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/compression/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/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "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/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ=="
+ },
+ "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-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ },
+ "node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "node_modules/copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "node_modules/copy-concurrently/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz",
+ "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==",
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
+ "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==",
+ "dependencies": {
+ "browserslist": "^4.22.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz",
+ "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==",
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "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/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "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-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dependencies": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
+ "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.6.0"
+ }
+ },
+ "node_modules/css-blank-pseudo": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz",
+ "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "bin": {
+ "css-blank-pseudo": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "dependencies": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ },
+ "engines": {
+ "node": ">4"
+ }
+ },
+ "node_modules/css-has-pseudo": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz",
+ "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==",
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^5.0.0-rc.4"
+ },
+ "bin": {
+ "css-has-pseudo": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-loader": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz",
+ "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==",
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "cssesc": "^3.0.0",
+ "icss-utils": "^4.1.1",
+ "loader-utils": "^2.0.0",
+ "postcss": "^7.0.32",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^3.0.3",
+ "postcss-modules-scope": "^2.2.0",
+ "postcss-modules-values": "^3.0.0",
+ "postcss-value-parser": "^4.1.0",
+ "schema-utils": "^2.7.1",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.27.0 || ^5.0.0"
+ }
+ },
+ "node_modules/css-loader/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/css-loader/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/css-loader/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/css-prefers-color-scheme": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz",
+ "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "bin": {
+ "css-prefers-color-scheme": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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/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-select/node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "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-vendor": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
+ "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.3",
+ "is-in-browser": "^1.0.2"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cssdb": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz",
+ "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ=="
+ },
+ "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": "4.1.11",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
+ "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.8",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
+ "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
+ "dependencies": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.3",
+ "postcss-unique-selectors": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/cyclist": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz",
+ "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA=="
+ },
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "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/date-fns": {
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+ "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
+ },
+ "engines": {
+ "node": ">=0.11"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/date-fns"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz",
+ "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==",
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+ },
+ "node_modules/deep-equal": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
+ "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==",
+ "dependencies": {
+ "is-arguments": "^1.1.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.5.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dependencies": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/default-gateway/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/default-gateway/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/default-gateway/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/default-gateway/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/default-gateway/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/default-gateway/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway/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/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/del/node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
+ "dependencies": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/globby/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/del/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "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/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/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
+ "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "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/dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
+ },
+ "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": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==",
+ "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-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-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "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/domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.2"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domexception": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "deprecated": "Use your platform's native DOMException instead",
+ "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/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/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-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dot-prop/node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dependencies": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "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.9",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+ "dependencies": {
+ "jake": "^10.8.5"
+ },
+ "bin": {
+ "ejs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.680",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz",
+ "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A=="
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/emittery": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz",
+ "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==",
+ "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/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/enhanced-resolve/node_modules/memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "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/env-cmd": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz",
+ "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==",
+ "dependencies": {
+ "commander": "^4.0.0",
+ "cross-spawn": "^7.0.0"
+ },
+ "bin": {
+ "env-cmd": "bin/env-cmd.js"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.22.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
+ "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.1",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.0",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.1",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz",
+ "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==",
+ "dependencies": {
+ "asynciterator.prototype": "^1.0.0",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.4",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.2",
+ "safe-array-concat": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "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/es5-ext": {
+ "version": "0.10.62",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "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/eslint": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dependencies": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-react-app": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz",
+ "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==",
+ "dependencies": {
+ "confusing-browser-globals": "^1.0.10"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^4.0.0",
+ "@typescript-eslint/parser": "^4.0.0",
+ "babel-eslint": "^10.0.0",
+ "eslint": "^7.5.0",
+ "eslint-plugin-flowtype": "^5.2.0",
+ "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-jest": "^24.0.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-react": "^7.20.3",
+ "eslint-plugin-react-hooks": "^4.0.8",
+ "eslint-plugin-testing-library": "^3.9.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-jest": {
+ "optional": true
+ },
+ "eslint-plugin-testing-library": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "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.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "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-plugin-flowtype": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz",
+ "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==",
+ "dependencies": {
+ "lodash": "^4.17.15",
+ "string-natural-compare": "^3.0.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.1.0"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+ "dependencies": {
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/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-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-jest": {
+ "version": "24.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz",
+ "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==",
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": ">= 4",
+ "eslint": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz",
+ "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.2",
+ "aria-query": "^5.3.0",
+ "array-includes": "^3.1.7",
+ "array.prototype.flatmap": "^1.3.2",
+ "ast-types-flow": "^0.0.8",
+ "axe-core": "=4.7.0",
+ "axobject-query": "^3.2.1",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "es-iterator-helpers": "^1.0.15",
+ "hasown": "^2.0.0",
+ "jsx-ast-utils": "^3.3.5",
+ "language-tags": "^1.0.9",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.7",
+ "object.fromentries": "^2.0.7"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.33.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
+ "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.12",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "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.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dependencies": {
+ "is-core-module": "^2.13.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/eslint-plugin-testing-library": {
+ "version": "3.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz",
+ "integrity": "sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA==",
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "^3.10.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0",
+ "npm": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": "^5 || ^6 || ^7"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/experimental-utils": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz",
+ "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/types": "3.10.1",
+ "@typescript-eslint/typescript-estree": "3.10.1",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/types": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz",
+ "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==",
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz",
+ "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==",
+ "dependencies": {
+ "@typescript-eslint/types": "3.10.1",
+ "@typescript-eslint/visitor-keys": "3.10.1",
+ "debug": "^4.1.1",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.3.2",
+ "tsutils": "^3.17.1"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz",
+ "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/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/eslint-plugin-testing-library/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-testing-library/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/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/eslint-scope/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/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-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-webpack-plugin": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.7.0.tgz",
+ "integrity": "sha512-bNaVVUvU4srexGhVcayn/F4pJAz19CWBkKoMx7aSQ4wtTbZQCnG5O9LHCE42mM+JSKOUp7n6vd5CIwzj7lOVGA==",
+ "dependencies": {
+ "@types/eslint": "^7.29.0",
+ "arrify": "^2.0.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0",
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/eslint-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/eslint/node_modules/@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/eslint/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/eslint/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint/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/eslint/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/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dependencies": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/espree/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/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "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": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "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/eventsource": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
+ "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/exec-sh": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz",
+ "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w=="
+ },
+ "node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/exenv": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
+ "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw=="
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/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/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/expect": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz",
+ "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-styles": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "jest-matcher-utils": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-regex-util": "^26.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/expect/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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/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/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/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/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/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/express/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/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/express/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/express/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/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
+ "node_modules/ext/node_modules/type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ },
+ "node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "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=="
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "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=="
+ },
+ "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=="
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/figgy-pudding": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
+ "deprecated": "This module is no longer supported."
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz",
+ "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==",
+ "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/file-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "node_modules/filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "dependencies": {
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/filesize": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz",
+ "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==",
+ "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/filter-obj": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz",
+ "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/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/find-cache-dir/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/find-cache-dir/node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/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/find-cache-dir/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ },
+ "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/firebase": {
+ "version": "9.23.0",
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.23.0.tgz",
+ "integrity": "sha512-/4lUVY0lUvBDIaeY1q6dUYhS8Sd18Qb9CgWkPZICUo9IXpJNCEagfNZXBBFCkMTTN5L5gx2Hjr27y21a9NzUcA==",
+ "dependencies": {
+ "@firebase/analytics": "0.10.0",
+ "@firebase/analytics-compat": "0.2.6",
+ "@firebase/app": "0.9.13",
+ "@firebase/app-check": "0.8.0",
+ "@firebase/app-check-compat": "0.3.7",
+ "@firebase/app-compat": "0.2.13",
+ "@firebase/app-types": "0.9.0",
+ "@firebase/auth": "0.23.2",
+ "@firebase/auth-compat": "0.4.2",
+ "@firebase/database": "0.14.4",
+ "@firebase/database-compat": "0.3.4",
+ "@firebase/firestore": "3.13.0",
+ "@firebase/firestore-compat": "0.3.12",
+ "@firebase/functions": "0.10.0",
+ "@firebase/functions-compat": "0.3.5",
+ "@firebase/installations": "0.6.4",
+ "@firebase/installations-compat": "0.2.4",
+ "@firebase/messaging": "0.12.4",
+ "@firebase/messaging-compat": "0.2.4",
+ "@firebase/performance": "0.6.4",
+ "@firebase/performance-compat": "0.2.4",
+ "@firebase/remote-config": "0.4.4",
+ "@firebase/remote-config-compat": "0.2.4",
+ "@firebase/storage": "0.11.2",
+ "@firebase/storage-compat": "0.3.2",
+ "@firebase/util": "1.9.3"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatlist-react": {
+ "version": "1.5.14",
+ "resolved": "https://registry.npmjs.org/flatlist-react/-/flatlist-react-1.5.14.tgz",
+ "integrity": "sha512-TxwnFJk06Ic637L6GexiFFJrqxcBxZL5nnZTI/yDZZ5mYN6ysLiiz9Lz6ksEmF8e63DuDrR5l/cGrz/JuUh/MA==",
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
+ },
+ "node_modules/flatten": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
+ "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==",
+ "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash."
+ },
+ "node_modules/flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.5",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
+ "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz",
+ "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==",
+ "dependencies": {
+ "@babel/code-frame": "^7.5.5",
+ "chalk": "^2.4.1",
+ "micromatch": "^3.1.10",
+ "minimatch": "^3.0.4",
+ "semver": "^5.6.0",
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6.11.5",
+ "yarn": ">=1.0.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/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/fork-ts-checker-webpack-plugin/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "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/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "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=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "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/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-user-locale": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-1.5.1.tgz",
+ "integrity": "sha512-WiNpoFRcHn1qxP9VabQljzGwkAQDrcpqUtaP0rNBEkFxJdh4f3tik6MfZsMYZc+UgQJdGCxWEjL9wnCUlRQXag==",
+ "dependencies": {
+ "lodash.memoize": "^4.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "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==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "node_modules/graphql": {
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
+ "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/graphql-tag": {
+ "version": "2.12.6",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
+ "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
+ "optional": true
+ },
+ "node_modules/gzip-size": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
+ "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+ "dependencies": {
+ "duplexer": "^0.1.1",
+ "pify": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash-base/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
+ "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "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/hoist-non-react-statics/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/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/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
+ "node_modules/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A=="
+ },
+ "node_modules/hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA=="
+ },
+ "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": "1.4.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
+ "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA=="
+ },
+ "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": "5.1.1",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
+ "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==",
+ "dependencies": {
+ "camel-case": "^4.1.1",
+ "clean-css": "^4.2.3",
+ "commander": "^4.1.1",
+ "he": "^1.2.0",
+ "param-case": "^3.0.3",
+ "relateurl": "^0.2.7",
+ "terser": "^4.6.3"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "dependencies": {
+ "void-elements": "3.1.0"
+ }
+ },
+ "node_modules/html-webpack-plugin": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz",
+ "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==",
+ "dependencies": {
+ "@types/html-minifier-terser": "^5.0.0",
+ "@types/tapable": "^1.0.5",
+ "@types/webpack": "^4.41.8",
+ "html-minifier-terser": "^5.0.1",
+ "loader-utils": "^1.2.3",
+ "lodash": "^4.17.15",
+ "pretty-error": "^2.1.1",
+ "tapable": "^1.1.3",
+ "util.promisify": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dependencies": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "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/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
+ },
+ "node_modules/http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-errors/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-errors/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+ },
+ "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": "0.19.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+ "dependencies": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/http-proxy/node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg=="
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/hyphenate-style-name": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ },
+ "node_modules/i18next": {
+ "version": "23.10.0",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.10.0.tgz",
+ "integrity": "sha512-/TgHOqsa7/9abUKJjdPeydoyDc0oTi/7u9F8lMSj6ufg4cbC1Oj3f/Jja7zj7WRIhEQKB7Q4eN6y68I9RDxxGQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
+ "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": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "dependencies": {
+ "postcss": "^7.0.14"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/idb": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
+ "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="
+ },
+ "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": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==",
+ "dependencies": {
+ "harmony-reflect": "^1.4.6"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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/iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA=="
+ },
+ "node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/immer": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz",
+ "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
+ "node_modules/import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==",
+ "dependencies": {
+ "import-from": "^2.1.0"
+ },
+ "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==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-fresh/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/import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==",
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-from/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "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/indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA=="
+ },
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ },
+ "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==",
+ "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-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dependencies": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ=="
+ },
+ "node_modules/ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
+ "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.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-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "optional": true,
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==",
+ "dependencies": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
+ "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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-descriptor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
+ "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-in-browser": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
+ "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g=="
+ },
+ "node_modules/is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "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.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "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": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "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-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "dependencies": {
+ "is-path-inside": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+ "dependencies": {
+ "path-is-inside": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
+ },
+ "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-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "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": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
+ "dependencies": {
+ "@babel/core": "^7.7.5",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+ "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "node_modules/jake": {
+ "version": "10.8.7",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+ "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+ "dependencies": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.4",
+ "minimatch": "^3.1.2"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest": {
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz",
+ "integrity": "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA==",
+ "dependencies": {
+ "@jest/core": "^26.6.0",
+ "import-local": "^3.0.2",
+ "jest-cli": "^26.6.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz",
+ "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "execa": "^4.0.0",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-26.6.0.tgz",
+ "integrity": "sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng==",
+ "dependencies": {
+ "@babel/traverse": "^7.1.0",
+ "@jest/environment": "^26.6.0",
+ "@jest/test-result": "^26.6.0",
+ "@jest/types": "^26.6.0",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "expect": "^26.6.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^26.6.0",
+ "jest-matcher-utils": "^26.6.0",
+ "jest-message-util": "^26.6.0",
+ "jest-runner": "^26.6.0",
+ "jest-runtime": "^26.6.0",
+ "jest-snapshot": "^26.6.0",
+ "jest-util": "^26.6.0",
+ "pretty-format": "^26.6.0",
+ "stack-utils": "^2.0.2",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-circus/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-circus/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/jest-cli": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz",
+ "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==",
+ "dependencies": {
+ "@jest/core": "^26.6.3",
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "import-local": "^3.0.2",
+ "is-ci": "^2.0.0",
+ "jest-config": "^26.6.3",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "prompts": "^2.0.1",
+ "yargs": "^15.4.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/jest-cli/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz",
+ "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/test-sequencer": "^26.6.3",
+ "@jest/types": "^26.6.2",
+ "babel-jest": "^26.6.3",
+ "chalk": "^4.0.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.2.4",
+ "jest-environment-jsdom": "^26.6.2",
+ "jest-environment-node": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "jest-jasmine2": "^26.6.3",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "peerDependencies": {
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-config/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-config/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/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-docblock": {
+ "version": "26.0.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz",
+ "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==",
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz",
+ "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "jest-util": "^26.6.2",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-each/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-each/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-each/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/jest-environment-jsdom": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz",
+ "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==",
+ "dependencies": {
+ "@jest/environment": "^26.6.2",
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jsdom": "^16.4.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz",
+ "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==",
+ "dependencies": {
+ "@jest/environment": "^26.6.2",
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "jest-mock": "^26.6.2",
+ "jest-util": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz",
+ "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-regex-util": "^26.0.0",
+ "jest-serializer": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.1.2"
+ }
+ },
+ "node_modules/jest-haste-map/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/jest-jasmine2": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz",
+ "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==",
+ "dependencies": {
+ "@babel/traverse": "^7.1.0",
+ "@jest/environment": "^26.6.2",
+ "@jest/source-map": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "expect": "^26.6.2",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^26.6.2",
+ "jest-matcher-utils": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-runtime": "^26.6.3",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "pretty-format": "^26.6.2",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-leak-detector": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz",
+ "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==",
+ "dependencies": {
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-leak-detector/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-leak-detector/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-leak-detector/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/jest-matcher-utils": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz",
+ "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/diff-sequences": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz",
+ "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/jest-diff": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz",
+ "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-matcher-utils/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/jest-message-util": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz",
+ "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^26.6.2",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "pretty-format": "^26.6.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-message-util/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-message-util/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/jest-mock": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz",
+ "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "26.0.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz",
+ "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz",
+ "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^26.6.2",
+ "read-pkg-up": "^7.0.1",
+ "resolve": "^1.18.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz",
+ "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-snapshot": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz",
+ "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/environment": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.7.1",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^26.6.3",
+ "jest-docblock": "^26.0.0",
+ "jest-haste-map": "^26.6.2",
+ "jest-leak-detector": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "jest-runtime": "^26.6.3",
+ "jest-util": "^26.6.2",
+ "jest-worker": "^26.6.2",
+ "source-map-support": "^0.5.6",
+ "throat": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runtime": {
+ "version": "26.6.3",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz",
+ "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==",
+ "dependencies": {
+ "@jest/console": "^26.6.2",
+ "@jest/environment": "^26.6.2",
+ "@jest/fake-timers": "^26.6.2",
+ "@jest/globals": "^26.6.2",
+ "@jest/source-map": "^26.6.2",
+ "@jest/test-result": "^26.6.2",
+ "@jest/transform": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^0.6.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^26.6.3",
+ "jest-haste-map": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-mock": "^26.6.2",
+ "jest-regex-util": "^26.0.0",
+ "jest-resolve": "^26.6.2",
+ "jest-snapshot": "^26.6.2",
+ "jest-util": "^26.6.2",
+ "jest-validate": "^26.6.2",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0",
+ "yargs": "^15.4.1"
+ },
+ "bin": {
+ "jest-runtime": "bin/jest-runtime.js"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/jest-runtime/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jest-serializer": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz",
+ "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.4"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz",
+ "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==",
+ "dependencies": {
+ "@babel/types": "^7.0.0",
+ "@jest/types": "^26.6.2",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/prettier": "^2.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^26.6.2",
+ "graceful-fs": "^4.2.4",
+ "jest-diff": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "jest-haste-map": "^26.6.2",
+ "jest-matcher-utils": "^26.6.2",
+ "jest-message-util": "^26.6.2",
+ "jest-resolve": "^26.6.2",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^26.6.2",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/diff-sequences": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz",
+ "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-diff": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz",
+ "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^26.6.2",
+ "jest-get-type": "^26.3.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-util": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz",
+ "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz",
+ "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "camelcase": "^6.0.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-validate/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/jest-validate/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/jest-validate/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/jest-watch-typeahead": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz",
+ "integrity": "sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg==",
+ "dependencies": {
+ "ansi-escapes": "^4.3.1",
+ "chalk": "^4.0.0",
+ "jest-regex-util": "^26.0.0",
+ "jest-watcher": "^26.3.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "jest": "^26.0.0"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz",
+ "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==",
+ "dependencies": {
+ "@jest/test-result": "^26.6.2",
+ "@jest/types": "^26.6.2",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "jest-util": "^26.6.2",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "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/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/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-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "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-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/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=="
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "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/jsonpath": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
+ "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
+ "dependencies": {
+ "esprima": "1.2.2",
+ "static-eval": "2.0.2",
+ "underscore": "1.12.1"
+ }
+ },
+ "node_modules/jsonpath/node_modules/esprima": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
+ "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/jss": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz",
+ "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "csstype": "^3.0.2",
+ "is-in-browser": "^1.1.3",
+ "tiny-warning": "^1.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/jss"
+ }
+ },
+ "node_modules/jss-plugin-camel-case": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz",
+ "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "hyphenate-style-name": "^1.0.3",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-default-unit": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz",
+ "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-global": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz",
+ "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-nested": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz",
+ "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0",
+ "tiny-warning": "^1.0.2"
+ }
+ },
+ "node_modules/jss-plugin-props-sort": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz",
+ "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jss-plugin-rule-value-function": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz",
+ "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.10.0",
+ "tiny-warning": "^1.0.2"
+ }
+ },
+ "node_modules/jss-plugin-vendor-prefixer": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz",
+ "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "css-vendor": "^2.0.8",
+ "jss": "10.10.0"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/kdbush": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz",
+ "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA=="
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+ "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg=="
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/language-subtag-registry": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
+ "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
+ "dependencies": {
+ "language-subtag-registry": "^0.3.20"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/last-call-webpack-plugin": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
+ "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==",
+ "dependencies": {
+ "lodash": "^4.17.5",
+ "webpack-sources": "^1.1.0"
+ }
+ },
+ "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/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": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "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/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
+ },
+ "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.reduce": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw=="
+ },
+ "node_modules/lodash.startswith": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz",
+ "integrity": "sha512-XClYR1h4/fJ7H+mmCKppbiBmljN/nGs73iq2SjCT9SF4CBPoUHzLvWmH1GtZMhMBZSiRkHXfeA2RY1eIlJ75ww=="
+ },
+ "node_modules/lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "node_modules/lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "node_modules/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "node_modules/loglevel": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz",
+ "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ },
+ "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/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "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": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/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/make-dir/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir/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/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/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "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/memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==",
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "node_modules/merge-class-names": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/merge-class-names/-/merge-class-names-1.4.2.tgz",
+ "integrity": "sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/merge-class-names?sponsor=1"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "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": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/microevent.ts": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz",
+ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g=="
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "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/mini-css-extract-plugin": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz",
+ "integrity": "sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==",
+ "dependencies": {
+ "loader-utils": "^1.1.0",
+ "normalize-url": "1.9.1",
+ "schema-utils": "^1.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.4.0 || ^5.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "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/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+ },
+ "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.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/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/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/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/mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==",
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "node_modules/move-concurrently/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.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": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ=="
+ },
+ "node_modules/nan": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
+ "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w=="
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/native-url": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz",
+ "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==",
+ "dependencies": {
+ "querystring": "^0.2.0"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ },
+ "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/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/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/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/node-forge": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==",
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ },
+ "node_modules/node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dependencies": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ }
+ },
+ "node_modules/node-libs-browser/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/node-notifier": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz",
+ "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==",
+ "optional": true,
+ "dependencies": {
+ "growly": "^1.3.0",
+ "is-wsl": "^2.2.0",
+ "semver": "^7.3.2",
+ "shellwords": "^0.1.1",
+ "uuid": "^8.3.0",
+ "which": "^2.0.2"
+ }
+ },
+ "node_modules/node-notifier/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==",
+ "optional": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-notifier/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "optional": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-notifier/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "optional": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "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": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==",
+ "dependencies": {
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/normalize-url/node_modules/query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==",
+ "dependencies": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg=="
+ },
+ "node_modules/nwsapi": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",
+ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ=="
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "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"
+ }
+ },
+ "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-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
+ "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+ "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz",
+ "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==",
+ "dependencies": {
+ "array.prototype.reduce": "^1.0.6",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "safe-array-concat": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
+ "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "dependencies": {
+ "array.prototype.filter": "^1.0.3",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+ "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "dependencies": {
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "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": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/opn/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optimism": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz",
+ "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==",
+ "dependencies": {
+ "@wry/caches": "^1.0.0",
+ "@wry/context": "^0.7.0",
+ "@wry/trie": "^0.4.3",
+ "tslib": "^2.3.0"
+ }
+ },
+ "node_modules/optimism/node_modules/@wry/trie": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz",
+ "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/optimize-css-assets-webpack-plugin": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz",
+ "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==",
+ "dependencies": {
+ "cssnano": "^4.1.10",
+ "last-call-webpack-plugin": "^3.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "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/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A=="
+ },
+ "node_modules/p-each-series": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
+ "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/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": "3.0.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+ "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+ "dependencies": {
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
+ "node_modules/parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dependencies": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "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/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-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dependencies": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "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/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
+ },
+ "node_modules/path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q=="
+ },
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w=="
+ },
+ "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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "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/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
+ },
+ "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/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/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "dependencies": {
+ "pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "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-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-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": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pnp-webpack-plugin": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
+ "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
+ "dependencies": {
+ "ts-pnp": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/portfinder": {
+ "version": "1.0.32",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz",
+ "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==",
+ "dependencies": {
+ "async": "^2.6.4",
+ "debug": "^3.2.7",
+ "mkdirp": "^0.5.6"
+ },
+ "engines": {
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/portfinder/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "dependencies": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "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/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/postcss-attribute-case-insensitive": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz",
+ "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^6.0.2"
+ }
+ },
+ "node_modules/postcss-browser-comments": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz",
+ "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==",
+ "dependencies": {
+ "postcss": "^7"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "browserslist": "^4"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+ "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "dependencies": {
+ "postcss": "^7.0.27",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
+ "node_modules/postcss-color-functional-notation": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz",
+ "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-gray": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz",
+ "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==",
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-hex-alpha": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz",
+ "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==",
+ "dependencies": {
+ "postcss": "^7.0.14",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-mod-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz",
+ "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==",
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-color-rebeccapurple": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz",
+ "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-colormin/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-convert-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-custom-media": {
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz",
+ "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==",
+ "dependencies": {
+ "postcss": "^7.0.14"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-properties": {
+ "version": "8.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz",
+ "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==",
+ "dependencies": {
+ "postcss": "^7.0.17",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-selectors": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz",
+ "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz",
+ "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-double-position-gradients": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz",
+ "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==",
+ "dependencies": {
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-env-function": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz",
+ "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-flexbugs-fixes": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz",
+ "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==",
+ "dependencies": {
+ "postcss": "^7.0.26"
+ }
+ },
+ "node_modules/postcss-focus-visible": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz",
+ "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-focus-within": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz",
+ "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-font-variant": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz",
+ "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-gap-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz",
+ "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-image-set-function": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz",
+ "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-initial": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz",
+ "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-lab-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz",
+ "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==",
+ "dependencies": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
+ "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "import-cwd": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+ "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+ "dependencies": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^7.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/postcss-logical": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz",
+ "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-media-minmax": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz",
+ "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "dependencies": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-params/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
+ "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
+ "dependencies": {
+ "icss-utils": "^4.1.1",
+ "postcss": "^7.0.32",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+ "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+ "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+ "dependencies": {
+ "icss-utils": "^4.0.0",
+ "postcss": "^7.0.6"
+ }
+ },
+ "node_modules/postcss-nesting": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz",
+ "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-normalize": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz",
+ "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==",
+ "dependencies": {
+ "@csstools/normalize.css": "^10.1.0",
+ "browserslist": "^4.6.2",
+ "postcss": "^7.0.17",
+ "postcss-browser-comments": "^3.0.0",
+ "sanitize.css": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "dependencies": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "dependencies": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-overflow-shorthand": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz",
+ "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-page-break": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz",
+ "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-place": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz",
+ "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-preset-env": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz",
+ "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==",
+ "dependencies": {
+ "autoprefixer": "^9.6.1",
+ "browserslist": "^4.6.4",
+ "caniuse-lite": "^1.0.30000981",
+ "css-blank-pseudo": "^0.1.4",
+ "css-has-pseudo": "^0.10.0",
+ "css-prefers-color-scheme": "^3.1.1",
+ "cssdb": "^4.4.0",
+ "postcss": "^7.0.17",
+ "postcss-attribute-case-insensitive": "^4.0.1",
+ "postcss-color-functional-notation": "^2.0.1",
+ "postcss-color-gray": "^5.0.0",
+ "postcss-color-hex-alpha": "^5.0.3",
+ "postcss-color-mod-function": "^3.0.3",
+ "postcss-color-rebeccapurple": "^4.0.1",
+ "postcss-custom-media": "^7.0.8",
+ "postcss-custom-properties": "^8.0.11",
+ "postcss-custom-selectors": "^5.1.2",
+ "postcss-dir-pseudo-class": "^5.0.0",
+ "postcss-double-position-gradients": "^1.0.0",
+ "postcss-env-function": "^2.0.2",
+ "postcss-focus-visible": "^4.0.0",
+ "postcss-focus-within": "^3.0.0",
+ "postcss-font-variant": "^4.0.0",
+ "postcss-gap-properties": "^2.0.0",
+ "postcss-image-set-function": "^3.0.1",
+ "postcss-initial": "^3.0.0",
+ "postcss-lab-function": "^2.0.1",
+ "postcss-logical": "^3.0.0",
+ "postcss-media-minmax": "^4.0.0",
+ "postcss-nesting": "^7.0.0",
+ "postcss-overflow-shorthand": "^2.0.0",
+ "postcss-page-break": "^2.0.0",
+ "postcss-place": "^4.0.1",
+ "postcss-pseudo-class-any-link": "^6.0.0",
+ "postcss-replace-overflow-wrap": "^3.0.0",
+ "postcss-selector-matches": "^4.0.0",
+ "postcss-selector-not": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz",
+ "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==",
+ "dependencies": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dependencies": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-replace-overflow-wrap": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz",
+ "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==",
+ "dependencies": {
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-safe-parser": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz",
+ "integrity": "sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ==",
+ "dependencies": {
+ "postcss": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-safe-parser/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/postcss-safe-parser/node_modules/postcss": {
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-selector-matches": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz",
+ "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-selector-not": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz",
+ "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.15",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
+ "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
+ "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-svgo/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "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/postcss-values-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz",
+ "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==",
+ "dependencies": {
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6.14.4"
+ }
+ },
+ "node_modules/postcss/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/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/prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
+ "engines": {
+ "node": ">=0.10.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": "2.1.2",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
+ "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+ "dependencies": {
+ "lodash": "^4.17.20",
+ "renderkid": "^2.0.4"
+ }
+ },
+ "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": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "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/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ },
+ "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/prop-types/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/protobufjs": {
+ "version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
+ "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/long": "^4.0.1",
+ "@types/node": ">=13.7.0",
+ "long": "^4.0.0"
+ },
+ "bin": {
+ "pbjs": "bin/pbjs",
+ "pbts": "bin/pbts"
+ }
+ },
+ "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/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
+ },
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+ },
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dependencies": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "node_modules/pumpify/node_modules/pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-8.1.0.tgz",
+ "integrity": "sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw==",
+ "dependencies": {
+ "decode-uri-component": "^0.4.1",
+ "filter-obj": "^5.1.0",
+ "split-on-first": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/querystring": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
+ "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==",
+ "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+ },
+ "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/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/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "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/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/react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-app-polyfill": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz",
+ "integrity": "sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA==",
+ "dependencies": {
+ "core-js": "^3.6.5",
+ "object-assign": "^4.1.1",
+ "promise": "^8.1.0",
+ "raf": "^3.4.1",
+ "regenerator-runtime": "^0.13.7",
+ "whatwg-fetch": "^3.4.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-app-polyfill/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-calendar": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-3.9.0.tgz",
+ "integrity": "sha512-g6RJCEaPovHTiV2bMhBUfm0a1YoMj4bOUpL8hQSLmR1Glhc7lgRLtZBd4mcC4jkoGsb+hv9uA/QH4pZcm5l9lQ==",
+ "dependencies": {
+ "@wojtekmaj/date-utils": "^1.0.2",
+ "get-user-locale": "^1.2.0",
+ "merge-class-names": "^1.1.1",
+ "prop-types": "^15.6.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-dev-utils": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz",
+ "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==",
+ "dependencies": {
+ "@babel/code-frame": "7.10.4",
+ "address": "1.1.2",
+ "browserslist": "4.14.2",
+ "chalk": "2.4.2",
+ "cross-spawn": "7.0.3",
+ "detect-port-alt": "1.1.6",
+ "escape-string-regexp": "2.0.0",
+ "filesize": "6.1.0",
+ "find-up": "4.1.0",
+ "fork-ts-checker-webpack-plugin": "4.1.6",
+ "global-modules": "2.0.0",
+ "globby": "11.0.1",
+ "gzip-size": "5.1.1",
+ "immer": "8.0.1",
+ "is-root": "2.1.0",
+ "loader-utils": "2.0.0",
+ "open": "^7.0.2",
+ "pkg-up": "3.1.0",
+ "prompts": "2.4.0",
+ "react-error-overlay": "^6.0.9",
+ "recursive-readdir": "2.2.2",
+ "shell-quote": "1.7.2",
+ "strip-ansi": "6.0.0",
+ "text-table": "0.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/browserslist": {
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz",
+ "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001125",
+ "electron-to-chromium": "^1.3.564",
+ "escalade": "^3.0.2",
+ "node-releases": "^1.1.61"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/chalk/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dev-utils/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/react-dev-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/react-dev-utils/node_modules/globby": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
+ "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/loader-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+ "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/node-releases": {
+ "version": "1.1.77",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz",
+ "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ=="
+ },
+ "node_modules/react-dev-utils/node_modules/prompts": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz",
+ "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/react-dev-utils/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/react-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ },
+ "peerDependencies": {
+ "react": "17.0.2"
+ }
+ },
+ "node_modules/react-error-overlay": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
+ },
+ "node_modules/react-geocode": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/react-geocode/-/react-geocode-0.2.3.tgz",
+ "integrity": "sha512-sIpbgmn1IUzAxO4haOZ6jeeFnMD8ya9PC38yiNrmJ9vPWbvAO2D/2yfCBzZjGZVUm4PRzKAc0KghXfaEnug0TQ==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.3"
+ }
+ },
+ "node_modules/react-geocode/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-google-login": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/react-google-login/-/react-google-login-5.2.2.tgz",
+ "integrity": "sha512-JUngfvaSMcOuV0lFff7+SzJ2qviuNMQdqlsDJkUM145xkGPVIfqWXq9Ui+2Dr6jdJWH5KYdynz9+4CzKjI5u6g==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "dependencies": {
+ "@types/react": "*",
+ "prop-types": "^15.6.0"
+ },
+ "peerDependencies": {
+ "react": "^16 || ^17",
+ "react-dom": "^16 || ^17"
+ }
+ },
+ "node_modules/react-i18next": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz",
+ "integrity": "sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==",
+ "dependencies": {
+ "@babel/runtime": "^7.22.5",
+ "html-parse-stringify": "^3.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 23.2.3",
+ "react": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "node_modules/react-mentions": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/react-mentions/-/react-mentions-4.4.10.tgz",
+ "integrity": "sha512-JHiQlgF1oSZR7VYPjq32wy97z1w1oE4x10EuhKjPr4WUKhVzG1uFQhQjKqjQkbVqJrmahf+ldgBTv36NrkpKpA==",
+ "dependencies": {
+ "@babel/runtime": "7.4.5",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.5.8",
+ "substyle": "^9.1.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.3",
+ "react-dom": ">=16.8.3"
+ }
+ },
+ "node_modules/react-mentions/node_modules/@babel/runtime": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz",
+ "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ },
+ "node_modules/react-mentions/node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/react-modal": {
+ "version": "3.16.1",
+ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz",
+ "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==",
+ "dependencies": {
+ "exenv": "^1.2.0",
+ "prop-types": "^15.7.2",
+ "react-lifecycles-compat": "^3.0.0",
+ "warning": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18",
+ "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18"
+ }
+ },
+ "node_modules/react-otp-input": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/react-otp-input/-/react-otp-input-3.1.1.tgz",
+ "integrity": "sha512-bjPavgJ0/Zmf/AYi4onj8FbH93IjeD+e8pWwxIJreDEWsU1ILR5fs8jEJmMGWSBe/yyvPP6X/W6Mk9UkOCkTPw==",
+ "peerDependencies": {
+ "react": ">=16.8.6 || ^17.0.0 || ^18.0.0",
+ "react-dom": ">=16.8.6 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-paypal-button-v2": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/react-paypal-button-v2/-/react-paypal-button-v2-2.6.3.tgz",
+ "integrity": "sha512-Kt0QxWjZn+RnIbbFPHDfH8iHwMqe/jG5+SkKElEJ0Fg+CM9yeK37y8zQW97l5C9P9D1yPacW5YNAnuxmI9uS9w==",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "rimraf": "^3.0.0"
+ },
+ "peerDependencies": {
+ "react": "^0.14.6 || 15.x.x || 16.x.x || 17.x.x",
+ "react-dom": "^0.14.6 || 15.x.x || 16.x.x || 17.x.x"
+ }
+ },
+ "node_modules/react-phone-input-2": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/react-phone-input-2/-/react-phone-input-2-2.15.1.tgz",
+ "integrity": "sha512-W03abwhXcwUoq+vUFvC6ch2+LJYMN8qSOiO889UH6S7SyMCQvox/LF3QWt+cZagZrRdi5z2ON3omnjoCUmlaYw==",
+ "dependencies": {
+ "classnames": "^2.2.6",
+ "lodash.debounce": "^4.0.8",
+ "lodash.memoize": "^4.1.2",
+ "lodash.reduce": "^4.6.0",
+ "lodash.startswith": "^4.2.1",
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
+ "react-dom": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0"
+ }
+ },
+ "node_modules/react-places-autocomplete": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/react-places-autocomplete/-/react-places-autocomplete-7.3.0.tgz",
+ "integrity": "sha512-86wcHC69JATvWBnIS/yCsBHLtwzOGcnx3Ye94u74yTrz1jLRC/txkVDkf6rvC+Jq3zNe/tAg/W53x0EaH1ZPPw==",
+ "dependencies": {
+ "lodash.debounce": "^4.0.8",
+ "prop-types": "^15.5.8"
+ },
+ "peerDependencies": {
+ "react": ">=0.14.7"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
+ "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "6.22.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz",
+ "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==",
+ "dependencies": {
+ "@remix-run/router": "1.15.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.22.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz",
+ "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==",
+ "dependencies": {
+ "@remix-run/router": "1.15.1",
+ "react-router": "6.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
+ "node_modules/react-scripts": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.3.tgz",
+ "integrity": "sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A==",
+ "dependencies": {
+ "@babel/core": "7.12.3",
+ "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
+ "@svgr/webpack": "5.5.0",
+ "@typescript-eslint/eslint-plugin": "^4.5.0",
+ "@typescript-eslint/parser": "^4.5.0",
+ "babel-eslint": "^10.1.0",
+ "babel-jest": "^26.6.0",
+ "babel-loader": "8.1.0",
+ "babel-plugin-named-asset-import": "^0.3.7",
+ "babel-preset-react-app": "^10.0.0",
+ "bfj": "^7.0.2",
+ "camelcase": "^6.1.0",
+ "case-sensitive-paths-webpack-plugin": "2.3.0",
+ "css-loader": "4.3.0",
+ "dotenv": "8.2.0",
+ "dotenv-expand": "5.1.0",
+ "eslint": "^7.11.0",
+ "eslint-config-react-app": "^6.0.0",
+ "eslint-plugin-flowtype": "^5.2.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-jest": "^24.1.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-react": "^7.21.5",
+ "eslint-plugin-react-hooks": "^4.2.0",
+ "eslint-plugin-testing-library": "^3.9.2",
+ "eslint-webpack-plugin": "^2.5.2",
+ "file-loader": "6.1.1",
+ "fs-extra": "^9.0.1",
+ "html-webpack-plugin": "4.5.0",
+ "identity-obj-proxy": "3.0.0",
+ "jest": "26.6.0",
+ "jest-circus": "26.6.0",
+ "jest-resolve": "26.6.0",
+ "jest-watch-typeahead": "0.6.1",
+ "mini-css-extract-plugin": "0.11.3",
+ "optimize-css-assets-webpack-plugin": "5.0.4",
+ "pnp-webpack-plugin": "1.6.4",
+ "postcss-flexbugs-fixes": "4.2.1",
+ "postcss-loader": "3.0.0",
+ "postcss-normalize": "8.0.1",
+ "postcss-preset-env": "6.7.0",
+ "postcss-safe-parser": "5.0.2",
+ "prompts": "2.4.0",
+ "react-app-polyfill": "^2.0.0",
+ "react-dev-utils": "^11.0.3",
+ "react-refresh": "^0.8.3",
+ "resolve": "1.18.1",
+ "resolve-url-loader": "^3.1.2",
+ "sass-loader": "^10.0.5",
+ "semver": "7.3.2",
+ "style-loader": "1.3.0",
+ "terser-webpack-plugin": "4.2.3",
+ "ts-pnp": "1.2.0",
+ "url-loader": "4.1.1",
+ "webpack": "4.44.2",
+ "webpack-dev-server": "3.11.1",
+ "webpack-manifest-plugin": "2.2.0",
+ "workbox-webpack-plugin": "5.1.4"
+ },
+ "bin": {
+ "react-scripts": "bin/react-scripts.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.1.3"
+ },
+ "peerDependencies": {
+ "react": ">= 16",
+ "typescript": "^3.2.1 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-scripts/node_modules/@babel/core": {
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz",
+ "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.1",
+ "@babel/parser": "^7.12.3",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.1",
+ "@babel/types": "^7.12.1",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@babel/core/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/react-scripts/node_modules/@pmmmwh/react-refresh-webpack-plugin": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz",
+ "integrity": "sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ==",
+ "dependencies": {
+ "ansi-html": "^0.0.7",
+ "error-stack-parser": "^2.0.6",
+ "html-entities": "^1.2.1",
+ "native-url": "^0.2.6",
+ "schema-utils": "^2.6.5",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">= 10.x"
+ },
+ "peerDependencies": {
+ "@types/webpack": "4.x",
+ "react-refresh": ">=0.8.3 <0.10.0",
+ "sockjs-client": "^1.4.0",
+ "type-fest": "^0.13.1",
+ "webpack": ">=4.43.0 <6.0.0",
+ "webpack-dev-server": "3.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/react-scripts/node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/react-scripts/node_modules/jest-resolve": {
+ "version": "26.6.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz",
+ "integrity": "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^26.6.0",
+ "read-pkg-up": "^7.0.1",
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/react-scripts/node_modules/prompts": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz",
+ "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/react-scripts/node_modules/resolve": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
+ "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
+ "dependencies": {
+ "is-core-module": "^2.0.0",
+ "path-parse": "^1.0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/react-scripts/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-scroll": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.0.tgz",
+ "integrity": "sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==",
+ "dependencies": {
+ "lodash.throttle": "^4.1.1",
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-scrollspy": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/react-scrollspy/-/react-scrollspy-3.4.3.tgz",
+ "integrity": "sha512-c2QZpMPWxm1HF71h1EqaxBldx2zLYO0aZ24Bcuo2mUWF79T+F6qOtr7XJCzUDm99NOwhVKQD01a7A8VC6c90CQ==",
+ "deprecated": "No longer actively maintained. Please use @makotot/ghostui instead.",
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.10"
+ },
+ "peerDependencies": {
+ "react": ">=0.14.0",
+ "react-dom": ">=0.14.0"
+ }
+ },
+ "node_modules/react-spinners": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.11.0.tgz",
+ "integrity": "sha512-rDZc0ABWn/M1OryboGsWVmIPg8uYWl0L35jPUhr40+Yg+syVPjeHwvnB7XWaRpaKus3M0cG9BiJA+ZB0dAwWyw==",
+ "dependencies": {
+ "@emotion/react": "^11.1.4"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/react-star-ratings": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/react-star-ratings/-/react-star-ratings-2.3.0.tgz",
+ "integrity": "sha512-34Z/oFNDRRn4ZcX7F3t9ccnpo7SQ32gD/vsusQOBc6B6vlqaGR6tke1/Yx3jTDjemKRSmXqhKgpPTR7/JAXq6A==",
+ "dependencies": {
+ "classnames": "^2.2.1",
+ "prop-types": "^15.6.0",
+ "react": "^16.1.0"
+ }
+ },
+ "node_modules/react-star-ratings/node_modules/react": {
+ "version": "16.14.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
+ "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.6.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-stripe-checkout": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/react-stripe-checkout/-/react-stripe-checkout-2.6.3.tgz",
+ "integrity": "sha512-lnsCaAdlmwPGGMbQoI8FXtQUgEm+ktzPZ/ipAw4j0HYf80kef7CivGx6QitmgEn99/aa5hI/dmVXwfVZW/Mzfg=="
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/readable-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/readable-stream/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/readable-stream/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/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "optional": true,
+ "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/reflect.getprototypeof": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
+ "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.0.0",
+ "get-intrinsic": "^1.2.3",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-parser": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz",
+ "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg=="
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
+ },
+ "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.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/rehackt": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.5.tgz",
+ "integrity": "sha512-BI1rV+miEkaHj8zd2n+gaMgzu/fKz7BGlb4zZ6HAiY9adDmJMkaDcmuXlJFv0eyKUob+oszs3/2gdnXUrzx2Tg==",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/remove-accents": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz",
+ "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg=="
+ },
+ "node_modules/remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="
+ },
+ "node_modules/renderkid": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz",
+ "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==",
+ "dependencies": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "node_modules/renderkid/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/renderkid/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "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/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.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-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-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-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+ "deprecated": "https://github.com/lydell/resolve-url#deprecated"
+ },
+ "node_modules/resolve-url-loader": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.5.tgz",
+ "integrity": "sha512-mgFMCmrV/tA4738EsFmPFE5/MaqSgUMe8LK971kVEKA/RrNVb7+VqFsg/qmKyythf34eyq476qIobP/gfFBGSQ==",
+ "dependencies": {
+ "adjust-sourcemap-loader": "3.0.0",
+ "camelcase": "5.3.1",
+ "compose-function": "3.0.3",
+ "convert-source-map": "1.7.0",
+ "es6-iterator": "2.0.3",
+ "loader-utils": "^1.2.3",
+ "postcss": "7.0.36",
+ "rework": "1.0.1",
+ "rework-visit": "1.0.0",
+ "source-map": "0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/resolve-url-loader/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/resolve-url-loader/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/resolve-url-loader/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/resolve-url-loader/node_modules/chalk/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/resolve-url-loader/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/resolve-url-loader/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/resolve-url-loader/node_modules/convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/resolve-url-loader/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/resolve-url-loader/node_modules/postcss": {
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/resolve-url-loader/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/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-url-loader/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/response-iterator": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz",
+ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "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/rework": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz",
+ "integrity": "sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw==",
+ "dependencies": {
+ "convert-source-map": "^0.3.3",
+ "css": "^2.0.0"
+ }
+ },
+ "node_modules/rework-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz",
+ "integrity": "sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ=="
+ },
+ "node_modules/rework/node_modules/convert-source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz",
+ "integrity": "sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg=="
+ },
+ "node_modules/rework/node_modules/css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/rework/node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/rework/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/rework/node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w=="
+ },
+ "node_modules/rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg=="
+ },
+ "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/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "1.32.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
+ "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/node": "*",
+ "acorn": "^7.1.0"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ }
+ },
+ "node_modules/rollup-plugin-babel": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz",
+ "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==",
+ "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "rollup-pluginutils": "^2.8.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "7 || ^7.0.0-rc.2",
+ "rollup": ">=0.60.0 <3"
+ }
+ },
+ "node_modules/rollup-plugin-terser": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz",
+ "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==",
+ "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser",
+ "dependencies": {
+ "@babel/code-frame": "^7.5.5",
+ "jest-worker": "^24.9.0",
+ "rollup-pluginutils": "^2.8.2",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^4.6.2"
+ },
+ "peerDependencies": {
+ "rollup": ">=0.66.0 <3"
+ }
+ },
+ "node_modules/rollup-plugin-terser/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup-plugin-terser/node_modules/jest-worker": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+ "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+ "dependencies": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/rollup-pluginutils": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
+ "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
+ "dependencies": {
+ "estree-walker": "^0.6.1"
+ }
+ },
+ "node_modules/rollup-pluginutils/node_modules/estree-walker": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
+ },
+ "node_modules/rollup/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/rsvp": {
+ "version": "4.8.5",
+ "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
+ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
+ "engines": {
+ "node": "6.* || >= 7.*"
+ }
+ },
+ "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/run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==",
+ "dependencies": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
+ "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/sane": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz",
+ "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==",
+ "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added",
+ "dependencies": {
+ "@cnakazawa/watch": "^1.0.3",
+ "anymatch": "^2.0.0",
+ "capture-exit": "^2.0.0",
+ "exec-sh": "^0.3.2",
+ "execa": "^1.0.0",
+ "fb-watchman": "^2.0.0",
+ "micromatch": "^3.1.4",
+ "minimist": "^1.1.1",
+ "walker": "~1.0.5"
+ },
+ "bin": {
+ "sane": "src/cli.js"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/sane/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/sane/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/sane/node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sane/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sane/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sane/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/sane/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/sane/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sane/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/sanitize.css": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz",
+ "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg=="
+ },
+ "node_modules/sass-loader": {
+ "version": "10.5.2",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.5.2.tgz",
+ "integrity": "sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==",
+ "dependencies": {
+ "klona": "^2.0.4",
+ "loader-utils": "^2.0.0",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.0.0",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": ">= 10.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 || ^8.0.0 || ^9.0.0",
+ "sass": "^1.3.0",
+ "webpack": "^4.36.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "fibers": {
+ "optional": true
+ },
+ "node-sass": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sass-loader/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/sass-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/sass-loader/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sass-loader/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/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.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "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/select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
+ },
+ "node_modules/selfsigned": {
+ "version": "1.10.14",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz",
+ "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==",
+ "dependencies": {
+ "node-forge": "^0.10.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.17.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
+ "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.8.1",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "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": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/send/node_modules/destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
+ },
+ "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/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/send/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "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": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "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/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "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": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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/serve-static/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-static/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/serve-static/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/serve-static/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/serve-static/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/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "dependencies": {
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
+ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg=="
+ },
+ "node_modules/shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "optional": true
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
+ "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "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/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/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/snapdragon/node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/snapdragon/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/snapdragon/node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "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/sockjs-client": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
+ "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "eventsource": "^2.0.2",
+ "faye-websocket": "^0.11.4",
+ "inherits": "^2.0.4",
+ "url-parse": "^1.5.10"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://tidelift.com/funding/github/npm/sockjs-client"
+ }
+ },
+ "node_modules/sockjs-client/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/sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-explorer": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-explorer/-/source-map-explorer-2.5.3.tgz",
+ "integrity": "sha512-qfUGs7UHsOBE5p/lGfQdaAj/5U/GWYBw2imEpD6UQNkqElYonkow8t+HBL1qqIl3CuGZx7n8/CQo4x1HwSHhsg==",
+ "dependencies": {
+ "btoa": "^1.2.1",
+ "chalk": "^4.1.0",
+ "convert-source-map": "^1.7.0",
+ "ejs": "^3.1.5",
+ "escape-html": "^1.0.3",
+ "glob": "^7.1.6",
+ "gzip-size": "^6.0.0",
+ "lodash": "^4.17.20",
+ "open": "^7.3.1",
+ "source-map": "^0.7.4",
+ "temp": "^0.9.4",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "sme": "bin/cli.js",
+ "source-map-explorer": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/source-map-explorer/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/source-map-explorer/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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-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",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0"
+ }
+ },
+ "node_modules/source-map-resolve/node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "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/source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "deprecated": "See https://github.com/lydell/source-map-url#deprecated"
+ },
+ "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==",
+ "deprecated": "Please use @jridgewell/sourcemap-codec instead"
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg=="
+ },
+ "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/spdy-transport/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/split-on-first": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz",
+ "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "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.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "node_modules/static-eval": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
+ "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
+ "dependencies": {
+ "escodegen": "^1.8.1"
+ }
+ },
+ "node_modules/static-eval/node_modules/escodegen": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/static-eval/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/static-eval/node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/static-eval/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/static-eval/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/static-eval/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/static-eval/node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dependencies": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "node_modules/stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.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.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+ "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "regexp.prototype.flags": "^1.5.0",
+ "set-function-name": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "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": "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/strip-comments": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz",
+ "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==",
+ "dependencies": {
+ "babel-extract-comments": "^1.0.0",
+ "babel-plugin-transform-object-rest-spread": "^6.26.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-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/stripe": {
+ "version": "12.18.0",
+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-12.18.0.tgz",
+ "integrity": "sha512-cYjgBM2SY/dTm8Lr6eMyyONaHTZHA/QjHxFUIW5WH8FevSRIGAVtXEmBkUXF1fsqe7QvvRgQSGSJZmjDacegGg==",
+ "dependencies": {
+ "@types/node": ">=8.1.0",
+ "qs": "^6.11.0"
+ },
+ "engines": {
+ "node": ">=12.*"
+ }
+ },
+ "node_modules/style-loader": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz",
+ "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^2.7.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/stylehacks/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw=="
+ },
+ "node_modules/subscriptions-transport-ws": {
+ "version": "0.9.19",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
+ "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
+ "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
+ "dependencies": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
+ },
+ "peerDependencies": {
+ "graphql": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/substyle": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/substyle/-/substyle-9.4.1.tgz",
+ "integrity": "sha512-VOngeq/W1/UkxiGzeqVvDbGDPM8XgUyJVWjrqeh+GgKqspEPiLYndK+XRcsKUHM5Muz/++1ctJ1QCF/OqRiKWA==",
+ "dependencies": {
+ "@babel/runtime": "^7.3.4",
+ "invariant": "^2.2.4"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.3"
+ }
+ },
+ "node_modules/supercluster": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz",
+ "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+ "dependencies": {
+ "kdbush": "^4.0.2"
+ }
+ },
+ "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-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.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/svgo/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/svgo/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/svgo/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/svgo/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/svgo/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/svgo/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/svgo/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/svgo/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/svgo/node_modules/domutils/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/svgo/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/svgo/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/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/svgo/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/svgo/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/symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
+ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "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/table": {
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "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/table/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/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/tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tar/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/temp": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz",
+ "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==",
+ "dependencies": {
+ "mkdirp": "^0.5.1",
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/temp/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/tempy": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "dependencies": {
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tempy/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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": "4.8.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
+ "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
+ "dependencies": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz",
+ "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==",
+ "dependencies": {
+ "cacache": "^15.0.5",
+ "find-cache-dir": "^3.3.1",
+ "jest-worker": "^26.5.0",
+ "p-limit": "^3.0.2",
+ "schema-utils": "^3.0.0",
+ "serialize-javascript": "^5.0.1",
+ "source-map": "^0.6.1",
+ "terser": "^5.3.4",
+ "webpack-sources": "^1.4.3"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/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-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/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-webpack-plugin/node_modules/terser": {
+ "version": "5.27.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
+ "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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.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/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": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
+ "node_modules/throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "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/timers-browserify": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "dependencies": {
+ "setimmediate": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A=="
+ },
+ "node_modules/tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+ },
+ "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-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA=="
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "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/ts-invariant": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
+ "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ts-pnp": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
+ "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/tsconfig-paths/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==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "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/tsutils/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/tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw=="
+ },
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "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.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/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/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+ "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
+ },
+ "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.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
+ },
+ "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/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.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/union-value/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA=="
+ },
+ "node_modules/uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ=="
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "node_modules/unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "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": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "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/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/update-browserslist-db/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/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/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+ "deprecated": "Please see https://github.com/lydell/urix#deprecated"
+ },
+ "node_modules/url": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz",
+ "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.11.2"
+ }
+ },
+ "node_modules/url-loader": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz",
+ "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "mime-types": "^2.1.27",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "file-loader": "*",
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "file-loader": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/url-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "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/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/util.promisify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.2.tgz",
+ "integrity": "sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "object.getownpropertydescriptors": "^2.1.6",
+ "safe-array-concat": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/util/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "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.4.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw=="
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz",
+ "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vendors": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
+ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ },
+ "optionalDependencies": {
+ "chokidar": "^3.4.1",
+ "watchpack-chokidar2": "^2.0.1"
+ }
+ },
+ "node_modules/watchpack-chokidar2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
+ "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+ "optional": true,
+ "dependencies": {
+ "chokidar": "^2.1.8"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "optional": true,
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "optional": true,
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "optional": true,
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "optional": true,
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "optional": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "optional": true,
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "optional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "optional": true,
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "optional": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "optional": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.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/web-vitals": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz",
+ "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg=="
+ },
+ "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": "4.44.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz",
+ "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/wasm-edit": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "acorn": "^6.4.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.3.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.3",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.3",
+ "watchpack": "^1.7.4",
+ "webpack-sources": "^1.4.1"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ },
+ "webpack-command": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-middleware": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz",
+ "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==",
+ "dependencies": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server": {
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz",
+ "integrity": "sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==",
+ "dependencies": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.3.1",
+ "http-proxy-middleware": "0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.8",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.26",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.8",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.21",
+ "sockjs-client": "^1.5.0",
+ "spdy": "^4.0.2",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "^13.3.2"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 6.11.5"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/webpack-dev-server/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "node_modules/webpack-dev-server/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dependencies": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+ "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==",
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/webpack-dev-server/node_modules/yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dependencies": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/webpack-log/node_modules/ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-log/node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/webpack-manifest-plugin": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz",
+ "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==",
+ "dependencies": {
+ "fs-extra": "^7.0.0",
+ "lodash": ">=3.5 <5",
+ "object.entries": "^1.1.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "peerDependencies": {
+ "webpack": "2 || 3 || 4"
+ }
+ },
+ "node_modules/webpack-manifest-plugin/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/webpack-manifest-plugin/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/webpack-manifest-plugin/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/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/webpack-sources/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/node_modules/acorn": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/webpack/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/cacache": {
+ "version": "12.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+ "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "dependencies": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "node_modules/webpack/node_modules/eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dependencies": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=4.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/webpack/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/webpack/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/webpack/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/webpack/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/node_modules/ssri": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz",
+ "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==",
+ "dependencies": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "node_modules/webpack/node_modules/terser-webpack-plugin": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+ "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
+ "dependencies": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "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.20",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
+ "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
+ },
+ "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/which-builtin-type": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
+ "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "dependencies": {
+ "function.prototype.name": "^1.1.5",
+ "has-tostringtag": "^1.0.0",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "dependencies": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
+ "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.5",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/workbox-background-sync": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz",
+ "integrity": "sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-broadcast-update": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz",
+ "integrity": "sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-build": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz",
+ "integrity": "sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==",
+ "dependencies": {
+ "@babel/core": "^7.8.4",
+ "@babel/preset-env": "^7.8.4",
+ "@babel/runtime": "^7.8.4",
+ "@hapi/joi": "^15.1.0",
+ "@rollup/plugin-node-resolve": "^7.1.1",
+ "@rollup/plugin-replace": "^2.3.1",
+ "@surma/rollup-plugin-off-main-thread": "^1.1.1",
+ "common-tags": "^1.8.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.6",
+ "lodash.template": "^4.5.0",
+ "pretty-bytes": "^5.3.0",
+ "rollup": "^1.31.1",
+ "rollup-plugin-babel": "^4.3.3",
+ "rollup-plugin-terser": "^5.3.1",
+ "source-map": "^0.7.3",
+ "source-map-url": "^0.4.0",
+ "stringify-object": "^3.3.0",
+ "strip-comments": "^1.0.2",
+ "tempy": "^0.3.0",
+ "upath": "^1.2.0",
+ "workbox-background-sync": "^5.1.4",
+ "workbox-broadcast-update": "^5.1.4",
+ "workbox-cacheable-response": "^5.1.4",
+ "workbox-core": "^5.1.4",
+ "workbox-expiration": "^5.1.4",
+ "workbox-google-analytics": "^5.1.4",
+ "workbox-navigation-preload": "^5.1.4",
+ "workbox-precaching": "^5.1.4",
+ "workbox-range-requests": "^5.1.4",
+ "workbox-routing": "^5.1.4",
+ "workbox-strategies": "^5.1.4",
+ "workbox-streams": "^5.1.4",
+ "workbox-sw": "^5.1.4",
+ "workbox-window": "^5.1.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/workbox-build/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/workbox-build/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/workbox-build/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/workbox-build/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/workbox-cacheable-response": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz",
+ "integrity": "sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-core": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz",
+ "integrity": "sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg=="
+ },
+ "node_modules/workbox-expiration": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz",
+ "integrity": "sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-google-analytics": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz",
+ "integrity": "sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==",
+ "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained",
+ "dependencies": {
+ "workbox-background-sync": "^5.1.4",
+ "workbox-core": "^5.1.4",
+ "workbox-routing": "^5.1.4",
+ "workbox-strategies": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-navigation-preload": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz",
+ "integrity": "sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-precaching": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz",
+ "integrity": "sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-range-requests": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz",
+ "integrity": "sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-routing": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz",
+ "integrity": "sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-strategies": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz",
+ "integrity": "sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==",
+ "dependencies": {
+ "workbox-core": "^5.1.4",
+ "workbox-routing": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-streams": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz",
+ "integrity": "sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4",
+ "workbox-routing": "^5.1.4"
+ }
+ },
+ "node_modules/workbox-sw": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz",
+ "integrity": "sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA=="
+ },
+ "node_modules/workbox-webpack-plugin": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz",
+ "integrity": "sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "fast-json-stable-stringify": "^2.0.0",
+ "source-map-url": "^0.4.0",
+ "upath": "^1.1.2",
+ "webpack-sources": "^1.3.0",
+ "workbox-build": "^5.1.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/workbox-window": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz",
+ "integrity": "sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==",
+ "dependencies": {
+ "workbox-core": "^5.1.4"
+ }
+ },
+ "node_modules/worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "dependencies": {
+ "errno": "~0.1.7"
+ }
+ },
+ "node_modules/worker-rpc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz",
+ "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==",
+ "dependencies": {
+ "microevent.ts": "~0.1.1"
+ }
+ },
+ "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/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "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.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "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": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "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"
+ }
+ },
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz",
+ "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==",
+ "dependencies": {
+ "zen-observable": "0.8.15"
+ }
+ }
+ }
+}
diff --git a/enatega-multivendor-web/package.json b/enatega-multivendor-web/package.json
new file mode 100644
index 0000000..8249a78
--- /dev/null
+++ b/enatega-multivendor-web/package.json
@@ -0,0 +1,82 @@
+{
+ "name": "enatega",
+ "version": "0.1.0",
+ "private": true,
+ "dependencies": {
+ "@apollo/client": "^3.3.6",
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.3.0",
+ "@mui/icons-material": "^5.0.1",
+ "@mui/lab": "^5.0.0-alpha.48",
+ "@mui/material": "^5.0.1",
+ "@mui/styles": "^5.0.1",
+ "@react-google-maps/api": "^2.0.2",
+ "@sentry/react": "^6.16.1",
+ "@sentry/tracing": "^6.16.1",
+ "@tawk.to/tawk-messenger-react": "^1.0.0",
+ "@types/react": "^17.0.24",
+ "amplitude-js": "^8.14.1",
+ "autosuggest-highlight": "^3.1.1",
+ "clsx": "^1.1.1",
+ "date-fns": "^2.0.0-beta.5",
+ "env-cmd": "^10.1.0",
+ "firebase": "^9.4.0",
+ "flatlist-react": "^1.5.0",
+ "graphql": "^15.4.0",
+ "i18next": "^23.7.6",
+ "lodash": "^4.17.21",
+ "moment": "^2.29.1",
+ "react": "^17.0.2",
+ "react-calendar": "^3.7.0",
+ "react-dom": "^17.0.2",
+ "react-geocode": "^0.2.2",
+ "react-google-login": "^5.2.2",
+ "react-i18next": "^13.4.1",
+ "react-mentions": "^4.3.1",
+ "react-modal": "^3.16.1",
+ "react-otp-input": "^3.1.1",
+ "react-paypal-button-v2": "^2.6.3",
+ "react-phone-input-2": "^2.15.0",
+ "react-places-autocomplete": "^7.3.0",
+ "react-router-dom": "^6.2.1",
+ "react-scripts": "^4.0.0",
+ "react-scroll": "^1.8.2",
+ "react-scrollspy": "^3.4.3",
+ "react-spinners": "^0.11.0",
+ "react-star-ratings": "^2.3.0",
+ "react-stripe-checkout": "^2.6.3",
+ "source-map-explorer": "^2.5.2",
+ "stripe": "^12.3.0",
+ "subscriptions-transport-ws": "^0.9.19",
+ "uuid": "^8.3.2",
+ "web-vitals": "^0.2.4"
+ },
+ "scripts": {
+ "analyze": "source-map-explorer 'build/static/js/*.js'",
+ "start": "react-scripts --openssl-legacy-provider start",
+ "build": "react-scripts --openssl-legacy-provider build",
+ "test": "react-scripts test",
+ "eject": "react-scripts eject",
+ "start:staging": "env-cmd -f .env.staging react-scripts start",
+ "start:dev": "env-cmd -f .env.development react-scripts start",
+ "start:prod": "env-cmd -f .env.production react-scripts start",
+ "build:dev": "env-cmd -f .env.dev react-scripts build",
+ "build:prod": "env-cmd -f .env.production react-scripts build",
+ "build:staging": "env-cmd -f .env.staging react-scripts build"
+ },
+ "eslintConfig": {
+ "extends": [
+ "react-app",
+ "react-app/jest"
+ ]
+ },
+ "browserslist": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "description": "",
+ "main": "index.js",
+ "author": "",
+ "license": "ISC"
+}
diff --git a/enatega-multivendor-web/public/apple-icon.png b/enatega-multivendor-web/public/apple-icon.png
new file mode 100644
index 0000000..a20470f
Binary files /dev/null and b/enatega-multivendor-web/public/apple-icon.png differ
diff --git a/enatega-multivendor-web/public/favicon.ico b/enatega-multivendor-web/public/favicon.ico
new file mode 100644
index 0000000..7482a65
Binary files /dev/null and b/enatega-multivendor-web/public/favicon.ico differ
diff --git a/enatega-multivendor-web/public/favicon.png b/enatega-multivendor-web/public/favicon.png
new file mode 100644
index 0000000..4035919
Binary files /dev/null and b/enatega-multivendor-web/public/favicon.png differ
diff --git a/enatega-multivendor-web/public/firebase-messaging-sw.js b/enatega-multivendor-web/public/firebase-messaging-sw.js
new file mode 100644
index 0000000..9b5d09e
--- /dev/null
+++ b/enatega-multivendor-web/public/firebase-messaging-sw.js
@@ -0,0 +1,29 @@
+/* eslint-disable no-undef */
+importScripts(
+ "https://www.gstatic.com/firebasejs/9.4.0/firebase-app-compat.js"
+);
+importScripts(
+ "https://www.gstatic.com/firebasejs/9.4.0/firebase-messaging-compat.js"
+);
+const app = firebase.initializeApp({
+ apiKey: "AIzaSyDx_iSQ9LroTF7NMm20aRvw2wJqhwSnJ3U",
+ authDomain: "enatega-multivender-web.firebaseapp.com",
+ projectId: "enatega-multivender-web",
+ storageBucket: "enatega-multivender-web.appspot.com",
+ messagingSenderId: "438532750182",
+ appId: "1:438532750182:web:516b850eff4e0349f0a6a7",
+ measurementId: "G-KLBJSEHRYQ",
+});
+const messaging = firebase.messaging(app);
+
+messaging.onBackgroundMessage(function (payload) {
+ // Customize notification here
+ const { title, body } = payload.notification;
+ const notificationOptions = {
+ body,
+ icon: "/favicon.png",
+ };
+
+ // eslint-disable-next-line no-restricted-globals
+ self.registration.showNotification(title, notificationOptions);
+});
diff --git a/enatega-multivendor-web/public/index.html b/enatega-multivendor-web/public/index.html
new file mode 100644
index 0000000..3d1959d
--- /dev/null
+++ b/enatega-multivendor-web/public/index.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enatega-Food Delivery
+
+
+
+ You need to enable JavaScript to run this app.
+
+
+
+
diff --git a/enatega-multivendor-web/public/logo.svg b/enatega-multivendor-web/public/logo.svg
new file mode 100644
index 0000000..64f8e8f
--- /dev/null
+++ b/enatega-multivendor-web/public/logo.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/public/logo192.png b/enatega-multivendor-web/public/logo192.png
new file mode 100644
index 0000000..fc44b0a
Binary files /dev/null and b/enatega-multivendor-web/public/logo192.png differ
diff --git a/enatega-multivendor-web/public/logo512.png b/enatega-multivendor-web/public/logo512.png
new file mode 100644
index 0000000..a4e47a6
Binary files /dev/null and b/enatega-multivendor-web/public/logo512.png differ
diff --git a/enatega-multivendor-web/public/manifest.json b/enatega-multivendor-web/public/manifest.json
new file mode 100644
index 0000000..33c8d77
--- /dev/null
+++ b/enatega-multivendor-web/public/manifest.json
@@ -0,0 +1,25 @@
+{
+ "short_name": "Enatega",
+ "name": "Enatega-Food Delivery",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ },
+ {
+ "src": "logo192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "logo512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
+}
\ No newline at end of file
diff --git a/enatega-multivendor-web/public/robots.txt b/enatega-multivendor-web/public/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/enatega-multivendor-web/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/enatega-multivendor-web/src/App.js b/enatega-multivendor-web/src/App.js
new file mode 100644
index 0000000..ed5f559
--- /dev/null
+++ b/enatega-multivendor-web/src/App.js
@@ -0,0 +1,313 @@
+import { Box, CircularProgress } from "@mui/material";
+import { useJsApiLoader } from "@react-google-maps/api";
+import React, { useEffect, useState, useContext } from "react";
+import { HashRouter, Route, Routes } from "react-router-dom";
+import { getToken, onMessage } from "firebase/messaging";
+import { initialize, isFirebaseSupported } from "./firebase";
+import ConfigurableValues from "./config/constants";
+import Checkout from "./screens/Checkout/Checkout";
+import EmailSent from "./screens/EmailSent/EmailSent";
+import Favourites from "./screens/Favourites/Favourites";
+import ForgotPassword from "./screens/ForgotPassword/ForgotPassword";
+import Home from "./screens/Home/Home";
+import Login from "./screens/Login/Login";
+import LoginEmail from "./screens/LoginEmail/LoginEmail";
+import MyOrders from "./screens/MyOrders/MyOrders";
+import NewLogin from "./screens/NewLogin/NewLogin";
+import OrderDetail from "./screens/OrderDetail/OrderDetail";
+import Paypal from "./screens/Paypal/Paypal";
+import Privacy from "./screens/Privacy/Privacy";
+import Profile from "./screens/Profile/Profile";
+import Settings from "./screens/Settings/Settings";
+import Registration from "./screens/Registration/Registration";
+import PhoneNumber from "./screens/PhoneNumber/PhoneNumber";
+import VerifyEmail from "./screens/VerifyEmail/VerifyEmail";
+import VerifyForgotOtp from "./screens/VerifyForgotOtp/VerifyForgotOtp";
+import ResetPassword from "./screens/ResetPassword/ResetPassword";
+import RestaurantDetail from "./screens/RestaurantDetail/RestaurantDetail";
+import Restaurants from "./screens/Restaurants/Restaurants";
+import Stripe from "./screens/Stripe/Stripe";
+import Terms from "./screens/Terms/Terms";
+import FlashMessage from "./components/FlashMessage";
+import Pickup from "./screens/Pickup/Pickup";
+import * as Sentry from "@sentry/react";
+import AuthRoute from "./routes/AuthRoute";
+import PrivateRoute from "./routes/PrivateRoute";
+import VerifyPhone from "./screens/VerifyPhone/VerifyPhone";
+import UserContext from "./context/User";
+import { useTranslation } from "react-i18next";
+
+const GoogleMapsLoader = ({ children, LIBRARIES, GOOGLE_MAPS_KEY }) => {
+ const [message, setMessage] = useState(null);
+ const { t, i18n } = useTranslation();
+
+ useEffect(() => {
+ const initializeFirebase = async () => {
+ if (await isFirebaseSupported()) {
+ const messaging = initialize();
+ Notification.requestPermission()
+ .then(() => {
+ getToken(messaging, {
+ vapidKey:
+ "BOpVOtmawD0hzOR0F5NQTz_7oTlNVwgKX_EgElDnFuILsaE_jWYPIExAMIIGS-nYmy1lhf2QWFHQnDEFWNG_Z5w",
+ })
+ .then((token) => {
+ localStorage.setItem("messaging-token", token);
+ })
+ .catch((err) => {
+ console.log("getToken error", err);
+ });
+ })
+ .catch(console.log);
+
+ onMessage(messaging, function (payload) {
+ // Customize notification here
+ const { title, body } = payload.notification;
+ var localizedBody = body;
+ var orderNo = "";
+ var localizedTitle = title;
+ const createMessage = (orderNo, localizedTitle, localizedBody) => {
+ return i18n.language === "ar"
+ ? `${orderNo} ${localizedTitle} ${localizedBody}`
+ : `${localizedTitle} ${localizedBody} ${orderNo}`;
+ };
+ if (title.startsWith("Order status:")) {
+ localizedTitle = t(title);
+ const orderIdIndex = body.indexOf("Order ID");
+ orderNo = body.slice(orderIdIndex + 9).trim();
+ localizedBody = t("Order ID");
+ setMessage(createMessage(orderNo, localizedTitle, localizedBody));
+ } else if (title === "Order placed") {
+ localizedTitle = t("orderPlaced");
+ const orderIdIndex = body.indexOf("Order ID");
+ orderNo = body.slice(orderIdIndex + 9).trim();
+ localizedBody = t("Order ID");
+ setMessage(createMessage(orderNo, localizedTitle, localizedBody));
+ } else {
+ console.log(localizedTitle, localizedBody);
+ setMessage(`${localizedTitle} ${localizedBody}`);
+ }
+ });
+ }
+ };
+ initializeFirebase();
+ }, [t, i18n]);
+
+ const handleClose = () => {
+ setMessage(null);
+ };
+
+ const { isLoaded } = useJsApiLoader({
+ id: "google-map-script",
+ googleMapsApiKey: GOOGLE_MAPS_KEY,
+ libraries: LIBRARIES,
+ });
+ console.log("isLoaded ", isLoaded);
+ if (!isLoaded) {
+ return (
+
+
+
+ );
+ }
+
+ return (
+ <>
+ {children}
+
+ >
+ );
+};
+
+function App() {
+ const { GOOGLE_MAPS_KEY, LIBRARIES } = ConfigurableValues();
+ const { isLoggedIn } = useContext(UserContext);
+
+ return GOOGLE_MAPS_KEY ? (
+
+
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+ : }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ ) : (
+
+
+
+ );
+}
+
+export default Sentry.withProfiler(App);
diff --git a/enatega-multivendor-web/src/App.test.js b/enatega-multivendor-web/src/App.test.js
new file mode 100644
index 0000000..1f03afe
--- /dev/null
+++ b/enatega-multivendor-web/src/App.test.js
@@ -0,0 +1,8 @@
+import { render, screen } from '@testing-library/react';
+import App from './App';
+
+test('renders learn react link', () => {
+ render( );
+ const linkElement = screen.getByText(/learn react/i);
+ expect(linkElement).toBeInTheDocument();
+});
diff --git a/enatega-multivendor-web/src/apollo/index.js b/enatega-multivendor-web/src/apollo/index.js
new file mode 100644
index 0000000..7036747
--- /dev/null
+++ b/enatega-multivendor-web/src/apollo/index.js
@@ -0,0 +1,78 @@
+import {
+ ApolloClient,
+ ApolloLink,
+ concat,
+ createHttpLink,
+ InMemoryCache,
+ Observable,
+ split,
+} from "@apollo/client";
+import { getMainDefinition } from "@apollo/client/utilities";
+import { WebSocketLink } from "@apollo/client/link/ws";
+import ConfigurableValues from "../config/constants";
+
+const setupApollo = () => {
+ const { SERVER_URL, WS_SERVER_URL } = ConfigurableValues();
+ const cache = new InMemoryCache();
+ const httpLink = createHttpLink({
+ uri: `${SERVER_URL}graphql`,
+ });
+
+ const wsLink = new WebSocketLink({
+ uri: `${WS_SERVER_URL}graphql`,
+ options: {
+ reconnect: true,
+ },
+ });
+
+ const request = async (operation) => {
+ const data = localStorage.getItem("token");
+
+ let token = null;
+ if (data) {
+ token = data;
+ }
+ operation.setContext({
+ headers: {
+ authorization: token ? `Bearer ${token}` : "",
+ },
+ });
+ };
+
+ const requestLink = new ApolloLink(
+ (operation, forward) =>
+ new Observable((observer) => {
+ let handle;
+ Promise.resolve(operation)
+ .then((oper) => request(oper))
+ .then(() => {
+ handle = forward(operation).subscribe({
+ next: observer.next.bind(observer),
+ error: observer.error.bind(observer),
+ complete: observer.complete.bind(observer),
+ });
+ })
+ .catch(observer.error.bind(observer));
+
+ return () => {
+ if (handle) handle.unsubscribe();
+ };
+ })
+ );
+
+ const terminatingLink = split(({ query }) => {
+ const { kind, operation } = getMainDefinition(query);
+ return kind === "OperationDefinition" && operation === "subscription";
+ }, wsLink);
+
+ const client = new ApolloClient({
+ link: concat(ApolloLink.from([terminatingLink, requestLink]), httpLink),
+ cache,
+ resolvers: {},
+ connectToDevTools: true,
+ });
+
+ return client;
+};
+
+export default setupApollo;
diff --git a/enatega-multivendor-web/src/apollo/server.js b/enatega-multivendor-web/src/apollo/server.js
new file mode 100644
index 0000000..8288add
--- /dev/null
+++ b/enatega-multivendor-web/src/apollo/server.js
@@ -0,0 +1,990 @@
+export const sendChatMessage = `mutation SendChatMessage($orderId: ID!, $messageInput: ChatMessageInput!) {
+ sendChatMessage(message: $messageInput, orderId: $orderId) {
+ success
+ message
+ data {
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+ }
+}
+`;
+export const login = `
+mutation Login($email:String,$password:String,$type:String!,$appleId:String,$name:String,$notificationToken:String){
+ login(email:$email,password:$password,type:$type,appleId:$appleId,name:$name,notificationToken:$notificationToken){
+ userId
+ token
+ tokenExpiration
+ name
+ email
+ phone
+ }
+}
+`;
+
+export const emailExist = `
+ mutation EmailExist($email:String!){
+ emailExist(email:$email){
+ _id
+ }
+ }`;
+
+export const phoneExist = `
+mutation PhoneExist($phone:String!){
+ phoneExist(phone:$phone){
+ _id
+ }
+}`;
+
+export const sendOtpToEmail = `
+ mutation SendOtpToEmail($email: String!, $otp: String!) {
+ sendOtpToEmail(email: $email, otp: $otp) {
+ result
+ }
+ }
+ `;
+export const sendOtpToPhoneNumber = `
+mutation SendOtpToPhoneNumber($phone: String!, $otp: String!) {
+ sendOtpToPhoneNumber(phone: $phone, otp: $otp) {
+ result
+ }
+}
+`;
+export const resetPassword = `mutation ResetPassword($password:String!,$email:String!){
+ resetPassword(password:$password,email:$email){
+ result
+ }
+}`;
+export const createUser = `
+ mutation CreateUser($phone:String,$email:String,$password:String,$name:String,$notificationToken:String,$appleId:String){
+ createUser(userInput:{
+ phone:$phone,
+ email:$email,
+ password:$password,
+ name:$name,
+ notificationToken:$notificationToken,
+ appleId:$appleId
+ }){
+ userId
+ token
+ tokenExpiration
+ name
+ email
+ phone
+ }
+ }`;
+
+export const updateUser = `
+ mutation UpdateUser($name:String!,$phone:String,$phoneIsVerified:Boolean,$emailIsVerified:Boolean){
+ updateUser(updateUserInput:{name:$name,phone:$phone,phoneIsVerified:$phoneIsVerified,emailIsVerified:$emailIsVerified}){
+ _id
+ name
+ phone
+ phoneIsVerified
+ emailIsVerified
+ }
+ }`;
+
+export const updateNotificationStatus = `
+ mutation UpdateNotificationStatus($offerNotification:Boolean!,$orderNotification:Boolean!){
+ updateNotificationStatus(offerNotification:$offerNotification,orderNotification:$orderNotification){
+ _id
+ notificationToken
+ isOrderNotification
+ isOfferNotification
+ }
+ }`;
+
+export const profile = `
+ query{
+ profile{
+ _id
+ name
+ phone
+ phoneIsVerified
+ email
+ emailIsVerified
+ notificationToken
+ isOrderNotification
+ isOfferNotification
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ favourite
+ }
+ }`;
+
+export const order = `query Order($id:String!){
+ order(id:$id){
+ _id
+ orderId
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ items{
+ title
+ food
+ description
+ image
+ quantity
+ variation{
+ title
+ price
+ discounted
+ }
+ addons{
+ title
+ options{
+ title
+ description
+ price
+ }
+ }
+ }
+ user{
+ _id
+ name
+ email
+ }
+ paymentMethod
+ orderAmount
+ orderDate
+ expectedTime
+ isPickedUp
+ preparationTime
+ }
+}
+`;
+export const orderPaypal = `query OrderPaypal($id:String!){
+ orderPaypal(id:$id){
+ _id
+ restaurant{
+ _id
+ name
+ image
+ slug
+ address
+ location {
+ coordinates
+ }
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ deliveryCharges
+ orderId
+ user{
+ _id
+ phone
+ email
+ name
+ }
+ items{
+ _id
+ food
+ variation{
+ _id
+ title
+ price
+ }
+ addons{
+ _id
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ options{
+ _id
+ title
+ description
+ price
+ }
+ }
+ quantity
+ }
+ taxationAmount
+ tipping
+ paymentStatus
+ paymentMethod
+ orderAmount
+ paidAmount
+ orderStatus
+ orderDate
+ expectedTime
+ isPickedUp
+ createdAt
+ preparationTime
+ }
+}
+`;
+
+export const orderStripe = `query OrderStripe($id:String!){
+ orderStripe(id:$id){
+ _id
+ restaurant{
+ _id
+ name
+ image
+ slug
+ address
+ location {
+ coordinates
+ }
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ details
+ label
+ }
+ deliveryCharges
+ orderId
+ user{
+ _id
+ phone
+ email
+ name
+ }
+ items{
+ _id
+ food
+ variation{
+ _id
+ title
+ price
+ }
+ addons{
+ _id
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ options{
+ _id
+ title
+ description
+ price
+ }
+ }
+ quantity
+ }
+ taxationAmount
+ tipping
+ paymentStatus
+ paymentMethod
+ orderAmount
+ paidAmount
+ orderStatus
+ orderDate
+ expectedTime
+ isPickedUp
+ createdAt
+ preparationTime
+ }
+}
+`;
+
+export const orderStatusChanged = `subscription OrderStatusChanged($userId:String!){
+ orderStatusChanged(userId:$userId){
+ userId
+ origin
+ order{
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ slug
+ address
+ location {
+ coordinates
+ }
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ deliveryCharges
+ tipping
+ taxationAmount
+ orderDate
+ expectedTime
+ isPickedUp
+ createdAt
+ completionTime
+ preparationTime
+ }
+ }
+}`;
+
+export const myOrders = `query Orders($offset:Int){
+ orders(offset:$offset){
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ slug
+ address
+ location {
+ coordinates
+ }
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ deliveryCharges
+ tipping
+ taxationAmount
+ orderDate
+ expectedTime
+ isPickedUp
+ createdAt
+ completionTime
+ cancelledAt
+ assignedAt
+ deliveredAt
+ acceptedAt
+ pickedAt
+ preparationTime
+ }
+}
+`;
+
+export const placeOrder = `
+mutation PlaceOrder($restaurant:String!,$orderInput:[OrderInput!]!,$paymentMethod:String!,$couponCode:String,$tipping:Float!, $taxationAmount: Float!,$address:AddressInput!, $orderDate: String!,$isPickedUp: Boolean!, $deliveryCharges: Float!){
+ placeOrder(restaurant:$restaurant,orderInput: $orderInput,paymentMethod:$paymentMethod,couponCode:$couponCode,tipping:$tipping, taxationAmount: $taxationAmount, address:$address, orderDate: $orderDate, isPickedUp: $isPickedUp, deliveryCharges: $deliveryCharges) {
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ slug
+ address
+ location{coordinates}
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ orderDate
+ expectedTime
+ isPickedUp
+ deliveryCharges
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ preparationTime
+ }
+}`;
+
+export const pushToken = `mutation PushToken($token:String){
+ pushToken(token:$token){
+ _id
+ notificationToken
+ }
+}`;
+
+export const forgotPassword = `mutation ForgotPassword($email:String!, $otp:String!){
+ forgotPassword(email:$email,otp:$otp){
+ result
+ }
+}`;
+
+export const getConfiguration = `query Configuration{
+ configuration{
+ _id
+ currency
+ currencySymbol
+ deliveryRate
+ twilioEnabled
+ webClientID
+ googleApiKey
+ webAmplitudeApiKey
+ googleMapLibraries
+ googleColor
+ webSentryUrl
+ publishableKey
+ clientId
+ skipEmailVerification
+ skipMobileVerification
+ }
+}`;
+
+export const getCoupon = `mutation Coupon($coupon:String!){
+ coupon(coupon:$coupon){
+ _id
+ title
+ discount
+ enabled
+ }
+}`;
+
+export const deleteAddress = `mutation DeleteAddress($id:ID!){
+ deleteAddress(id:$id){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ }
+ }
+}`;
+
+export const createAddress = `mutation CreateAddress($addressInput:AddressInput!){
+ createAddress(addressInput:$addressInput){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+}`;
+
+export const editAddress = `mutation EditAddress($addressInput:AddressInput!){
+ editAddress(addressInput:$addressInput){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+}`;
+
+export const changePassword = `mutation ChangePassword($oldPassword:String!,$newPassword:String!){
+ changePassword(oldPassword:$oldPassword,newPassword:$newPassword)
+}`;
+
+export const restaurantList = `query Restaurants($latitude:Float,$longitude:Float){
+ nearByRestaurants(latitude:$latitude,longitude:$longitude){
+ offers{
+ _id
+ name
+ tag
+ restaurants
+ }
+ sections{
+ _id
+ name
+ restaurants
+ }
+ restaurants{
+ _id
+ name
+ image
+ slug
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ reviewData{
+ total
+ ratings
+ reviews{
+ _id
+ }
+ }
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ }
+ }
+ rating
+ isAvailable
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+}
+}`;
+
+export const restaurant = `query Restaurant($id:String,$slug:String){
+ restaurant(id:$id,slug:$slug){
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ slug
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ reviewData{
+ total
+ ratings
+ reviews{
+ _id
+ order{
+ user{
+ _id
+ name
+ email
+ }
+ }
+ rating
+ description
+ createdAt
+ }
+ }
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ image
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ }
+ }
+ options{
+ _id
+ title
+ description
+ price
+ }
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ zone{
+ _id
+ title
+ tax
+ }
+ rating
+ isAvailable
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+}`;
+
+export const selectAddress = `mutation SelectAddress($id:String!){
+ selectAddress(id:$id){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+}`;
+
+export const subscriptionRiderLocation = `subscription SubscriptionRiderLocation($riderId:String!){
+ subscriptionRiderLocation(riderId:$riderId) {
+ _id
+ location {coordinates}
+ }
+}`;
+
+export const rider = `query Rider($id:String){
+ rider(id:$id){
+ _id
+ location {coordinates}
+ }
+}`;
+
+export const reviewOrder = `mutation ReviewOrder(
+ $order:String!,
+ $rating:Int!,
+ $description:String,
+){
+ reviewOrder(reviewInput:{
+ order:$order,
+ rating:$rating,
+ description:$description,
+ }){
+ _id
+ orderId
+ restaurant{
+ _id
+ name
+ image
+ slug
+ address
+ }
+ deliveryAddress{
+ location{coordinates}
+ deliveryAddress
+ }
+ items{
+ _id
+ title
+ food
+ description
+ quantity
+ variation{
+ _id
+ title
+ price
+ discounted
+ }
+ addons{
+ _id
+ options{
+ _id
+ title
+ description
+ price
+ }
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ }
+ user{
+ _id
+ name
+ phone
+ }
+ rider{
+ _id
+ name
+ }
+ review{
+ _id
+ }
+ paymentMethod
+ paidAmount
+ orderAmount
+ orderStatus
+ orderDate
+ expectedTime
+ isPickedUp
+ tipping
+ taxationAmount
+ createdAt
+ completionTime
+ preparationTime
+ }
+}`;
+
+export const subscriptionOrder = `subscription SubscriptionOrder($id:String!){
+ subscriptionOrder(id:$id){
+ _id
+ orderStatus
+ rider{
+ _id
+ }
+ completionTime
+ }
+}`;
+
+export const getTaxation = `query Taxes{
+ taxes {
+ _id
+ taxationCharges
+ enabled
+ }
+ }`;
+
+export const getTipping = `query Tips{
+ tips {
+ _id
+ tipVariations
+ enabled
+ }
+ }`;
+
+export const FavouriteRestaurant = `query UserFavourite ($latitude:Float,$longitude:Float){
+ userFavourite(latitude:$latitude,longitude:$longitude) {
+ _id
+ orderId
+ orderPrefix
+ name
+ image
+ slug
+ address
+ location{coordinates}
+ deliveryTime
+ minimumOrder
+ tax
+ reviewData{
+ total
+ ratings
+ reviews{
+ _id
+ order{
+ user{
+ _id
+ name
+ email
+ }
+ }
+ rating
+ description
+ createdAt
+ }
+ }
+ categories{
+ _id
+ title
+ foods{
+ _id
+ title
+ image
+ description
+ variations{
+ _id
+ title
+ price
+ discounted
+ addons
+ }
+ }
+ }
+ options{
+ _id
+ title
+ description
+ price
+ }
+ addons{
+ _id
+ options
+ title
+ description
+ quantityMinimum
+ quantityMaximum
+ }
+ rating
+ isAvailable
+ openingTimes{
+ day
+ times{
+ startTime
+ endTime
+ }
+ }
+ }
+ }`;
+
+export const addFavouriteRestaurant = `mutation AddFavourite($id:String!){
+ addFavourite(id:$id){
+ _id
+ addresses{
+ _id
+ label
+ deliveryAddress
+ details
+ location{coordinates}
+ selected
+ }
+ }
+ }`;
+
+export const saveNotificationTokenWeb = `mutation SaveNotificationTokenWeb($token:String!){
+ saveNotificationTokenWeb(token:$token){
+ success
+ message
+ }
+}`;
+export const chat = `query Chat($order: ID!) {
+ chat(order: $order) {
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+}`;
+
+export const subscriptionNewMessage = `subscription SubscriptionNewMessage($order:ID!){
+ subscriptionNewMessage(order:$order){
+ id
+ message
+ user {
+ id
+ name
+ }
+ createdAt
+ }
+}`;
diff --git a/enatega-multivendor-web/src/assets/icons/AppStoreIcon.js b/enatega-multivendor-web/src/assets/icons/AppStoreIcon.js
new file mode 100644
index 0000000..e096446
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/AppStoreIcon.js
@@ -0,0 +1,32 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function AppStoreIcon(props) {
+ const theme = useTheme();
+ return (
+
+ {"95C4BA7C-26B8-4E76-A504-0C2F3F6A1A88"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default AppStoreIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/CartIcon.js b/enatega-multivendor-web/src/assets/icons/CartIcon.js
new file mode 100644
index 0000000..9d58401
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/CartIcon.js
@@ -0,0 +1,22 @@
+import { useTheme } from "@mui/material"
+import * as React from "react"
+
+function CartIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+ )
+}
+
+export default CartIcon
diff --git a/enatega-multivendor-web/src/assets/icons/CodIcon.js b/enatega-multivendor-web/src/assets/icons/CodIcon.js
new file mode 100644
index 0000000..2a60e37
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/CodIcon.js
@@ -0,0 +1,84 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function CodIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default CodIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/DeliveryIcon.js b/enatega-multivendor-web/src/assets/icons/DeliveryIcon.js
new file mode 100644
index 0000000..97f0afd
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/DeliveryIcon.js
@@ -0,0 +1,17 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function DeliveryIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+ );
+}
+
+export default DeliveryIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/DustbinIcon.js b/enatega-multivendor-web/src/assets/icons/DustbinIcon.js
new file mode 100644
index 0000000..d6e2394
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/DustbinIcon.js
@@ -0,0 +1,21 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function DustbinIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+ );
+}
+
+export default DustbinIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/EmailIcon.js b/enatega-multivendor-web/src/assets/icons/EmailIcon.js
new file mode 100644
index 0000000..2551456
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/EmailIcon.js
@@ -0,0 +1,72 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function EmailIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default EmailIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/FavouriteIcon.js b/enatega-multivendor-web/src/assets/icons/FavouriteIcon.js
new file mode 100644
index 0000000..6ae2ce6
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/FavouriteIcon.js
@@ -0,0 +1,203 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function FavouriteIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default FavouriteIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/ForgotPasswordIcon.js b/enatega-multivendor-web/src/assets/icons/ForgotPasswordIcon.js
new file mode 100644
index 0000000..4901005
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/ForgotPasswordIcon.js
@@ -0,0 +1,50 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function ForgotPasswordIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default ForgotPasswordIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/GoogleIcon.js b/enatega-multivendor-web/src/assets/icons/GoogleIcon.js
new file mode 100644
index 0000000..b8a8bf2
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/GoogleIcon.js
@@ -0,0 +1,24 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function GoogleIcon(props) {
+ const theme = useTheme();
+ return (
+
+ {"google [theme.palette.shadows.contrastText]"}
+
+
+ );
+}
+
+export default GoogleIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/HeartActiveIcon.js b/enatega-multivendor-web/src/assets/icons/HeartActiveIcon.js
new file mode 100644
index 0000000..1ad15c5
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/HeartActiveIcon.js
@@ -0,0 +1,25 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function HeartActiveIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+ );
+}
+
+export default HeartActiveIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/HeartFilledIcon.js b/enatega-multivendor-web/src/assets/icons/HeartFilledIcon.js
new file mode 100644
index 0000000..f4432e7
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/HeartFilledIcon.js
@@ -0,0 +1,24 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function HeartFilled(props) {
+ const theme = useTheme();
+ return (
+
+
+
+ );
+}
+
+export default HeartFilled;
diff --git a/enatega-multivendor-web/src/assets/icons/HeartIcon.js b/enatega-multivendor-web/src/assets/icons/HeartIcon.js
new file mode 100644
index 0000000..fdc3593
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/HeartIcon.js
@@ -0,0 +1,25 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react"
+
+function HeartIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+ )
+}
+
+export default HeartIcon
diff --git a/enatega-multivendor-web/src/assets/icons/LocationIcon.js b/enatega-multivendor-web/src/assets/icons/LocationIcon.js
new file mode 100644
index 0000000..7ba06ea
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/LocationIcon.js
@@ -0,0 +1,27 @@
+import { Button, SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function LocationIcon({onClick, ...restProps}) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+
+export default LocationIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/LoginEmailIcon.js b/enatega-multivendor-web/src/assets/icons/LoginEmailIcon.js
new file mode 100644
index 0000000..f022a56
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/LoginEmailIcon.js
@@ -0,0 +1,58 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function LoginEmailIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default LoginEmailIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/MastercardIcon.js b/enatega-multivendor-web/src/assets/icons/MastercardIcon.js
new file mode 100644
index 0000000..178c60c
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/MastercardIcon.js
@@ -0,0 +1,44 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function MastercardIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default MastercardIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/MobileIcon.js b/enatega-multivendor-web/src/assets/icons/MobileIcon.js
new file mode 100644
index 0000000..0f28d40
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/MobileIcon.js
@@ -0,0 +1,50 @@
+import React from "react";
+import { useTheme } from "@mui/material";
+
+function MobileIcon() {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default MobileIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/PayPalIcon.js b/enatega-multivendor-web/src/assets/icons/PayPalIcon.js
new file mode 100644
index 0000000..e4abf7c
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/PayPalIcon.js
@@ -0,0 +1,42 @@
+import React from "react";
+import { useTheme } from "@mui/material";
+
+function PayPalIcon() {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+
+export default PayPalIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/PencilIcon.js b/enatega-multivendor-web/src/assets/icons/PencilIcon.js
new file mode 100644
index 0000000..055c794
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/PencilIcon.js
@@ -0,0 +1,25 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function PencilIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+ );
+}
+
+export default PencilIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/PlayStore.js b/enatega-multivendor-web/src/assets/icons/PlayStore.js
new file mode 100644
index 0000000..a220f68
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/PlayStore.js
@@ -0,0 +1,22 @@
+import React from "react";
+import { useTheme } from "@mui/material";
+
+function PlayStore() {
+ const theme = useTheme();
+ return (
+
+
+
+ );
+}
+
+export default React.memo(PlayStore);
diff --git a/enatega-multivendor-web/src/assets/icons/PlayStoreIcon.js b/enatega-multivendor-web/src/assets/icons/PlayStoreIcon.js
new file mode 100644
index 0000000..3c656b8
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/PlayStoreIcon.js
@@ -0,0 +1,99 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function PlayStoreIcon(props) {
+ const theme = useTheme();
+ return (
+
+ {"F455A5CC-D2E2-48B1-A82D-44FCE13B067B"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default PlayStoreIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/ProfileIcon.js b/enatega-multivendor-web/src/assets/icons/ProfileIcon.js
new file mode 100644
index 0000000..26b4881
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/ProfileIcon.js
@@ -0,0 +1,26 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function ProfileIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default ProfileIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/RightIcon.js b/enatega-multivendor-web/src/assets/icons/RightIcon.js
new file mode 100644
index 0000000..6b9462c
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/RightIcon.js
@@ -0,0 +1,24 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function RightIcon(props) {
+ const theme = useTheme();
+ return (
+
+ {"A72C3084-0C79-41AF-9C67-DF8BFD378C1D"}
+
+
+ );
+}
+
+export default RightIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/SearchIcon.js b/enatega-multivendor-web/src/assets/icons/SearchIcon.js
new file mode 100644
index 0000000..e41028b
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/SearchIcon.js
@@ -0,0 +1,22 @@
+import { SvgIcon, useTheme } from "@mui/material";
+import * as React from "react";
+
+function SearchIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+ );
+}
+
+export default SearchIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/VisaIcon.js b/enatega-multivendor-web/src/assets/icons/VisaIcon.js
new file mode 100644
index 0000000..f86f42d
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/VisaIcon.js
@@ -0,0 +1,28 @@
+import * as React from "react";
+import { useTheme } from "@mui/material";
+
+function VisaIcon(props) {
+ const theme = useTheme();
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default VisaIcon;
diff --git a/enatega-multivendor-web/src/assets/icons/bill_cash.svg b/enatega-multivendor-web/src/assets/icons/bill_cash.svg
new file mode 100644
index 0000000..9da5522
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/bill_cash.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/cart.svg b/enatega-multivendor-web/src/assets/icons/cart.svg
new file mode 100644
index 0000000..75fdd73
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/cart.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/email.svg b/enatega-multivendor-web/src/assets/icons/email.svg
new file mode 100644
index 0000000..d419bf0
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/email.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/favourite.svg b/enatega-multivendor-web/src/assets/icons/favourite.svg
new file mode 100644
index 0000000..7b23126
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/favourite.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/location.svg b/enatega-multivendor-web/src/assets/icons/location.svg
new file mode 100644
index 0000000..a519d7d
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/location.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/master_card.svg b/enatega-multivendor-web/src/assets/icons/master_card.svg
new file mode 100644
index 0000000..826bae6
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/master_card.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/payment_method.svg b/enatega-multivendor-web/src/assets/icons/payment_method.svg
new file mode 100644
index 0000000..a36122d
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/payment_method.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/paypal_icon.svg b/enatega-multivendor-web/src/assets/icons/paypal_icon.svg
new file mode 100644
index 0000000..a3f2633
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/paypal_icon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/user.svg b/enatega-multivendor-web/src/assets/icons/user.svg
new file mode 100644
index 0000000..b35ecc5
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/user.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/visa_icon.svg b/enatega-multivendor-web/src/assets/icons/visa_icon.svg
new file mode 100644
index 0000000..9605173
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/visa_icon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-web/src/assets/icons/whatsapp.svg b/enatega-multivendor-web/src/assets/icons/whatsapp.svg
new file mode 100644
index 0000000..4d1a8a2
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/icons/whatsapp.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/images/1.png b/enatega-multivendor-web/src/assets/images/1.png
new file mode 100644
index 0000000..4e7e3c9
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/1.png differ
diff --git a/enatega-multivendor-web/src/assets/images/2.webp b/enatega-multivendor-web/src/assets/images/2.webp
new file mode 100644
index 0000000..a744058
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/2.webp differ
diff --git a/enatega-multivendor-web/src/assets/images/Address.svg b/enatega-multivendor-web/src/assets/images/Address.svg
new file mode 100644
index 0000000..5d443e4
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/images/Address.svg
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/images/AppVector.png b/enatega-multivendor-web/src/assets/images/AppVector.png
new file mode 100644
index 0000000..869a3cb
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/AppVector.png differ
diff --git a/enatega-multivendor-web/src/assets/images/Vector.png b/enatega-multivendor-web/src/assets/images/Vector.png
new file mode 100644
index 0000000..e4fcc1d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/Vector.png differ
diff --git a/enatega-multivendor-web/src/assets/images/app-store.png b/enatega-multivendor-web/src/assets/images/app-store.png
new file mode 100644
index 0000000..bd2cd46
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/app-store.png differ
diff --git a/enatega-multivendor-web/src/assets/images/arrow.png b/enatega-multivendor-web/src/assets/images/arrow.png
new file mode 100644
index 0000000..5a0aa46
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/arrow.png differ
diff --git a/enatega-multivendor-web/src/assets/images/arrow.svg b/enatega-multivendor-web/src/assets/images/arrow.svg
new file mode 100644
index 0000000..44aa18c
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/images/arrow.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/enatega-multivendor-web/src/assets/images/banner-1.png b/enatega-multivendor-web/src/assets/images/banner-1.png
new file mode 100644
index 0000000..66bab8d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/banner-1.png differ
diff --git a/enatega-multivendor-web/src/assets/images/banner-2.png b/enatega-multivendor-web/src/assets/images/banner-2.png
new file mode 100644
index 0000000..a1002a2
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/banner-2.png differ
diff --git a/enatega-multivendor-web/src/assets/images/bg-invert.png b/enatega-multivendor-web/src/assets/images/bg-invert.png
new file mode 100644
index 0000000..fbb3a4a
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bg-invert.png differ
diff --git a/enatega-multivendor-web/src/assets/images/bg.png b/enatega-multivendor-web/src/assets/images/bg.png
new file mode 100644
index 0000000..f9a0c33
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/bg_Food.jpeg b/enatega-multivendor-web/src/assets/images/bg_Food.jpeg
new file mode 100644
index 0000000..25f018d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bg_Food.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/bg_List_Container.jpeg b/enatega-multivendor-web/src/assets/images/bg_List_Container.jpeg
new file mode 100644
index 0000000..698c8b3
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bg_List_Container.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/bg_Search.jpeg b/enatega-multivendor-web/src/assets/images/bg_Search.jpeg
new file mode 100644
index 0000000..6a2b53e
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bg_Search.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/bg_bussiness.jpeg b/enatega-multivendor-web/src/assets/images/bg_bussiness.jpeg
new file mode 100644
index 0000000..1b8e32f
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bg_bussiness.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/blog-bg.png b/enatega-multivendor-web/src/assets/images/blog-bg.png
new file mode 100644
index 0000000..8a1abad
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/blog-bg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/blog1.png b/enatega-multivendor-web/src/assets/images/blog1.png
new file mode 100644
index 0000000..77a4ce3
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/blog1.png differ
diff --git a/enatega-multivendor-web/src/assets/images/blog2.png b/enatega-multivendor-web/src/assets/images/blog2.png
new file mode 100644
index 0000000..8c09be5
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/blog2.png differ
diff --git a/enatega-multivendor-web/src/assets/images/bowl.png b/enatega-multivendor-web/src/assets/images/bowl.png
new file mode 100644
index 0000000..9224c62
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/bowl.png differ
diff --git a/enatega-multivendor-web/src/assets/images/burger.png b/enatega-multivendor-web/src/assets/images/burger.png
new file mode 100644
index 0000000..2ba817a
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/burger.png differ
diff --git a/enatega-multivendor-web/src/assets/images/categories-bg.png b/enatega-multivendor-web/src/assets/images/categories-bg.png
new file mode 100644
index 0000000..4dcd307
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/categories-bg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/contact-pg.png b/enatega-multivendor-web/src/assets/images/contact-pg.png
new file mode 100644
index 0000000..5040901
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/contact-pg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/curve.png b/enatega-multivendor-web/src/assets/images/curve.png
new file mode 100644
index 0000000..f9ee0c2
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/curve.png differ
diff --git a/enatega-multivendor-web/src/assets/images/cust-app.png b/enatega-multivendor-web/src/assets/images/cust-app.png
new file mode 100644
index 0000000..e95374b
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/cust-app.png differ
diff --git a/enatega-multivendor-web/src/assets/images/dashboard.png b/enatega-multivendor-web/src/assets/images/dashboard.png
new file mode 100644
index 0000000..cc2ca59
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/dashboard.png differ
diff --git a/enatega-multivendor-web/src/assets/images/delivered.png b/enatega-multivendor-web/src/assets/images/delivered.png
new file mode 100644
index 0000000..bb79132
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/delivered.png differ
diff --git a/enatega-multivendor-web/src/assets/images/demo.png b/enatega-multivendor-web/src/assets/images/demo.png
new file mode 100644
index 0000000..3798754
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/demo.png differ
diff --git a/enatega-multivendor-web/src/assets/images/dest-map-2.png b/enatega-multivendor-web/src/assets/images/dest-map-2.png
new file mode 100644
index 0000000..e5ee665
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/dest-map-2.png differ
diff --git a/enatega-multivendor-web/src/assets/images/dest-map.png b/enatega-multivendor-web/src/assets/images/dest-map.png
new file mode 100644
index 0000000..1de961d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/dest-map.png differ
diff --git a/enatega-multivendor-web/src/assets/images/dish.png b/enatega-multivendor-web/src/assets/images/dish.png
new file mode 100644
index 0000000..cd4fee2
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/dish.png differ
diff --git a/enatega-multivendor-web/src/assets/images/easy-eats.png b/enatega-multivendor-web/src/assets/images/easy-eats.png
new file mode 100644
index 0000000..51d8046
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/easy-eats.png differ
diff --git a/enatega-multivendor-web/src/assets/images/email.png b/enatega-multivendor-web/src/assets/images/email.png
new file mode 100644
index 0000000..af83afd
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/email.png differ
diff --git a/enatega-multivendor-web/src/assets/images/emailLock.png b/enatega-multivendor-web/src/assets/images/emailLock.png
new file mode 100644
index 0000000..75eb51c
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/emailLock.png differ
diff --git a/enatega-multivendor-web/src/assets/images/empty-search.svg b/enatega-multivendor-web/src/assets/images/empty-search.svg
new file mode 100644
index 0000000..79d44a1
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/images/empty-search.svg
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/images/facebook.png b/enatega-multivendor-web/src/assets/images/facebook.png
new file mode 100644
index 0000000..d2d5464
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/facebook.png differ
diff --git a/enatega-multivendor-web/src/assets/images/fav-bg.png b/enatega-multivendor-web/src/assets/images/fav-bg.png
new file mode 100644
index 0000000..20760a1
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/fav-bg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/favs.png b/enatega-multivendor-web/src/assets/images/favs.png
new file mode 100644
index 0000000..8064742
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/favs.png differ
diff --git a/enatega-multivendor-web/src/assets/images/firebase.png b/enatega-multivendor-web/src/assets/images/firebase.png
new file mode 100644
index 0000000..dfe4bbb
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/firebase.png differ
diff --git a/enatega-multivendor-web/src/assets/images/fish.png b/enatega-multivendor-web/src/assets/images/fish.png
new file mode 100644
index 0000000..77f1c96
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/fish.png differ
diff --git a/enatega-multivendor-web/src/assets/images/food-plate.png b/enatega-multivendor-web/src/assets/images/food-plate.png
new file mode 100644
index 0000000..a9c6abd
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/food-plate.png differ
diff --git a/enatega-multivendor-web/src/assets/images/fruits-2.png b/enatega-multivendor-web/src/assets/images/fruits-2.png
new file mode 100644
index 0000000..1cfb894
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/fruits-2.png differ
diff --git a/enatega-multivendor-web/src/assets/images/fruits.png b/enatega-multivendor-web/src/assets/images/fruits.png
new file mode 100644
index 0000000..16e1d5a
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/fruits.png differ
diff --git a/enatega-multivendor-web/src/assets/images/gql.png b/enatega-multivendor-web/src/assets/images/gql.png
new file mode 100644
index 0000000..8836977
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/gql.png differ
diff --git a/enatega-multivendor-web/src/assets/images/hero-img.jpg b/enatega-multivendor-web/src/assets/images/hero-img.jpg
new file mode 100644
index 0000000..66130d1
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/hero-img.jpg differ
diff --git a/enatega-multivendor-web/src/assets/images/home.png b/enatega-multivendor-web/src/assets/images/home.png
new file mode 100644
index 0000000..139afc3
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/home.png differ
diff --git a/enatega-multivendor-web/src/assets/images/icecream.png b/enatega-multivendor-web/src/assets/images/icecream.png
new file mode 100644
index 0000000..d9062c9
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/icecream.png differ
diff --git a/enatega-multivendor-web/src/assets/images/img-map-background.jpeg b/enatega-multivendor-web/src/assets/images/img-map-background.jpeg
new file mode 100644
index 0000000..29e2f74
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/img-map-background.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/info-bg.png b/enatega-multivendor-web/src/assets/images/info-bg.png
new file mode 100644
index 0000000..7e7558d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/info-bg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/insta.png b/enatega-multivendor-web/src/assets/images/insta.png
new file mode 100644
index 0000000..0798f0d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/insta.png differ
diff --git a/enatega-multivendor-web/src/assets/images/linkedin.png b/enatega-multivendor-web/src/assets/images/linkedin.png
new file mode 100644
index 0000000..1bf114f
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/linkedin.png differ
diff --git a/enatega-multivendor-web/src/assets/images/location.png b/enatega-multivendor-web/src/assets/images/location.png
new file mode 100644
index 0000000..4a98197
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/location.png differ
diff --git a/enatega-multivendor-web/src/assets/images/logo.png b/enatega-multivendor-web/src/assets/images/logo.png
new file mode 100644
index 0000000..e77c2e0
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/logo.png differ
diff --git a/enatega-multivendor-web/src/assets/images/logo.svg b/enatega-multivendor-web/src/assets/images/logo.svg
new file mode 100644
index 0000000..64f8e8f
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/images/logo.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/images/marker.png b/enatega-multivendor-web/src/assets/images/marker.png
new file mode 100644
index 0000000..5db86fd
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/marker.png differ
diff --git a/enatega-multivendor-web/src/assets/images/mobile_pic.png b/enatega-multivendor-web/src/assets/images/mobile_pic.png
new file mode 100644
index 0000000..0c55b32
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/mobile_pic.png differ
diff --git a/enatega-multivendor-web/src/assets/images/mongodb.png b/enatega-multivendor-web/src/assets/images/mongodb.png
new file mode 100644
index 0000000..66b4525
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/mongodb.png differ
diff --git a/enatega-multivendor-web/src/assets/images/mui.png b/enatega-multivendor-web/src/assets/images/mui.png
new file mode 100644
index 0000000..28acb76
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/mui.png differ
diff --git a/enatega-multivendor-web/src/assets/images/node.png b/enatega-multivendor-web/src/assets/images/node.png
new file mode 100644
index 0000000..a243d03
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/node.png differ
diff --git a/enatega-multivendor-web/src/assets/images/pickup.png b/enatega-multivendor-web/src/assets/images/pickup.png
new file mode 100644
index 0000000..e6b39f5
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/pickup.png differ
diff --git a/enatega-multivendor-web/src/assets/images/play-store.png b/enatega-multivendor-web/src/assets/images/play-store.png
new file mode 100644
index 0000000..80a6a95
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/play-store.png differ
diff --git a/enatega-multivendor-web/src/assets/images/preparing.png b/enatega-multivendor-web/src/assets/images/preparing.png
new file mode 100644
index 0000000..dfb16a8
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/preparing.png differ
diff --git a/enatega-multivendor-web/src/assets/images/price-bg.png b/enatega-multivendor-web/src/assets/images/price-bg.png
new file mode 100644
index 0000000..ea58b2d
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/price-bg.png differ
diff --git a/enatega-multivendor-web/src/assets/images/profile.png b/enatega-multivendor-web/src/assets/images/profile.png
new file mode 100644
index 0000000..7334d17
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/profile.png differ
diff --git a/enatega-multivendor-web/src/assets/images/react.png b/enatega-multivendor-web/src/assets/images/react.png
new file mode 100644
index 0000000..6b7c578
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/react.png differ
diff --git a/enatega-multivendor-web/src/assets/images/rest-map-2.png b/enatega-multivendor-web/src/assets/images/rest-map-2.png
new file mode 100644
index 0000000..361660f
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rest-map-2.png differ
diff --git a/enatega-multivendor-web/src/assets/images/rest-map.png b/enatega-multivendor-web/src/assets/images/rest-map.png
new file mode 100644
index 0000000..fa8f881
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rest-map.png differ
diff --git a/enatega-multivendor-web/src/assets/images/restaurant-app.png b/enatega-multivendor-web/src/assets/images/restaurant-app.png
new file mode 100644
index 0000000..60df6f1
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/restaurant-app.png differ
diff --git a/enatega-multivendor-web/src/assets/images/restaurants.jpeg b/enatega-multivendor-web/src/assets/images/restaurants.jpeg
new file mode 100644
index 0000000..75ee965
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/restaurants.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/restaurants.png b/enatega-multivendor-web/src/assets/images/restaurants.png
new file mode 100644
index 0000000..d81cba5
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/restaurants.png differ
diff --git a/enatega-multivendor-web/src/assets/images/rider-app.png b/enatega-multivendor-web/src/assets/images/rider-app.png
new file mode 100644
index 0000000..bc8ed86
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rider-app.png differ
diff --git a/enatega-multivendor-web/src/assets/images/rider-map-2.png b/enatega-multivendor-web/src/assets/images/rider-map-2.png
new file mode 100644
index 0000000..fa95b74
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rider-map-2.png differ
diff --git a/enatega-multivendor-web/src/assets/images/rider-map.png b/enatega-multivendor-web/src/assets/images/rider-map.png
new file mode 100644
index 0000000..2089034
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rider-map.png differ
diff --git a/enatega-multivendor-web/src/assets/images/rider.jpeg b/enatega-multivendor-web/src/assets/images/rider.jpeg
new file mode 100644
index 0000000..beeda4f
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rider.jpeg differ
diff --git a/enatega-multivendor-web/src/assets/images/rider.png b/enatega-multivendor-web/src/assets/images/rider.png
new file mode 100644
index 0000000..cc52f38
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/rider.png differ
diff --git a/enatega-multivendor-web/src/assets/images/scooter.png b/enatega-multivendor-web/src/assets/images/scooter.png
new file mode 100644
index 0000000..6d880e2
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/scooter.png differ
diff --git a/enatega-multivendor-web/src/assets/images/shrimp.png b/enatega-multivendor-web/src/assets/images/shrimp.png
new file mode 100644
index 0000000..96754ae
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/shrimp.png differ
diff --git a/enatega-multivendor-web/src/assets/images/twitter.png b/enatega-multivendor-web/src/assets/images/twitter.png
new file mode 100644
index 0000000..86aa29b
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/twitter.png differ
diff --git a/enatega-multivendor-web/src/assets/images/voucher.svg b/enatega-multivendor-web/src/assets/images/voucher.svg
new file mode 100644
index 0000000..89fc5f5
--- /dev/null
+++ b/enatega-multivendor-web/src/assets/images/voucher.svg
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enatega-multivendor-web/src/assets/images/web-app.png b/enatega-multivendor-web/src/assets/images/web-app.png
new file mode 100644
index 0000000..288a09e
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/web-app.png differ
diff --git a/enatega-multivendor-web/src/assets/images/web.png b/enatega-multivendor-web/src/assets/images/web.png
new file mode 100644
index 0000000..ab209d1
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/web.png differ
diff --git a/enatega-multivendor-web/src/assets/images/webapp.png b/enatega-multivendor-web/src/assets/images/webapp.png
new file mode 100644
index 0000000..3d6bd98
Binary files /dev/null and b/enatega-multivendor-web/src/assets/images/webapp.png differ
diff --git a/enatega-multivendor-web/src/components/Chat/Chat.js b/enatega-multivendor-web/src/components/Chat/Chat.js
new file mode 100644
index 0000000..e2607f6
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Chat/Chat.js
@@ -0,0 +1,63 @@
+import { Paper, Typography, IconButton } from "@mui/material";
+import React, { useEffect } from "react";
+import { TextInput } from "./TextInput.js";
+import { MessageLeft, MessageRight } from "./Message";
+import CloseIcon from "@mui/icons-material/Close";
+import { useChatScreen } from "../../hooks/useChat";
+import moment from "moment";
+import useStyles from "./styles.js";
+import { Box } from "@mui/system";
+
+export default function Chat({ setToggleChat, id }) {
+ const { messages, onSend, profile, messageContainerRef } = useChatScreen(id);
+ const classes = useStyles();
+ useEffect(()=>{
+ messageContainerRef.current.focus()
+ })
+ return (
+
+
+
+ setToggleChat(false)}
+ className={classes.closeBtn}
+ >
+
+
+
+
+ Let's start chat with your rider
+
+
+ {/* How to focus on new message */}
+ {/* https://stackoverflow.com/questions/55118437/react-auto-scroll-to-bottom-on-a-chat-container */}
+
+ {messages ? (
+ messages.map((msg) => {
+ return profile._id === msg.user._id ? (
+
+ ) : (
+
+ );
+ })
+ ) : (
+ Lets Chat with rider
+ )}
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/Chat/Message.js b/enatega-multivendor-web/src/components/Chat/Message.js
new file mode 100644
index 0000000..8712106
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Chat/Message.js
@@ -0,0 +1,69 @@
+import React from "react";
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Typography } from "@mui/material";
+import useStyles from "./styles";
+import { useTheme } from "@emotion/react";
+
+export const MessageLeft = (props) => {
+ const message = props.message ? props.message : "no message";
+ const timestamp = props.timestamp ? props.timestamp : "";
+ const displayName = props.displayName ? props.displayName : "Usama";
+ const classes = useStyles();
+ const theme = useTheme();
+
+ return (
+ <>
+
+
+
+
+
+ {displayName}
+
+
+ {timestamp}
+
+
+
+
+
+
+ >
+ );
+};
+export const MessageRight = (props) => {
+ const theme = useTheme();
+
+ const classes = useStyles();
+ const message = props.message ? props.message : "no message";
+ const timestamp = props.timestamp ? props.timestamp : "";
+ return (
+
+
+
+
+ {"You"}
+
+
+ {timestamp}
+
+
+
{message}
+
+
+ );
+};
diff --git a/enatega-multivendor-web/src/components/Chat/TextInput.js b/enatega-multivendor-web/src/components/Chat/TextInput.js
new file mode 100644
index 0000000..3fb8455
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Chat/TextInput.js
@@ -0,0 +1,44 @@
+import React, { useState } from "react";
+import SendIcon from "@mui/icons-material/Send";
+import { TextField } from "@mui/material";
+import useStyles from "./styles";
+
+export const TextInput = ({ sendMessage, onKeyDown }) => {
+ const classes = useStyles();
+ const [inputMessage, setInputMessage] = useState("");
+
+ return (
+ <>
+
+ >
+ );
+};
diff --git a/enatega-multivendor-web/src/components/Chat/index.js b/enatega-multivendor-web/src/components/Chat/index.js
new file mode 100644
index 0000000..f78239d
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Chat/index.js
@@ -0,0 +1,2 @@
+import Chat from "./Chat";
+export { Chat };
diff --git a/enatega-multivendor-web/src/components/Chat/styles.js b/enatega-multivendor-web/src/components/Chat/styles.js
new file mode 100644
index 0000000..4f133cb
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Chat/styles.js
@@ -0,0 +1,133 @@
+import makeStyles from "@mui/styles/makeStyles";
+import { deepOrange } from "@mui/material/colors";
+
+const useStyles = makeStyles((theme) => ({
+ paper: {
+ maxWidth: "500px",
+ maxHeight: "700px",
+ width: "400px",
+ height: "460px",
+ display: "flex",
+ alignItems: "center",
+ flexDirection: "column",
+ [theme.breakpoints.down("sm")]: {
+ width: "350px",
+ },
+ },
+ container: {
+ position: "fixed",
+ right: "35px",
+ bottom: "35px",
+ [theme.breakpoints.down("sm")]: {
+ right: "25px",
+ bottom: "35px",
+ },
+ },
+ messagesBody: {
+ marginBottom: "10px",
+ overflowY: "scroll",
+ overflowX: "hidden",
+ width: "100%",
+ height: "100%",
+ display: 'flex',
+ flexDirection: 'column-reverse'
+ },
+ header: {
+ display: "flex",
+ alignItems: "center",
+ justifyContent: "center",
+ width: "100%",
+ position: "relative",
+ height: 100,
+ },
+ heading: {
+ color: theme.palette.grey[500],
+ },
+ closeBtn: {
+ position: "absolute",
+ right: "-20px",
+ top: "-20px",
+ backgroundColor: "black",
+ "&:hover": {
+ backgroundColor: "black",
+ },
+ },
+ wrapForm: {
+ display: "flex",
+ justifyContent: "center",
+ width: "95%",
+ margin: `${theme.spacing(1)} auto`,
+ },
+ wrapText: {
+ width: "100%",
+ },
+ input: {
+ color: theme.palette.common.black,
+ },
+ messageRow: {
+ display: "flex",
+ marginTop: theme.spacing(2),
+ },
+ messageRowRight: {
+ marginTop: theme.spacing(2),
+ display: "flex",
+ justifyContent: "flex-end",
+ },
+ messageGreen: {
+ position: "relative",
+ marginLeft: "20px",
+ padding: 15,
+ backgroundColor: theme.palette.primary.main,
+ textAlign: "left",
+ border: `1px solid ${theme.palette.primary.main}`,
+ borderRadius: 20,
+ borderBottomLeftRadius: 0,
+ },
+ messageOrange: {
+ position: "relative",
+ marginRight: "20px",
+ padding: 15,
+ display: "flex",
+ flexDirection: "column",
+ backgroundColor: theme.palette.common.black,
+ fontWeight: 600,
+ textAlign: "left",
+ font: "400 .9em 'Open Sans', sans-serif",
+ border: `1px solid theme.palette.common.black`,
+ borderRadius: 20,
+ borderBottomRightRadius: 0,
+ },
+
+ messageContent: {
+ padding: 0,
+ margin: 0,
+ wordWrap: "break-word",
+ width: "200px",
+ },
+ messageTimeStampRight: {
+ fontSize: ".85em",
+ fontWeight: "300",
+ display: "flex",
+ justifyContent: "space-between",
+ },
+
+ orange: {
+ color: theme.palette.getContrastText(deepOrange[500]),
+ backgroundColor: deepOrange[500],
+ width: theme.spacing(4),
+ height: theme.spacing(4),
+ marginLeft: theme.spacing(2),
+ },
+ avatarNothing: {
+ color: "transparent",
+ backgroundColor: "transparent",
+ width: theme.spacing(4),
+ height: theme.spacing(4),
+ },
+ displayName: {
+ marginLeft: "20px",
+ color: theme.palette.common.black,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Checkout/AddressDetail.js b/enatega-multivendor-web/src/components/Checkout/AddressDetail.js
new file mode 100644
index 0000000..ee15053
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/AddressDetail.js
@@ -0,0 +1,202 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useMutation } from "@apollo/client";
+import {
+ Box,
+ Button,
+ CircularProgress,
+ Grid,
+ TextField,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import { GoogleMap, Marker } from "@react-google-maps/api";
+import clsx from "clsx";
+import gql from "graphql-tag";
+import React, { useCallback, useState } from "react";
+import { createAddress, editAddress } from "../../apollo/server";
+import useStyle from "./styles";
+import MarkerImage from "../../assets/images/marker.png";
+import { useTranslation } from "react-i18next";
+
+const EDIT_ADDRESS = gql`
+ ${editAddress}
+`;
+const CREATE_ADDRESS = gql`
+ ${createAddress}
+`;
+
+function AddressDetail({
+ addressDetail,
+ locationModal,
+ toggleDetail,
+ notification,
+}) {
+ const isEdit = Boolean(addressDetail?.id);
+ const theme = useTheme();
+ const classes = useStyle();
+ const [addressError, setAddressError] = useState("");
+ const { t } = useTranslation();
+ const [details, setDetails] = useState("");
+ const [mutate, { loading }] = useMutation(
+ isEdit ? EDIT_ADDRESS : CREATE_ADDRESS,
+ {
+ onCompleted,
+ onError,
+ }
+ );
+
+ function onCompleted(data) {
+ if (isEdit) {
+ notification({
+ type: "warning",
+ message: "Address updated",
+ });
+ } else {
+ notification({
+ type: "success",
+ message: "Address added",
+ });
+ }
+ toggleDetail();
+ }
+
+ function onError(error) {
+ console.log(error);
+ notification({
+ type: "error",
+ message: `An error occured. Please try again. ${error}`,
+ });
+ }
+
+ const clearErrors = useCallback(() => {
+ setAddressError("");
+ }, []);
+
+ const validateAddress = () => {
+ clearErrors();
+ const detailValue = addressDetail.location;
+ if (!detailValue) {
+ setAddressError("Delivery details is required");
+ return false;
+ }
+ if (!addressDetail?.lat || !addressDetail?.lng) {
+ setAddressError("Delivery address is required");
+ return false;
+ }
+ mutate({
+ variables: {
+ addressInput: {
+ _id: isEdit ? addressDetail?.id : "",
+ latitude: `${addressDetail?.lat}`,
+ longitude: `${addressDetail?.lng}`,
+ deliveryAddress: addressDetail?.location.trim(),
+ details: details,
+ label: addressDetail?.label || "Home",
+ },
+ },
+ });
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ {addressDetail?.location ?? ""}
+
+ {
+ e.preventDefault();
+ locationModal();
+ }}
+ >
+
+ {t("edit")}
+
+
+
+
+ setDetails(e.currentTarget.value)}
+ InputLabelProps={{
+ style: {
+ color: theme.palette.grey[600],
+ },
+ }}
+ />
+ {
+ e.preventDefault();
+ validateAddress();
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ {t("submit")}
+
+ )}
+
+
+
+
+ );
+}
+
+export default React.memo(AddressDetail);
diff --git a/enatega-multivendor-web/src/components/Checkout/CartItemCard.js b/enatega-multivendor-web/src/components/Checkout/CartItemCard.js
new file mode 100644
index 0000000..77567b4
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/CartItemCard.js
@@ -0,0 +1,378 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useMutation, useQuery } from "@apollo/client";
+import {
+ Box,
+ Button,
+ Container,
+ Divider,
+ Grid,
+ Paper,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import clsx from "clsx";
+import gql from "graphql-tag";
+import React, {
+ useContext,
+ useEffect,
+ useRef,
+ useState,
+ useCallback,
+} from "react";
+import { getCoupon, getTipping } from "../../apollo/server";
+import ConfigurationContext from "../../context/Configuration";
+import UserContext from "../../context/User";
+import useStyles from "./styles";
+import CartItem from "../RestaurantDetailComponent/RestaurantCart/CartItem";
+import Voucher from "./Voucher";
+import { useTranslation } from "react-i18next";
+
+const TIPPING = gql`
+ ${getTipping}
+`;
+const GET_COUPON = gql`
+ ${getCoupon}
+`;
+
+function CartItemsCard({
+ restaurantData,
+ setFlashMessage,
+ selectedTip,
+ setSelectedTip,
+ setTaxValue,
+ setCoupon,
+ calculatePrice,
+ taxCalculation,
+ calculateTip,
+ calculateTotal,
+ isPickUp,
+ deliveryCharges,
+ addQuantity,
+ removeQuantity,
+}) {
+ const { t } = useTranslation();
+ const couponRef = useRef(null);
+ const [couponError, setCouponError] = useState(null);
+ const [couponText, setCouponText] = useState("");
+ const theme = useTheme();
+ const classes = useStyles();
+ const { cart } = useContext(UserContext);
+ const configuration = useContext(ConfigurationContext);
+ const [voucherModal, setVoucherModal] = useState(false);
+ const [isCouponApplied, setIsCouponApplied] = useState(false);
+
+ const { data: dataTip } = useQuery(TIPPING, {
+ fetchPolicy: "network-only",
+ });
+ const [mutate, { loading: couponLoading }] = useMutation(GET_COUPON, {
+ onCompleted: couponCompleted,
+ onError: couponOnError,
+ });
+
+ useEffect(() => {
+ if (dataTip && !selectedTip) {
+ setSelectedTip(dataTip.tips.tipVariations[1]);
+ }
+ }, [restaurantData, dataTip]);
+
+ useEffect(() => {
+ setTaxValue(restaurantData ? +restaurantData.tax : 0);
+ }, [restaurantData]);
+
+ const mutateVoucher = (e) => {
+ e.preventDefault();
+ mutate({ variables: { coupon: couponText } });
+ };
+
+ function couponCompleted({ coupon }) {
+ if (coupon) {
+ if (coupon.enabled) {
+ couponRef.current = coupon;
+ setCoupon(coupon);
+ setCouponError("");
+ setIsCouponApplied(true);
+ setFlashMessage({
+ type: "success",
+ message: "Coupon applied.",
+ });
+ setVoucherModal((prev) => !prev);
+ } else {
+ setCouponError("Coupon not found!");
+ setFlashMessage({
+ type: "warning",
+ message: "Coupon unavailable.",
+ });
+ }
+ }
+ }
+ function couponOnError() {
+ setCouponError("Coupon not found!");
+ setFlashMessage({
+ type: "error",
+ message: "Invalid Coupon.",
+ });
+ }
+ const toggleVoucherModal = useCallback(() => {
+ setVoucherModal((prev) => !prev);
+ }, []);
+
+ return (
+ <>
+
+
+ {cart?.map((foodItem, index) => (
+ <>
+ {
+ addQuantity(foodItem.key);
+ }}
+ removeQuantity={() => {
+ if (foodItem.quantity > 1) {
+ removeQuantity(foodItem.key);
+ }
+ }}
+ />
+
+ >
+ ))}
+
+
+
+
+
+
+ {t("subTotal")}
+
+
+ {`${configuration.currencySymbol} ${calculatePrice(0)}`}
+
+
+ {!isPickUp && (
+
+
+ {t("deliveryFee")}
+
+
+ {`${configuration.currencySymbol} ${deliveryCharges.toFixed(
+ 2
+ )}`}
+
+
+ )}
+
+
+ {t("taxFee")}
+
+
+ {`${configuration.currencySymbol} ${taxCalculation()}`}
+
+
+
+
+ {t("haveVoucher")}
+
+
+
+
+
+
+ {t("tip")}
+
+
+ {selectedTip && (
+
+
+ {
+ e.preventDefault();
+ setSelectedTip(null);
+ }}
+ >
+
+ {t("remove")}
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ calculateTip()
+ ).toFixed(2)}`}
+
+
+
+ )}
+
+ {dataTip && (
+
+ {dataTip.tips.tipVariations.map((label, index) => (
+ {
+ e.preventDefault();
+ setSelectedTip(label);
+ }}
+ >{`${label} %`}
+ ))}
+
+ )}
+
+
+
+
+
+ {isCouponApplied
+ ? `Coupon is applied: ${couponText}`
+ : t("discount")}
+
+
+ {`-${configuration.currencySymbol} ${parseFloat(
+ calculatePrice(0, false) - calculatePrice(0, true)
+ ).toFixed(2)}`}
+
+
+
+
+
+ {t("total")}
+
+
+ (incl. TAX)
+
+
+
+ {`${configuration.currencySymbol} ${calculateTotal()}`}
+
+
+
+
+
+
+ >
+ );
+}
+
+export default React.memo(CartItemsCard);
diff --git a/enatega-multivendor-web/src/components/Checkout/DeliveryCard.js b/enatega-multivendor-web/src/components/Checkout/DeliveryCard.js
new file mode 100644
index 0000000..2bf33dc
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/DeliveryCard.js
@@ -0,0 +1,469 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { gql, useMutation } from "@apollo/client";
+import {
+ Box,
+ Button,
+ CircularProgress,
+ Container,
+ Grid,
+ Paper,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import clsx from "clsx";
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useRef,
+ useState,
+} from "react";
+import { deleteAddress } from "../../apollo/server";
+import DustbinIcon from "../../assets/icons/DustbinIcon";
+import PencilIcon from "../../assets/icons/PencilIcon";
+import UserContext from "../../context/User";
+import FlashMessage from "../FlashMessage";
+import { AddressModal } from "../Modals";
+import AddressDetail from "./AddressDetail";
+import useStyles from "./styles";
+import ArrowForwardIcon from "@mui/icons-material/ArrowForward";
+import ModeEditIcon from "@mui/icons-material/ModeEdit";
+import DeleteIcon from "@mui/icons-material/Delete";
+import { useLocationContext } from "../../context/Location";
+import { useTranslation } from "react-i18next";
+import HomeIcon from "@mui/icons-material/Home";
+const LATITUDE = 33.7001019;
+const LONGITUDE = 72.9735978;
+
+const DELETE_ADDRESS = gql`
+ ${deleteAddress}
+`;
+
+function DeliveryCard({
+ selectedAddress,
+ setSelectedAddress,
+ isProfile,
+ isModal,
+ isCheckout,
+ close,
+}) {
+ const { t } = useTranslation();
+ const deleteId = useRef(null);
+ const theme = useTheme();
+ const classes = useStyles();
+ const { profile } = useContext(UserContext);
+ const { location } = useLocationContext();
+ const [mainError, setMainError] = useState({});
+ const [adressModal, setAddressModal] = useState(false);
+ const [showDetail, setShowDetail] = useState(false);
+ const [addressInfo, setAddressInfo] = useState(null);
+ const [mutate, { loading: loadingDelete }] = useMutation(DELETE_ADDRESS, {
+ onCompleted,
+ onError,
+ });
+
+ useEffect(() => {
+ if (location && !addressInfo) {
+ currentLocation();
+ }
+ }, [location]);
+
+ useEffect(() => {
+ if (profile?.addresses < 1) {
+ toggleShowDetail();
+ } else {
+ setSelectedAddress(profile?.addresses[0]);
+ }
+ }, [profile]);
+
+ const currentLocation = useCallback(() => {
+ if (location)
+ setAddressInfo({
+ lat: location?.latitude ?? LATITUDE,
+ lng: location?.longitude ?? LONGITUDE,
+ location: location?.deliveryAddress ?? "",
+ });
+ }, [location]);
+
+ const toggleAddressModal = useCallback(() => {
+ setAddressModal((prev) => !prev);
+ setShowDetail((prev) => {
+ if (prev) return prev;
+ else return true;
+ });
+ }, []);
+
+ const toggleShowDetail = useCallback(() => {
+ setShowDetail((prev) => !prev);
+ }, []);
+
+ const editAddress = useCallback((item) => {
+ const coordinates = {
+ lat: parseFloat(item?.location.coordinates[1]) ?? null,
+ lng: parseFloat(item?.location.coordinates[0]) ?? null,
+ };
+ setAddressInfo({
+ ...coordinates,
+ id: item._id,
+ location: item.deliveryAddress,
+ detail: item.details,
+ label: item.label || "Home",
+ });
+ toggleShowDetail();
+ }, []);
+
+ function onCompleted() {
+ setMainError({
+ message: "Address Removed!",
+ });
+ }
+
+ function onError(error) {
+ console.log(error);
+ setMainError({
+ type: "error",
+ message: `An error occured. Please try again. ${error}`,
+ });
+ }
+
+ const toggleSnackbar = useCallback(() => {
+ setTimeout(() => {
+ setMainError({});
+ }, 200);
+ }, []);
+
+ return (
+
+
+ {isProfile ? (
+
+
+ {showDetail ? (
+
+ ) : (
+ <>
+
+ {profile?.addresses?.map((item, index) => {
+ const isSelected = item._id === selectedAddress?._id;
+ return (
+
+
+ {
+ setSelectedAddress(item);
+ setMainError({
+ type: "success",
+ message: "Address Selected",
+ });
+ close && close();
+ }}
+ className={clsx(
+ classes.width100,
+ classes.deliveryPaperProfile
+ )}
+ >
+
+
+
+
+ {item.deliveryAddress}
+
+
+
+
+
+ {
+ e.preventDefault();
+ editAddress(item);
+ }}
+ >
+
+
+
+ {
+ e.preventDefault();
+ deleteId.current = item._id;
+ mutate({ variables: { id: item._id } });
+ }}
+ >
+ {loadingDelete &&
+ deleteId.current === item._id ? (
+
+ ) : (
+
+ )}
+
+
+
+
+ );
+ })}
+
+
+
+ {!showDetail && (
+ {
+ e.preventDefault();
+ currentLocation();
+ toggleAddressModal();
+ }}
+ >
+
+ +
+
+
+ )}
+
+ >
+ )}
+
+
+ ) : (
+
+
+
+
+
+
+
+
+
+
+ Delivery Details
+
+
+
+
+ {t("deliveryAddress")}
+
+ {!showDetail && (
+ {
+ e.preventDefault();
+ currentLocation();
+ toggleAddressModal();
+ }}
+ >
+
+ + Add address
+
+
+ )}
+
+ {showDetail ? (
+
+ ) : (
+
+ {profile?.addresses?.map((item, index) => {
+ const isSelected = item._id === selectedAddress?._id;
+ return (
+
+ setSelectedAddress(item)}
+ className={clsx(
+ classes.width100,
+ classes.deliveryPaper
+ )}
+ >
+
+
+
+ {
+ e.preventDefault();
+ editAddress(item);
+ }}
+ >
+
+
+
+ {
+ e.preventDefault();
+ deleteId.current = item._id;
+ mutate({ variables: { id: item._id } });
+ }}
+ >
+ {loadingDelete &&
+ deleteId.current === item._id ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+ {item.deliveryAddress}
+
+
+
+ {item.details}
+
+
+
+
+ );
+ })}
+
+ )}
+
+
+ )}
+
+
+
+ );
+}
+
+export default React.memo(DeliveryCard);
diff --git a/enatega-multivendor-web/src/components/Checkout/OrderOption.js b/enatega-multivendor-web/src/components/Checkout/OrderOption.js
new file mode 100644
index 0000000..292fae8
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/OrderOption.js
@@ -0,0 +1,470 @@
+import {
+ Box,
+ Typography,
+ useTheme,
+ Dialog,
+ useMediaQuery,
+ IconButton,
+ Button,
+ Divider,
+} from "@mui/material";
+import React, { useState } from "react";
+import useStyle from "./styles";
+import CloseIcon from "@mui/icons-material/Close";
+import moment from "moment";
+import { useTranslation } from 'react-i18next';
+import Calendar from "react-calendar";
+import "react-calendar/dist/Calendar.css";
+
+
+function OrderOption(props) {
+ const theme = useTheme();
+ const classes = useStyle();
+ const {
+ setIsPickUp,
+ selectedDate,
+ handleDateChange,
+ setOrderOptionModal,
+ orderOptionModal,
+ isPickUp,
+ } = props;
+ const [timeType, setTimeType] = useState("PM");
+ const { t } = useTranslation()
+ const extraSmall = useMediaQuery(theme.breakpoints.down("md"));
+ const [calModal, setCalModal] = useState(false);
+ const [timeModal, setTimeModal] = useState(false);
+ const [minutes, setMinutes] = useState(new Date().getMinutes());
+ const [hours, setHours] = useState(new Date().getHours() % 12 || 12);
+ const [date, setDate] = useState(selectedDate);
+
+ const toggleCalModal = () => {
+ setCalModal((prev) => !prev);
+ };
+ const toggleTimeModal = () => {
+ setTimeModal((prev) => !prev);
+ };
+
+ return (
+ <>
+ setOrderOptionModal((prev) => !prev)}
+ open={orderOptionModal}
+ scroll="body"
+ PaperProps={{
+ style: {
+ borderRadius: 30,
+ overflowY: "visible",
+ padding: theme.spacing(4),
+ },
+ }}
+ >
+
+ setOrderOptionModal((prev) => !prev)}
+ className={classes.closeContainer}
+ >
+
+
+
+
+ {
+ setIsPickUp(false);
+ }}
+ display="flex"
+ justifyContent="center"
+ alignItems="center"
+ style={{
+ backgroundColor: !isPickUp
+ ? theme.palette.common.black
+ : "transparent",
+
+ padding: 10,
+ borderRadius: 20,
+ flexBasis: "50%",
+ }}
+ >
+
+ {t('deliver')}
+
+
+ {
+ setIsPickUp(true);
+ }}
+ display="flex"
+ justifyContent="center"
+ alignItems="center"
+ style={{
+ backgroundColor: isPickUp
+ ? theme.palette.common.black
+ : "transparent",
+ padding: 10,
+ flexBasis: "50%",
+ borderRadius: 20,
+ }}
+ >
+
+ {t('pickup')}
+
+
+
+
+
+ {moment(selectedDate).format("HH:mm A")}
+
+
+
+ {moment(selectedDate).format("DD-mm-yyyy")}
+
+
+
+ {
+ toggleCalModal();
+ setOrderOptionModal((prev) => !prev);
+ }}
+ >
+
+ {t('edit')}
+
+
+
+
+
+
+ >
+ );
+}
+
+function CalendarComponent({
+ calModal,
+ toggleCalModal,
+ handleDateChange,
+ selectedDate,
+ toggleTimeModal,
+ setDate,
+}) {
+ const theme = useTheme();
+ const { t } = useTranslation()
+ const extraSmall = useMediaQuery(theme.breakpoints.down("md"));
+ const classes = useStyle();
+ return (
+
+
+
+
+
+
+
+ {
+ setDate(new Date(e).getDate())
+ }}
+ value={selectedDate}
+ tileClassName={classes.tile}
+ className={classes.cal}
+ />
+
+
+ {
+ toggleCalModal();
+ toggleTimeModal();
+ }}
+ >
+
+ {t('time')}
+
+
+
+
+ );
+}
+
+function TimeComponent({
+ timeModal,
+ handleDateChange,
+ toggleTimeModal,
+ setTimeType,
+ timeType,
+ minutes,
+ hours,
+ setMinutes,
+ setHours,
+ date,
+}) {
+ const theme = useTheme();
+ const { t } = useTranslation()
+ const extraSmall = useMediaQuery(theme.breakpoints.down("md"));
+ const classes = useStyle();
+ const handleHours = (e) => {
+ const regex = /^[0-9\b]+$/;
+ if (
+ (e.target.value.match(regex) && e.target.value <= 11) ||
+ e.target.value.length < 1
+ ) {
+ setHours(e.target.value);
+ }
+ };
+ const handleMinutes = (e) => {
+ const regex = /^[0-9\b]+$/;
+ if (
+ (e.target.value.match(regex) && e.target.value <= 59) ||
+ e.target.value.length < 1
+ ) {
+ setMinutes(e.target.value);
+ }
+ };
+
+ const handleDate = (h, m) => {
+ if (timeType === "PM") {
+ h = parseInt(h) + 12;
+ }
+ const newDate = new Date(date);
+ newDate.setHours(h);
+ newDate.setMinutes(m);
+ handleDateChange(newDate);
+ };
+ return (
+
+
+
+
+
+
+
+ {t('selectTime')}
+
+
+
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+ setTimeType("AM")}
+ >
+
+ {t('am')}
+
+
+ setTimeType("PM")}
+ >
+
+ {t('pm')}
+
+
+
+
+
+ {
+ handleDate(hours, minutes);
+ toggleTimeModal();
+ }}
+ >
+
+ {t('set')}
+
+
+
+
+ );
+}
+export default React.memo(OrderOption);
diff --git a/enatega-multivendor-web/src/components/Checkout/PaymentCard.js b/enatega-multivendor-web/src/components/Checkout/PaymentCard.js
new file mode 100644
index 0000000..fcf7177
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/PaymentCard.js
@@ -0,0 +1,232 @@
+import {
+ Box,
+ Button,
+ ButtonBase,
+ CircularProgress,
+ Container,
+ Divider,
+ Paper,
+ Radio,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import React, { useContext } from "react";
+import { ReactComponent as CodIcon } from "../../assets/icons/bill_cash.svg";
+import { ReactComponent as MastercardIcon } from "../../assets/icons/master_card.svg";
+import { ReactComponent as PayPalIcon } from "../../assets/icons/paypal_icon.svg";
+import { ReactComponent as VisaIcon } from "../../assets/icons/visa_icon.svg";
+import { ReactComponent as Payment } from "../../assets/icons/payment_method.svg";
+import useStyles from "./styles";
+import UserContext from "../../context/User";
+import ConfigurationContext from "../../context/Configuration";
+import { useTranslation } from "react-i18next";
+
+/*const PAYMENT_OPTIONS = [
+ {
+ id: 0,
+ payment: "STRIPE",
+ label: "Credit / Debit Card",
+ icon: ,
+ icon1: ,
+ },
+ {
+ id: 1,
+ payment: "PAYPAL",
+ label: "Paypal",
+ icon: ,
+ },
+ {
+ id: 2,
+ payment: "COD",
+ label: "Cash",
+ icon: ,
+ },
+];*/
+
+function PaymentCard({
+ paymentMethod,
+ setPaymentMethod,
+ validateOrder,
+ onPayment,
+ loading,
+ calculateTotal,
+}) {
+ const { t } = useTranslation();
+ const PAYMENT_OPTIONS = [
+ {
+ id: 0,
+ payment: "STRIPE",
+ label: t("creditDebitCard"),
+ icon: ,
+ icon1: ,
+ },
+ {
+ id: 1,
+ payment: "PAYPAL",
+ label: t("paypal"),
+ icon: ,
+ },
+ {
+ id: 2,
+ payment: "COD",
+ label: t("cash"),
+ icon: ,
+ },
+ ];
+ const theme = useTheme();
+ const classes = useStyles();
+ const { cart } = useContext(UserContext);
+ const configuration = useContext(ConfigurationContext);
+
+ return (
+ <>
+
+
+
+
+
+
+
+ {t("paymentMethod")}
+
+
+
+
+ {PAYMENT_OPTIONS.map((item, index) => (
+ setPaymentMethod(item)}
+ >
+
+ setPaymentMethod(item)}
+ />
+
+
+ {item.label}
+
+
+ {item.icon}
+ {item.icon1 && (
+ <>
+
+ {item.icon1}
+ >
+ )}
+
+
+
+
+ ))}
+
+
+
+
+
+
+ {`${configuration.currencySymbol} ${calculateTotal()}`}
+
+
+ {cart && cart.length}
+
+ {
+ if (validateOrder()) onPayment();
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ {t("orderBtn")}
+
+ )}
+
+
+ >
+ );
+}
+
+export default PaymentCard;
diff --git a/enatega-multivendor-web/src/components/Checkout/PersonalCard.js b/enatega-multivendor-web/src/components/Checkout/PersonalCard.js
new file mode 100644
index 0000000..c966a7c
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/PersonalCard.js
@@ -0,0 +1,179 @@
+import {
+ Box,
+ Button,
+ Container,
+ Paper,
+ Typography,
+ useTheme,
+ Divider,
+} from "@mui/material";
+import React, { useContext } from "react";
+import UserContext from "../../context/User";
+import useStyle from "./styles";
+import LocationOnIcon from "@mui/icons-material/LocationOn";
+import { useTranslation } from 'react-i18next';
+
+function PersonalCard({ toggleModal, location }) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyle();
+ const { profile } = useContext(UserContext);
+
+ return (
+ <>
+
+
+
+
+
+
+
+ {t('contactInfo')}
+
+
+
+
+
+
+
+
+ {t('name')} :
+
+
+ {profile?.name ?? ".."}
+
+
+
+
+ {t('email')} :
+
+
+ {profile?.email ?? ""}
+
+
+
+
+ {t('phone')} :
+
+
+ {profile?.phone ?? ""}
+
+
+
+
+
+ {t('address')}:
+
+
+ {location?.deliveryAddress.split(",")[0] ?? ""}
+
+
+
+
+
+ {t('changeAddress')}
+
+
+
+
+
+
+ >
+ );
+}
+
+export default React.memo(PersonalCard);
diff --git a/enatega-multivendor-web/src/components/Checkout/Voucher.js b/enatega-multivendor-web/src/components/Checkout/Voucher.js
new file mode 100644
index 0000000..1ecd2a5
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/Voucher.js
@@ -0,0 +1,125 @@
+import {
+ Box,
+ Dialog,
+ IconButton,
+ Typography,
+ useMediaQuery,
+ useTheme,
+ Grid,
+ TextField,
+ Button,
+ CircularProgress,
+} from "@mui/material";
+import React from "react";
+import useStyles from "./styles";
+import CloseIcon from "@mui/icons-material/Close";
+import { ReactComponent as VoucherImage } from "../../assets/images/voucher.svg";
+import { useTranslation } from 'react-i18next';
+
+function Voucher({
+ isVisible,
+ toggleModal,
+ couponError,
+ couponText,
+ setCouponText,
+ couponLoading,
+ mutateVoucher,
+}) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("md"));
+ const { t } = useTranslation()
+
+ return (
+
+
+
+
+
+
+
+
+ {t('applyAVoucher')}
+
+
+
+
+
+
+ {
+ setCouponText(e.target.value);
+ }}
+ InputProps={{
+ className: classes.inputprops,
+ }}
+ InputLabelProps={{
+ style: {
+ fontSize: "14px",
+ },
+ }}
+ />
+
+
+
+
+
+ {couponLoading ? (
+
+ ) : (
+
+ {t('apply')}
+
+ )}
+
+
+
+
+
+ );
+}
+
+export default Voucher;
diff --git a/enatega-multivendor-web/src/components/Checkout/index.js b/enatega-multivendor-web/src/components/Checkout/index.js
new file mode 100644
index 0000000..134ec23
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/index.js
@@ -0,0 +1,7 @@
+import CartItemCard from "./CartItemCard";
+import DeliveryCard from "./DeliveryCard";
+import PaymentCard from "./PaymentCard";
+import PersonalCard from "./PersonalCard";
+import OrderOption from "./OrderOption";
+
+export { CartItemCard, DeliveryCard, PaymentCard, PersonalCard, OrderOption };
diff --git a/enatega-multivendor-web/src/components/Checkout/styles.js b/enatega-multivendor-web/src/components/Checkout/styles.js
new file mode 100644
index 0000000..b4c3937
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Checkout/styles.js
@@ -0,0 +1,313 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ "& .MuiButton-contained": {
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ },
+ flex: {
+ flex: 1,
+ },
+ width100: {
+ width: "100%",
+ },
+ PH1: {
+ padding: theme.spacing(0, 1),
+ },
+ PB2: {
+ paddingBottom: theme.spacing(2),
+ },
+ PT2: {
+ paddingTop: theme.spacing(2),
+ },
+ MV1: {
+ margin: theme.spacing(1, 0),
+ },
+ MV2: {
+ margin: theme.spacing(2, 0),
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ wieght300: {
+ fontWeight: 300,
+ },
+ disableText: {
+ color: theme.palette.text.disabled,
+ },
+ boldText: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ deliveryPaper: {
+ background: theme.palette.common.white,
+ boxShadow: theme.shadows[0],
+ cursor: "pointer",
+ },
+ shadow: {
+ boxShadow: theme.shadows[0],
+ },
+ deliveryPaperProfile: {
+ background: theme.palette.primary.main,
+ borderRadius: 10,
+ cursor: "pointer",
+ border: "none",
+ },
+ containerBox: {
+ background: theme.palette.common.white,
+ padding: theme.spacing(2, 0),
+ },
+
+ redBox: {
+ display: "flex",
+ alignItems: "center",
+ justifyContent: "center",
+ width: "32px",
+ height: "32px",
+ backgroundColor: theme.palette.primary.main,
+ },
+ totalSmall: {
+ fontSize: ".7rem",
+ display: "flex",
+ alignItems: "flex-end",
+ },
+ textContainer: {
+ minWidth: "75%",
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ },
+ tipRow: {
+ "& .MuiButton-root.MuiButton-outlined": {
+ borderRadius: "0px",
+ margin: theme.spacing(0, 1),
+ backgroundColor: "transparent",
+ "& .MuiButton-label": {
+ color: theme.palette.text.secondary,
+ },
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ color: theme.palette.text.primary,
+ "& .MuiButton-label": {
+ color: theme.palette.primary.main,
+ },
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ "& .MuiButton-root.MuiButton-contained": {
+ borderRadius: "0px",
+ margin: theme.spacing(0, 1),
+ backgroundColor: theme.palette.primary.main,
+ "& .MuiButton-label": {
+ color: theme.palette.text.primary,
+ },
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ },
+
+ inputprops: {
+ ...theme.typography.subtitle1,
+ backgroundColor: theme.palette.grey[200],
+ borderRadius: 30,
+ },
+ couponBtn: {
+ padding: theme.spacing(1, 0),
+ alignSelf: "flex-end",
+ width: 200,
+ borderRadius: 20,
+ margin: theme.spacing(2, 0),
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ addressBox: {
+ boxShadow: theme.shadows[5],
+ paddingBottom: theme.spacing(2),
+ },
+ deliveryBox: {
+ border: `1px solid ${theme.palette.grey[300]}`,
+ },
+ selectedDeliveryBox: {
+ borderColor: theme.palette.primary.main,
+ },
+ wieght600: {
+ fontWeight: 6000,
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ },
+ paymentInfoBtn: {
+ width: "100%",
+ height: "100%",
+ justifyContent: "space-between",
+ padding: theme.spacing(1),
+ marginTop: theme.spacing(4),
+ },
+ link: {
+ textDecoration: "none",
+ },
+ saveBtn: {
+ backgroundColor: theme.palette.secondary.darkest,
+ width: 120,
+ borderRadius: 10,
+ padding: 0,
+ opacity: 1,
+ transition: "opacity 0.3s",
+ "&:hover": {
+ backgroundColor: theme.palette.secondary.darkest,
+ opacity: 0.7,
+ },
+ },
+ largeText: {
+ fontSize: "1.775rem",
+ fontWeight: 800,
+ },
+ infoText: {
+ ...theme.typography.body1,
+ color: theme.palette.text.disabled,
+ },
+ subtotalText: {
+ ...theme.typography.body1,
+ fontSize: "0.875rem",
+ },
+
+ mobileCartText: {
+ width: "130px",
+ fontWeight: 100,
+ },
+ whiteText: {
+ color: theme.palette.common.white,
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ textBold: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ mediumFont: {
+ fontSize: "1rem",
+ },
+ smallFont: {
+ fontSize: "0.875rem",
+ },
+ checkoutText: {
+ ...theme.typography.h6,
+ fontWeight: 700,
+ fontSize: "0.875rem",
+ },
+ totalText: {
+ ...theme.typography.body1,
+ fontSize: "0.875rem",
+ fontWeight: 700,
+ color: theme.palette.text.secondary,
+ },
+ itemTextStyle: {
+ ...theme.typography.body1,
+ color: theme.palette.primary.main,
+ fontWeight: 700,
+ },
+ optionTextStyle: {
+ ...theme.typography.body1,
+ color: theme.palette.primary.main,
+ },
+ border: {
+ borderBottom: `1px solid ${theme.palette.grey[500]}`,
+ },
+ darkGreen: {
+ color: theme.palette.button.main,
+ },
+ closeContainer: {
+ position: "absolute",
+ background: "black",
+ top: theme.spacing(-1),
+ right: theme.spacing(-1),
+ "&:hover": {
+ backgroundColor: "black",
+ },
+ },
+ addressBtn: {
+ padding: theme.spacing(1, 0),
+ alignSelf: "flex-end",
+ width: 200,
+ borderRadius: 20,
+ margin: theme.spacing(2, 0),
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ timeContainer: {
+ backgroundColor: theme.palette.grey[200],
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ padding: "20px",
+ marginTop: "10px",
+ marginBottom: "10px",
+ //marginRight: "50px",
+ borderRadius: 20,
+ flexDirection: "column",
+ },
+ divider: {
+ backgroundColor: theme.palette.common.black,
+ width: "85%",
+ height: "0.5px",
+ },
+ btn: {
+ width: 120,
+ borderRadius: 20,
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ whiteBox: {
+ background: theme.palette.common.white,
+ borderRadius: 10,
+ padding: 10,
+ },
+ textInput: {
+ border: "none",
+ width: "70px",
+ textAlign: "center",
+ height: "70px",
+ fontSize: "3rem",
+ },
+ cal: {
+ background: theme.palette.grey[200],
+ borderRadius: 10,
+ color: "black",
+ "& .react-calendar__tile--active": {
+ background: theme.palette.primary.main,
+ color: "black",
+ borderRadius: 10,
+ },
+ "& .react-calendar__navigation button": {
+ fontWeight: 700,
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/FlashMessage/index.js b/enatega-multivendor-web/src/components/FlashMessage/index.js
new file mode 100644
index 0000000..d3ed31e
--- /dev/null
+++ b/enatega-multivendor-web/src/components/FlashMessage/index.js
@@ -0,0 +1,25 @@
+import React from "react";
+import Snackbar from "@mui/material/Snackbar";
+import { IconButton } from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
+
+function FlashMessage(props) {
+ return (
+
+
+
+ }
+ >
+
+ );
+}
+
+export default FlashMessage;
diff --git a/enatega-multivendor-web/src/components/Footer/Footer.js b/enatega-multivendor-web/src/components/Footer/Footer.js
new file mode 100644
index 0000000..e1c4b19
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Footer/Footer.js
@@ -0,0 +1,257 @@
+import {
+ Box,
+ Divider,
+ Typography,
+ Grid,
+ useTheme,
+ useMediaQuery,
+} from "@mui/material";
+import React, { useEffect } from "react";
+import { Link as RouterLink, useLocation } from "react-router-dom";
+import TwitterIcon from "@mui/icons-material/Twitter";
+import GitHubIcon from "@mui/icons-material/GitHub";
+import FacebookIcon from "@mui/icons-material/Facebook";
+import InstagramIcon from "@mui/icons-material/Instagram";
+import LinkedInIcon from "@mui/icons-material/LinkedIn";
+import { useTranslation } from "react-i18next";
+
+import useStyles from "./styles";
+
+function Footer() {
+ const { t } = useTranslation();
+ const classes = useStyles();
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+ const location = useLocation();
+
+ const redirectHandler = (link) => {
+ window.open(link, "_blank");
+ };
+
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, [location.pathname]);
+
+ const handleButtonClick = () => {
+ try {
+ window.scrollTo({ top: 0, behavior: 'smooth' });
+ } catch (error) {
+ console.error("Smooth scroll failed", error);
+ // Fallback to instant scroll
+ window.scrollTo(0, 0);
+ }
+ };
+
+
+ return (
+
+
+
+
+ Enatega
+
+
+ {t("footerText")}
+
+
+
+
+
+
+ {t("linksTitle")}
+
+
+
+ {t("footerLinkHome")}
+
+
+
+
+ {t("footerLinkPP")}
+
+
+
+
+ {t("footerLinkTC")}
+
+
+
+
+
+ {t("footerEndText")}
+
+
+
+
+
+ {t("followUs")}
+
+
+ redirectHandler("https://www.facebook.com/enatega/")}
+ >
+
+
+ redirectHandler("https://twitter.com/NinjasCode1")}
+ >
+
+
+
+ redirectHandler("https://www.instagram.com/enatega.nb/")
+ }
+ >
+
+
+
+ redirectHandler("https://www.linkedin.com/company/14583783")
+ }
+ >
+
+
+
+ redirectHandler(
+ "https://github.com/Ninjas-Code-official/Marketplace-Food-Delivery-Solution"
+ )
+ }
+ >
+
+
+
+
+ {t("poweredBy")}{" "}
+
+ redirectHandler("https://ninjascode.com/")}
+ style={{
+ display: "inline-block",
+ cursor: "pointer",
+ marginTop: "30px",
+ }}
+ >
+
+ ninjascode
+
+
+
+
+
+ {t("footerEndText")}
+
+
+
+ );
+}
+
+export default Footer;
diff --git a/enatega-multivendor-web/src/components/Footer/styles.js b/enatega-multivendor-web/src/components/Footer/styles.js
new file mode 100644
index 0000000..ef7db04
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Footer/styles.js
@@ -0,0 +1,26 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => {
+ return {
+ left: {
+ backgroundColor: theme.palette.common.black,
+ padding: "3rem",
+ borderRadius: 80,
+ [theme.breakpoints.down("md")]: {
+ padding: "3rem",
+ },
+ },
+ iconContainer: {
+ backgroundColor: theme.palette.common.black,
+ width: 40,
+ height: 40,
+ borderRadius: "50%",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ cursor: "pointer",
+ },
+ };
+});
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/Header/Header.js b/enatega-multivendor-web/src/components/Header/Header.js
new file mode 100644
index 0000000..30d4d2f
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/Header.js
@@ -0,0 +1,82 @@
+import { useMediaQuery, useTheme } from "@mui/material";
+import React, { useContext } from "react";
+import UserContext from "../../context/User";
+import DHeader from "./desktop.header";
+import Analytics from "../../utils/analytics";
+import { useTranslation } from 'react-i18next';
+
+const TITLE = "Enatega";
+const NAME = "...";
+/*const NAVITEMS = [
+ {
+ title: "My orders",
+ link: "/orders",
+ },
+ {
+ title: "Profile",
+ link: "/profile",
+ },
+ {
+ title: "Logout",
+ link: "/login",
+ },
+ {
+ title: "Settings",
+ link: "/settings",
+ },
+];*/
+const savedLanguage = localStorage.getItem('enatega-language');
+ console.log('Saved language in localStorage:', savedLanguage);
+function Header() {
+ const { t } = useTranslation();
+ const NAVITEMS = [
+ {
+ title: t('titleOrders'),
+ link: "/orders",
+ },
+ {
+ title: t('titleProfile'),
+ link: "/profile",
+ },
+ {
+ title: t('titleSettings'),
+ link: "/settings",
+ },
+ {
+ title: t('titleLogout'),
+ link: "/login",
+ },
+ ];
+ const theme = useTheme();
+ const { logout, loadingProfile, profile, cartCount } =
+ useContext(UserContext);
+ const mobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const [anchorEl, setAnchorEl] = React.useState(null);
+
+ const handleOpen = (event) => {
+ setAnchorEl(event.currentTarget);
+ };
+
+ const handleClose = async (route) => {
+ if (route === t('titleLogout')) {
+ logout();
+ await Analytics.track(Analytics.events.USER_LOGGED_OUT);
+ await Analytics.identify(null, null);
+ }
+ setAnchorEl(null);
+ };
+ return (
+
+ );
+}
+
+export default React.memo(Header);
diff --git a/enatega-multivendor-web/src/components/Header/LoginHeader/DesktopHeader.js b/enatega-multivendor-web/src/components/Header/LoginHeader/DesktopHeader.js
new file mode 100644
index 0000000..b26171f
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/LoginHeader/DesktopHeader.js
@@ -0,0 +1,74 @@
+import { Box, Divider } from "@mui/material";
+import AppBar from "@mui/material/AppBar";
+import Button from "@mui/material/Button";
+import Toolbar from "@mui/material/Toolbar";
+import Typography from "@mui/material/Typography";
+import React from "react";
+import { Link as RouterLink, useLocation } from "react-router-dom";
+import useStyle from "./styles";
+import { ReactComponent as Logo } from "../../../assets/images/logo.svg";
+import { useTheme } from "@emotion/react";
+import LocalMallIcon from "@mui/icons-material/LocalMall";
+import PersonIcon from "@mui/icons-material/Person";
+import { useTranslation } from "react-i18next";
+
+function LoginDesktopHeader({ title, showIcon, showCart = false }) {
+ const { t } = useTranslation();
+ const classes = useStyle();
+ const theme = useTheme();
+ const location = useLocation();
+ return (
+
+
+
+
+
+
+ {title}
+
+
+
+ {showIcon && (
+ <>
+
+
+
+
+
+ {t("loginBtn")}
+
+
+
+
+ >
+ )}
+ {showCart && (
+
+
+
+
+
+
+
+ )}
+
+
+
+ );
+}
+
+export default React.memo(LoginDesktopHeader);
diff --git a/enatega-multivendor-web/src/components/Header/LoginHeader/LoginHeader.js b/enatega-multivendor-web/src/components/Header/LoginHeader/LoginHeader.js
new file mode 100644
index 0000000..04bf933
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/LoginHeader/LoginHeader.js
@@ -0,0 +1,27 @@
+import React from "react";
+import { useLocation } from "react-router";
+import LoginDesktopHeader from "./DesktopHeader";
+
+const TITLE = "Enatega";
+
+const REGISTRATION_PATH = [
+ "/login",
+ "/new-login",
+ "/registration",
+ "/login-email",
+ "/forgot-password",
+ "/email-sent",
+ "/phone-number",
+ "/verify-email"
+];
+
+function Header({ showIcon = false }) {
+ const location = useLocation();
+ const showCart = !REGISTRATION_PATH.includes(location.pathname);
+
+ return (
+
+ );
+}
+
+export default React.memo(Header);
diff --git a/enatega-multivendor-web/src/components/Header/LoginHeader/MobileHeader.js b/enatega-multivendor-web/src/components/Header/LoginHeader/MobileHeader.js
new file mode 100644
index 0000000..83d2b94
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/LoginHeader/MobileHeader.js
@@ -0,0 +1,25 @@
+import { Box } from "@mui/material";
+import AppBar from "@mui/material/AppBar";
+import Toolbar from "@mui/material/Toolbar";
+import Typography from "@mui/material/Typography";
+import React from "react";
+import { Link as RouterLink } from "react-router-dom";
+import useStyles from "./styles";
+
+function LoginMobileHeader({ title, showCart }) {
+ const classes = useStyles();
+ return (
+
+
+
+
+
+ {title}
+
+
+
+
+ );
+}
+
+export default React.memo(LoginMobileHeader);
diff --git a/enatega-multivendor-web/src/components/Header/LoginHeader/styles.js b/enatega-multivendor-web/src/components/Header/LoginHeader/styles.js
new file mode 100644
index 0000000..7e01f5e
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/LoginHeader/styles.js
@@ -0,0 +1,41 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ flex: {
+ display: "flex",
+ minHeight: "64px",
+ },
+ toolbar: {
+ display: "flex",
+ justifyContent: "space-between",
+ backgroundColor: theme.palette.primary.light,
+ },
+ font700: {
+ fontWeight: 700,
+ },
+ ml: {
+ marginLeft: "8px",
+ },
+ userTitle: {
+ marginLeft: "8px",
+ textTransform: "uppercase",
+ },
+ linkDecoration: {
+ textDecoration: "none",
+ alignSelf: "center",
+ display: "flex",
+ flexDirection: "row",
+ alignItems: "center",
+ },
+ imageIcon: {
+ height: "50px",
+ width: "10px",
+ },
+ iconRoot: {
+ textAlign: "center",
+ height: "100%",
+ display: "inline-flex",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Header/desktop.header.js b/enatega-multivendor-web/src/components/Header/desktop.header.js
new file mode 100644
index 0000000..c0808b4
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/desktop.header.js
@@ -0,0 +1,167 @@
+import { Box, Divider, Menu, MenuItem, useTheme } from "@mui/material";
+import AppBar from "@mui/material/AppBar";
+import Button from "@mui/material/Button";
+import Toolbar from "@mui/material/Toolbar";
+import Typography from "@mui/material/Typography";
+import ExpandLessIcon from "@mui/icons-material/ExpandLess";
+import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
+import React from "react";
+import { Link as RouterLink, useLocation } from "react-router-dom";
+import useStyle from "./styles";
+import FavoriteIcon from "@mui/icons-material/Favorite";
+import { ReactComponent as PersonIcon } from "../../assets/icons/user.svg";
+import { ReactComponent as FavoriteBorderIcon } from "../../assets/icons/favourite.svg";
+import { ReactComponent as LocalMallIcon } from "../../assets/icons/cart.svg";
+
+import { ReactComponent as Logo } from "../../assets/images/logo.svg";
+
+function DHeader({
+ navitems,
+ title,
+ close,
+ open,
+ anchor,
+ name,
+ favLength = 0,
+ cartCount = 0,
+ mobile,
+}) {
+ const theme = useTheme();
+ const classes = useStyle();
+ const location = useLocation();
+ return (
+
+
+
+
+
+
+ {title}
+
+
+
+ open(event)}
+ >
+
+ {!mobile && (
+
+ {name}
+
+ )}
+
+ {anchor === null ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+ {favLength > 0 ? (
+
+ ) : (
+
+ )}
+
+
+ {cartCount && (
+ <>
+
+
+
+
+
+ {cartCount}
+
+
+
+ >
+ )}
+
+
+
+
+ );
+}
+
+export default React.memo(DHeader);
diff --git a/enatega-multivendor-web/src/components/Header/index.js b/enatega-multivendor-web/src/components/Header/index.js
new file mode 100644
index 0000000..8e9d7f2
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/index.js
@@ -0,0 +1,4 @@
+import Header from "./Header";
+import LoginHeader from "./LoginHeader/LoginHeader";
+
+export { Header, LoginHeader };
diff --git a/enatega-multivendor-web/src/components/Header/mobile.header.js b/enatega-multivendor-web/src/components/Header/mobile.header.js
new file mode 100644
index 0000000..5478c70
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/mobile.header.js
@@ -0,0 +1,95 @@
+import {
+ Box,
+ Divider,
+ Menu,
+ MenuItem,
+ MenuList,
+ useTheme,
+} from "@mui/material";
+import AppBar from "@mui/material/AppBar";
+import Button from "@mui/material/Button";
+import Toolbar from "@mui/material/Toolbar";
+import Typography from "@mui/material/Typography";
+import React from "react";
+import { Link as RouterLink } from "react-router-dom";
+import CartIcon from "../../assets/icons/CartIcon";
+import HeartIcon from "../../assets/icons/HeartIcon";
+import HeartActiveIcon from "../../assets/icons/HeartActiveIcon";
+import ProfileIcon from "../../assets/icons/ProfileIcon";
+import useStyles from "./styles";
+
+function MHeader({
+ navitems,
+ title,
+ close,
+ open,
+ anchor,
+ favLength = 0,
+ cartCount = 0,
+}) {
+ const theme = useTheme();
+ const classes = useStyles();
+ return (
+
+
+ open(event)}
+ >
+
+
+
+
+
+ {title}
+
+
+
+
+
+ {favLength > 0 ? : }
+
+
+ {cartCount && (
+
+
+
+ )}
+
+
+
+ );
+}
+
+export default React.memo(MHeader);
diff --git a/enatega-multivendor-web/src/components/Header/styles.js b/enatega-multivendor-web/src/components/Header/styles.js
new file mode 100644
index 0000000..dfcc8cb
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Header/styles.js
@@ -0,0 +1,62 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ flex: {
+ display: "flex",
+ minHeight: "64px",
+ },
+ toolbar: {
+ display: "flex",
+ justifyContent: "space-between",
+ backgroundColor: theme.palette.primary.light,
+ borderBottomLeftRadius: 15,
+ borderBottomRightRadius: 15,
+ },
+ font700: {
+ fontWeight: 700,
+ },
+ ml: {
+ marginLeft: "8px",
+ },
+ userTitle: {
+ marginLeft: "8px",
+ textTransform: "uppercase",
+ },
+ menu: {
+ marginTop: theme.spacing(3),
+ },
+ menuItem: {
+ padding: "14px 40px",
+ width: "100%",
+ borderTop: "1px solid #737373",
+ "& .MuiTouchRipple-root span": {
+ backgroundColor: "rgba(0,0,0,0.3)",
+ },
+ },
+ linkDecoration: {
+ textDecoration: "none",
+ alignSelf: "center",
+ display: "flex",
+ flexDirection: "row",
+ alignItems: "center",
+ },
+ cartText: {
+ marginLeft: 2,
+ fontWeight: 700,
+ },
+ imageIcon: {
+ height: "100%",
+ display: "inline-flex",
+ backgroundColor: "red",
+ },
+ iconRoot: {
+ textAlign: "center",
+ height: "50px",
+ width: "50px",
+ },
+ icon: {
+ color: theme.palette.common.black,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/AppComponent/index.js b/enatega-multivendor-web/src/components/HomeScreen/AppComponent/index.js
new file mode 100644
index 0000000..e2fc6e7
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/AppComponent/index.js
@@ -0,0 +1,113 @@
+import React from "react";
+import {
+ Box,
+ Typography,
+ Button,
+ useTheme,
+ useMediaQuery,
+} from "@mui/material";
+import PlayStore from "../../../assets/images/play-store.png";
+import AppStore from "../../../assets/images/app-store.png";
+import Banner2 from "../../../assets/images/banner-2.png";
+import Banner1 from "../../../assets/images/banner-1.png";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+export default function AppComponent() {
+ const { t } = useTranslation()
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+ const medium = useMediaQuery(theme.breakpoints.down("lg"));
+ const classes = useStyles();
+ return (
+
+
+ APP
+
+
+
+ {t('putUsInYourPocket')}
+
+
+ {t('containerText')}
+
+ {medium && (
+
+
+
+
+
+
+
+
+ )}
+
+ }
+ variant="contained"
+ disableElevation
+ onClick={() =>
+ window.open(
+ "https://apps.apple.com/pk/app/enatega-multivendor/id1526488093",
+ "_blank"
+ )
+ }
+ >
+ Ios Store
+
+ }
+ onClick={() =>
+ window.open(
+ "https://play.google.com/store/apps/details?id=com.enatega.multivendor",
+ "_blank"
+ )
+ }
+ >
+ Play Store
+
+ {" "}
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/AppComponent/styles.js b/enatega-multivendor-web/src/components/HomeScreen/AppComponent/styles.js
new file mode 100644
index 0000000..61f1cb0
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/AppComponent/styles.js
@@ -0,0 +1,63 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ container: {
+ backgroundColor: theme.palette.primary.main,
+ minHeight: 300,
+ borderRadius: 40,
+ display: "flex",
+ zIndex: 999,
+ position: "relative",
+ },
+ fontContainer: {
+ fontWeight: 400,
+ marginTop: 10,
+ maxWidth: "340px",
+ fontSize: "15px",
+ marginRight: "2%",
+ },
+ btn: {
+ backgroundColor: theme.palette.button.main,
+ color: theme.palette.common.white,
+ "&:hover": {
+ backgroundColor: theme.palette.button.main,
+ },
+ },
+ img2: {
+ height: "auto",
+ maxWidth: "100%",
+ marginTop: "3rem",
+ width: 220,
+ },
+ img1: {
+ maxWidth: "100%",
+ height: "auto",
+ width: 220,
+ },
+ bgText: {
+ position: "absolute",
+ top: -130,
+ left: -30,
+ fontSize: 150,
+ fontWeight: 500,
+
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ zIndex: -99999,
+ },
+ bgTextSmall: {
+ position: "absolute",
+ top: -70,
+ left: -20,
+ fontSize: 100,
+ fontWeight: 500,
+
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ zIndex: -99999,
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/Blogs/index.js b/enatega-multivendor-web/src/components/HomeScreen/Blogs/index.js
new file mode 100644
index 0000000..2b2f286
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/Blogs/index.js
@@ -0,0 +1,154 @@
+import React from "react";
+import {
+ Box,
+ Divider,
+ Typography,
+ Grid,
+ Button,
+ useTheme,
+ useMediaQuery,
+} from "@mui/material";
+import Blog1 from "../../../assets/images/blog1.png";
+import Blog2 from "../../../assets/images/blog2.png";
+import { useTranslation } from "react-i18next";
+
+export default function Blogs() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("md"));
+ return (
+
+
+
+
+
+
+
+
+
+
+ window.open("https://medium.com/enatega", "_blank")}
+ variant="contained"
+ disableElevation
+ >
+ {t("readAll")}
+
+
+
+
+ );
+}
+
+function BlogComponent({ title, desc }) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+
+ return (
+
+
+
+
+
+
+
+
+ {title}
+
+
+
+
+ {desc}
+
+
+
+
+
+ window.open("https://medium.com/enatega", "_blank")
+ }
+ >
+ {t("readMore")}
+
+
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/CaseStudy/index.js b/enatega-multivendor-web/src/components/HomeScreen/CaseStudy/index.js
new file mode 100644
index 0000000..e334b2a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/CaseStudy/index.js
@@ -0,0 +1,129 @@
+import React from "react";
+import Curve from "../../../assets/images/curve.png";
+import EasyEats from "../../../assets/images/easy-eats.png";
+
+import {
+ Box,
+ Typography,
+ Button,
+ useTheme,
+ useMediaQuery,
+} from "@mui/material";
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ bgText: {
+ position: "absolute",
+ bottom: -90,
+ right: 0,
+ fontSize: 80,
+ fontWeight: 500,
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+ bgTextSmall: {
+ position: "absolute",
+ bottom: -100,
+ right: 0,
+ fontSize: 30,
+ fontWeight: 500,
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+}));
+
+export default function CaseStudy() {
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("md"));
+ const classes = useStyle();
+
+ return (
+
+
+
+ Case Study
+
+
+
+
+
+ Easy Eats
+
+
+ We bring great food to your dorm.
+
+
+
+
+ window.open(
+ "https://ninjascode.com/Portfolio/Easyeats/",
+ "_blank"
+ )
+ }
+ >
+ Read Case Study
+
+
+
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/CategoryCards/index.js b/enatega-multivendor-web/src/components/HomeScreen/CategoryCards/index.js
new file mode 100644
index 0000000..c0f4da4
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/CategoryCards/index.js
@@ -0,0 +1,136 @@
+import {
+ Typography,
+ Box,
+ Button,
+ useTheme,
+ useMediaQuery,
+} from "@mui/material";
+import useStyle from "./styles";
+import AppStore from "../../../assets/images/AppVector.png";
+import Vector from "../../../assets/images/Vector.png";
+import Demo from "../../../assets/images/demo.png";
+import { useTranslation } from "react-i18next";
+
+export default function CategoryCards({
+ title,
+ description,
+ image,
+ web,
+ link,
+ isMobile,
+ android,
+ ios,
+}) {
+ const { t } = useTranslation();
+ const classes = useStyle();
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+ return (
+
+ {!web ? (
+
+ ) : (
+
+ )}
+
+
+
+ {title}
+
+
+
+
+
+
+ {description[0]}
+
+
+ {description[1]}
+
+
+
+ {isMobile ? (
+
+
+ }
+ variant="hidden"
+ disableElevation
+ onClick={() => window.open(android, "_blank")}
+ >
+ Play Store
+
+ }
+ variant="contained"
+ disableElevation
+ onClick={() => window.open(ios, "_blank")}
+ >
+ Ios Store
+
+
+ ) : (
+
+ }
+ onClick={() => window.open(link, "_blank")}
+ sx={{
+ width: 100,
+ fontSize: small ? 9 : 14,
+ p: "7px",
+ borderRadius: 3,
+ color: "black",
+ backgroundColor: theme.palette.common.white,
+ }}
+ >
+ {t("demo")}
+
+
+ )}
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/CategoryCards/styles.js b/enatega-multivendor-web/src/components/HomeScreen/CategoryCards/styles.js
new file mode 100644
index 0000000..fcc11ea
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/CategoryCards/styles.js
@@ -0,0 +1,57 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ container: {
+ width: "340px",
+ height: "300px",
+ display: "flex",
+ position: "relative",
+ flexDirection: "column",
+ justifyContent: "center",
+ marginBottom: "10px",
+ [theme.breakpoints.down("md")]: {
+ width: "260px",
+ },
+ },
+ top: {
+ height: "45%",
+ backgroundColor: theme.palette.common.white,
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "flex-end",
+ borderTopLeftRadius: 30,
+ borderTopRightRadius: 30,
+ },
+ bottom: {
+ height: "55%",
+ backgroundColor: "#3C8F7C",
+ display: "flex",
+ flexDirection: "column",
+ justifyContent: "center",
+ alignItems: "center",
+ borderBottomLeftRadius: 30,
+ borderBottomRightRadius: 30,
+ },
+ image: {
+ position: "absolute",
+ top: "-50%",
+ left: "50%",
+ padding: 0,
+ margin: 0,
+ transform: "translate(-50%, 30%)",
+ width: 90,
+ height: "auto",
+ },
+ imageWeb: {
+ position: "absolute",
+ top: "-50%",
+ left: "50%",
+ padding: 0,
+ margin: 0,
+ transform: "translate(-50%, 30%)",
+ width: "225px",
+ height: "auto",
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/Contact/index.js b/enatega-multivendor-web/src/components/HomeScreen/Contact/index.js
new file mode 100644
index 0000000..8e9f931
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/Contact/index.js
@@ -0,0 +1,308 @@
+import React, { useRef, useState } from "react";
+import {
+ Box,
+ Grid,
+ TextField,
+ Typography,
+ useTheme,
+ useMediaQuery,
+ Button,
+ CircularProgress,
+} from "@mui/material";
+import useStyles from "./styles";
+import { ReactComponent as WhatsAppIcon } from "../../../assets/icons/whatsapp.svg";
+import { ReactComponent as EmailIcon } from "../../../assets/icons/email.svg";
+import { ReactComponent as LocationOnIcon } from "../../../assets/icons/location.svg";
+import { gql, useMutation } from "@apollo/client";
+import { sendFormSubmission } from "../../../apollo/server";
+import FlashMessage from "../../FlashMessage";
+
+const SEND_FORM_SUBMISSION = gql`
+ ${sendFormSubmission}
+`;
+
+export default function Contact() {
+ const classes = useStyles();
+ const formRef = useRef(null);
+
+ const [nameError, setNameError] = useState("");
+ const [emailError, setEmailError] = useState("");
+ const [messageError, setMessageError] = useState("");
+ const [formMessage, setFormMessage] = useState("");
+ const [mutateForm, { loading: formLoading }] = useMutation(
+ SEND_FORM_SUBMISSION,
+ {
+ onError,
+ onCompleted,
+ }
+ );
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+
+ function clearContactFields() {
+ formRef.current["name"].value = "";
+ formRef.current["email"].value = "";
+ formRef.current["message"].value = "";
+ }
+
+ function onError(error) {
+ console.log("Error while submitting form:", error);
+ setFormMessage(error.message);
+ }
+
+ function onCompleted(data) {
+ console.log(
+ "Form Submission Successful Response:",
+ data.sendFormSubmission
+ );
+ clearContactFields();
+ setFormMessage(data.sendFormSubmission.message);
+ }
+
+ const validateEmailAddress = () => {
+ const emailValue = formRef.current["email"].value;
+ const reEmail = /\S+@\S+\.\S+/;
+ if (reEmail.test(emailValue)) {
+ setEmailError("");
+ return true;
+ }
+ setEmailError("Invalid Email format");
+ return false;
+ };
+
+ const validateName = () => {
+ if (!!formRef.current["name"].value) {
+ setNameError("");
+ return true;
+ }
+ setNameError("Name is not given");
+ return false;
+ };
+
+ const validateMessage = () => {
+ if (!!formRef.current["message"].value) {
+ setMessageError("");
+ return true;
+ }
+ setNameError("Message is not given");
+ return false;
+ };
+
+ const handleFormSubmission = () => {
+ const [name, email, message] = [
+ formRef.current["name"].value,
+ formRef.current["email"].value,
+ formRef.current["message"].value,
+ ];
+ if (validateEmailAddress() && validateName() && validateMessage()) {
+ mutateForm({
+ variables: {
+ name,
+ email,
+ message,
+ },
+ });
+ }
+ };
+
+ return (
+
+ setFormMessage("")}
+ />
+
+
+
+
+
+
+
+
+
+ (+92) 3339461270
+
+
+
+
+
+
+
+ sharan@ninjascode.com
+
+
+
+
+
+
+
+ Islamabad, Pakistan
+
+
+
+
+
+
+
+ Contact
+
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/Contact/styles.js b/enatega-multivendor-web/src/components/HomeScreen/Contact/styles.js
new file mode 100644
index 0000000..3600ec9
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/Contact/styles.js
@@ -0,0 +1,85 @@
+import makeStyles from "@mui/styles/makeStyles";
+import Info from "../../../assets/images/info-bg.png";
+
+const useStyle = makeStyles((theme) => ({
+ textField: {
+ width: "100%",
+ "& .MuiOutlinedInput-root": {
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ borderWidth: "1px",
+ },
+ },
+ },
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ bgText: {
+ position: "absolute",
+ bottom: 0,
+ left: 0,
+ fontSize: 80,
+ fontWeight: 500,
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+ bgTextSmall: {
+ position: "absolute",
+ top: 0,
+ right: 10,
+ fontSize: 50,
+ fontWeight: 500,
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+ textArea: {
+ "& .MuiOutlinedInput-root": {
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ borderWidth: "1px",
+ },
+ },
+ },
+ contactInfo: {
+ width: "80%",
+ margin: "auto",
+ backdropFilter: "blur(3px)",
+ borderRadius: "38px",
+ backgroundImage: `url(${Info})`,
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ },
+ margin: {
+ marginTop: "4rem",
+ marginBottom: "4rem",
+ },
+ contactIcon: {
+ display: "flex",
+ flexDirection: "column",
+ alignItems: "center",
+ },
+ iconContainer: {
+ backgroundColor: theme.palette.common.black,
+ width: 40,
+ height: 40,
+ borderRadius: "40%",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ bg: {
+ backgroundColor: "rgb(60 143 124 / 51%)",
+ width: "100%",
+ display: "flex",
+ flexDirection: "column",
+ justifyContent: "center",
+ alignItems: "center",
+ minHeight: "460px",
+ borderRadius: "38px",
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/FAQ/FAQ.js b/enatega-multivendor-web/src/components/HomeScreen/FAQ/FAQ.js
new file mode 100644
index 0000000..0ff9e16
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/FAQ/FAQ.js
@@ -0,0 +1,155 @@
+import {
+ Grid,
+ List,
+ ListItem,
+ ListItemIcon,
+ ListItemText,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import DoneIcon from "@mui/icons-material/Done";
+import React from "react";
+import useStyle from "./styles";
+
+function FAQ() {
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down('md'));
+ const classes = useStyle(mobile);
+ return (
+
+
+
+
+
+ Order food online from the best restaurants and shops on Enatega
+
+
+ Are you hungry? Had a long and busy day? Then Enatega is the right place for you! Enatega, offers you a long
+ and detailed list of the best restaurants near you . Whether it is a delicious Pizza, Burger, Japanese
+ or any kind of Fast Food you are craving, Enatega has an extensive roaster restaurants available for you to{" "}
+ order food online with home delivery .
+
+
+ What's new?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Frequently Asked Questions
+
+
+ How can I get enatega delivery?
+
+
+ To get enatega delivery, simply locate the restaurants near you by typing in your address, browse through a
+ variety of restaurants and cuisines, check menus and prices, choose your dishes and add them to the basket.
+ Now you only need to checkout and make the payment. Soon your delicious food will arrive at your doorstep!
+
+
+ How can I order food?
+
+
+ To order food delivery, follow these simple steps:
+
+ Find a restaurant. Enter your delivery address in the location form to see all the places that
+ deliver to your location. It can be your home, office, a hotel or even parks!
+ Choose your dishes. Browse the menu of the chosen restaurant, select your dishes and add them to
+ your basket. When you are done, press the "Checkout" button.
+ Checkout & Payment. Check your order, payment method selection and exact delivery address. Simply
+ follow the checkout instructions from there.
+ Delivery. We will send you an email and SMS confirming your order and delivery time. Sit back,
+ relax and wait for piping hot food to be conveniently delivered to you!.
+
+
+
+ Does enatega deliver 24 hours?
+
+
+ Yes, enatega in Pakistan delivers 24 hours. However, many restaurants may be unavailable for a late night
+ delivery. Please check which places in Pakistan deliver to you 24 hours by using your address.
+
+
+ Can you pay cash for enatega?
+
+
+ Yes, you can pay cash on delivery for enatega in Pakistan.
+
+
+ How can I pay enatega online?
+
+
+ You can pay online while ordering at enatega Pakistan by using a credit or debit card or PayPal.
+
+
+ Can I order enatega for someone else?
+
+
+ Yes, enatega Pakistan allows you to place an order for someone else. During checkout, just update the name
+ and delivery address of the person you're ordering for. Please keep in mind that if the delivery details are
+ not correct and the order cannot be delivered, we won't be able to process a refund.
+
+
+ How much does enatega charge for delivery?
+
+
+ Delivery fee charged by enatega in Pakistan depends on many operational factors, most of all - location and
+ a restaurant you are ordering from. You can always check the delivery fee while forming your order. Besides,
+ you can filter the restaurants by clicking on "Free Delivery" icon on the top of your restaurants listing.
+
+
+ What restaurants let you order online?
+
+
+ There are hundreds of restaurants on enatega Pakistan that let you order online. For example, KFC,
+ McDonald's, Pizza Hut, OPTP, Hardee's, Domino's, Kababjees and many-many more! In order to check all the
+ restaurants near you that deliver, just type in your address and discover all the available places.
+
+
+ What restaurants let you order online?
+
+
+ There are hundreds of restaurants on enatega Pakistan that let you order online. For example, KFC,
+ McDonald's, Pizza Hut, OPTP, Hardee's, Domino's, Kababjees and many-many more! In order to check all the
+ restaurants near you that deliver, just type in your address and discover all the available places.
+
+
+ Does enatega have minimum order?
+
+
+ Yes, many restaurants have a minimum order. The minimum order value depends on the restaurant you order from
+ and is indicated during your ordering process.
+
+
+
+
+ );
+}
+
+export default React.memo(FAQ);
diff --git a/enatega-multivendor-web/src/components/HomeScreen/FAQ/styles.js b/enatega-multivendor-web/src/components/HomeScreen/FAQ/styles.js
new file mode 100644
index 0000000..372c56a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/FAQ/styles.js
@@ -0,0 +1,42 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyle = makeStyles((theme) => ({
+ mainContainer: {
+ display: "flex",
+ marginTop: "50px",
+ marginBottom: "120px",
+ },
+ headingContainer: {
+ display: "flex",
+ },
+ FAQTitle: {
+ fontWeight: "bold",
+ width: "100%",
+ },
+ FAQAns: {
+ margin: theme.spacing(3, 0),
+ color: theme.palette.secondary.light,
+ fontWeight: "300",
+ width: "100%",
+ },
+ btnTransparent: {
+ borderRadius: "0px",
+ backgroundColor: "transparent",
+ "&:hover": {
+ backgroundColor: theme.palette.secondary.main,
+ },
+ },
+ btnText: {
+ width: "100%",
+ fontWeight: "300",
+ textTransform: "none",
+ color: theme.palette.secondary.light,
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "55px",
+ marginRight: "10px",
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/InfoBusiness/InfoBusiness.js b/enatega-multivendor-web/src/components/HomeScreen/InfoBusiness/InfoBusiness.js
new file mode 100644
index 0000000..a57acb4
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/InfoBusiness/InfoBusiness.js
@@ -0,0 +1,52 @@
+import { Button, Card, CardContent, Grid, Typography, useMediaQuery, useTheme } from "@mui/material";
+import React from "react";
+import useStyle from "./styles";
+
+function InfoBusiness() {
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down('md'));
+ const extraSmall = useMediaQuery(theme.breakpoints.down('sm'));
+ const classes = useStyle({ mobile, extraSmall });
+ return (
+
+
+
+
+
+ Office
+
+ Take your office out to lunch
+
+
+
+
+
+
+
+
+
+
+ Enatega for business
+
+
+ Order lunch, fuel for meetings or late-night deliveries to the office. Your favorite restaurants coming
+ to a desk near you.
+
+
+ Get started
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(InfoBusiness);
diff --git a/enatega-multivendor-web/src/components/HomeScreen/InfoBusiness/styles.js b/enatega-multivendor-web/src/components/HomeScreen/InfoBusiness/styles.js
new file mode 100644
index 0000000..fbd8f7a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/InfoBusiness/styles.js
@@ -0,0 +1,68 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ mainContainer: {
+ display: "flex",
+ marginTop: "50px",
+ minHeight: "50vh",
+ marginBottom: "120px",
+ },
+ headingContainer: {
+ display: "flex",
+ },
+ boldBackground: {
+ position: "relative",
+ marginBottom: (props) => (props.extraSmall ? "-30px" : "-50px"),
+ fontSize: (props) =>
+ props.extraSmall ? "6rem" : props.mobile ? "10rem" : "12rem",
+ lineHeight: "1em",
+ color: "rgba(0,0,0,0.04)",
+ fontWeight: "700",
+ overflow: "hidden",
+ },
+ bold300: {
+ position: "absolute",
+ bottom: (props) => (props.extraSmall ? "30px" : "50px"),
+ fontWeight: "300",
+ color: "#333",
+ },
+ infoContainer: {
+ display: "flex",
+ minHeight: "50vh",
+ background: `url(https://images.deliveryhero.io/image/foodpanda/home-corporate-pk.jpg?width=2000&height=1280) no-repeat right top`,
+ backgroundPositionY: "50%",
+ },
+ infoCard: {
+ backgroundColor: theme.palette.common.white,
+ borderRadius: "0px",
+ maxWidth: "550px",
+ padding: "20px",
+ marginBottom: "-70px",
+ boxShadow: "0px 0px 20px 1px rgba(0,0,0,0.2)",
+ },
+ infotTitle: {
+ color: theme.palette.secondary.light,
+ fontWeight: "300",
+ fontSize: "1.8rem",
+ lineHeight: "1.2em",
+ },
+ infoDescription: {
+ color: "#707070",
+ fontWeight: "300",
+ fontSize: "1rem",
+ margin: "16px 0",
+ },
+ infoBtn: {
+ margin: (props) => (props.extraSmall ? undefined : theme.spacing(3, 0)),
+ float: (props) => (props.extraSmall ? undefined : "right"),
+ borderRadius: "0px",
+ height: "55px",
+ width: (props) => (props.extraSmall ? "220px" : "250px"),
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ opacity: 0.8,
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/InfoRestaurant/InfoRestaurant.js b/enatega-multivendor-web/src/components/HomeScreen/InfoRestaurant/InfoRestaurant.js
new file mode 100644
index 0000000..4cd976b
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/InfoRestaurant/InfoRestaurant.js
@@ -0,0 +1,52 @@
+import { Button, Card, CardContent, Grid, Typography, useMediaQuery, useTheme } from "@mui/material";
+import React from "react";
+import useStyle from "./styles";
+
+function InfoRestaurant() {
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down('md'));
+ const extraSmall = useMediaQuery(theme.breakpoints.down('sm'));
+ const classes = useStyle({ mobile, extraSmall });
+ return (
+
+
+
+
+
+ Partners
+
+ You prepare the food, we handle the rest
+
+
+
+
+
+
+
+
+
+
+ List your restaurant on Enatega
+
+
+ Would you like thousands of new customers to taste your amazing food? So would we!
+
+
+ It's simple: we list your menu online, help you process orders, pick them up, and deliver them to hungry
+ pandas - in a heartbeat!
+
+
+ Interested? Let's start our partnership today!
+
+
+ Get started
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(InfoRestaurant);
diff --git a/enatega-multivendor-web/src/components/HomeScreen/InfoRestaurant/styles.js b/enatega-multivendor-web/src/components/HomeScreen/InfoRestaurant/styles.js
new file mode 100644
index 0000000..3964eb3
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/InfoRestaurant/styles.js
@@ -0,0 +1,72 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ mainContainer: {
+ display: "flex",
+ marginTop: "50px",
+ minHeight: "50vh",
+ marginBottom: "120px",
+ },
+ headingContainer: {
+ display: "flex",
+ },
+ boldBackground: {
+ position: "relative",
+ marginBottom: (props) => (props.extraSmall ? "-30px" : "-50px"),
+ fontSize: (props) =>
+ props.extraSmall ? "6rem" : props.mobile ? "10rem" : "12rem",
+ lineHeight: "1em",
+ color: "rgba(0,0,0,0.04)",
+ fontWeight: "700",
+ overflow: "hidden",
+ },
+ bold300: {
+ position: "absolute",
+ bottom: (props) => (props.extraSmall ? "30px" : "50px"),
+ fontWeight: "300",
+ color: "#333",
+ },
+ modalBox: {
+ alignSelf: "flex-end",
+ paddingTop: (props) => (props.extraSmall ? "50px" : undefined),
+ },
+ infoContainer: {
+ display: "flex",
+ minHeight: "50vh",
+ background: `url(https://images.deliveryhero.io/image/foodpanda/home-vendor-pk.jpg?width=2000&height=1280) no-repeat right top`,
+ backgroundPositionY: "52%",
+ },
+ infoCard: {
+ backgroundColor: theme.palette.common.white,
+ borderRadius: "0px",
+ maxWidth: "550px",
+ padding: "20px",
+ marginBottom: "-70px",
+ boxShadow: "0px 0px 20px 1px rgba(0,0,0,0.2)",
+ },
+ infotTitle: {
+ color: theme.palette.secondary.light,
+ fontWeight: "300",
+ fontSize: "1.8rem",
+ lineHeight: "1.2em",
+ },
+ infoDescription: {
+ color: "#707070",
+ fontWeight: "300",
+ fontSize: "1rem",
+ margin: "16px 0",
+ },
+ infoBtn: {
+ margin: (props) => (props.extraSmall ? undefined : theme.spacing(3, 0)),
+ float: (props) => (props.extraSmall ? undefined : "right"),
+ borderRadius: "0px",
+ height: "55px",
+ width: (props) => (props.extraSmall ? "220px" : "250px"),
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ opacity: 0.8,
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/PriceCard/index.js b/enatega-multivendor-web/src/components/HomeScreen/PriceCard/index.js
new file mode 100644
index 0000000..9e68ed9
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/PriceCard/index.js
@@ -0,0 +1,115 @@
+import { Typography, Box, Divider, Button, useTheme } from "@mui/material";
+import useStyle from "./styles";
+import { useTranslation } from "react-i18next";
+
+export default function PriceCard({ price, offer, desc, center }) {
+ const { t } = useTranslation();
+ const classes = useStyle();
+ const theme = useTheme();
+ return (
+
+
+
+
+ $
+
+ {price}
+
+
+
+ {offer[0]}
+
+ {offer[1]}
+
+
+
+
+
+
+
+
+ {desc[0]}
+
+
+
+
+ {desc[1]}
+
+
+
+ window.open("https://enatega.com/#contact", "_blank")
+ }
+ >
+ {t("getQuote")}
+
+
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/PriceCard/styles.js b/enatega-multivendor-web/src/components/HomeScreen/PriceCard/styles.js
new file mode 100644
index 0000000..f520ebd
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/PriceCard/styles.js
@@ -0,0 +1,46 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ container: {
+ width: "300px",
+ height: "570px",
+ display: "flex",
+ position: "relative",
+ flexDirection: "column",
+ justifyContent: "center",
+ [theme.breakpoints.down("md")]: {
+ width: "275px",
+ },
+ },
+ outsideBottom: {
+ padding: "1.25rem",
+ height: "55%",
+ paddingTop: 0,
+ },
+ top: {
+ backgroundColor: theme.palette.common.black,
+ display: "flex",
+ height: "25%",
+ justifyContent: "center",
+ alignItems: "center",
+ borderRadius: 30,
+ },
+ bottom: {
+ height: "100%",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ borderBottomLeftRadius: 30,
+ borderBottomRightRadius: 30,
+ },
+ image: {
+ position: "absolute",
+ top: "-50%",
+ left: "50%",
+ padding: 0,
+ margin: 0,
+ transform: "translate(-50%, 30%)",
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/SearchContainer/SearchContainer.js b/enatega-multivendor-web/src/components/HomeScreen/SearchContainer/SearchContainer.js
new file mode 100644
index 0000000..ad9a8e4
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/SearchContainer/SearchContainer.js
@@ -0,0 +1,636 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+/* eslint-disable no-undef */
+import { gql, useLazyQuery } from "@apollo/client";
+import {
+ Button,
+ Grid,
+ InputAdornment,
+ TextField,
+ Typography,
+ useMediaQuery,
+ useTheme,
+ Box,
+} from "@mui/material";
+import { GoogleMap, Marker } from "@react-google-maps/api";
+import LocationOnIcon from "@mui/icons-material/LocationOn";
+import Autocomplete from "@mui/material/Autocomplete";
+import { restaurantList } from "../../../apollo/server";
+import parse from "autosuggest-highlight/parse";
+import throttle from "lodash/throttle";
+import React, { useEffect, useState, useCallback, useRef } from "react";
+import SyncLoader from "react-spinners/SyncLoader";
+import LocationIcon from "../../../assets/icons/LocationIcon";
+import { useLocationContext } from "../../../context/Location";
+import { useLocation } from "../../../hooks";
+import FlashMessage from "../../FlashMessage";
+import useStyle from "./styles";
+import MarkerImage from "../../../assets/images/marker.png";
+import { mapStyles } from "../../../screens/OrderDetail/mapStyles";
+import SearchIcon from "@mui/icons-material/Search";
+import { SearchRestaurant } from "../../RestaurantComponent";
+import { useNavigate } from "react-router-dom";
+import RestMarker from "../../../assets/images/rest-map-2.png";
+import { useTranslation } from "react-i18next";
+
+const autocompleteService = { current: null };
+const RESTAURANTS = gql`
+ ${restaurantList}
+`;
+
+function SearchContainer({
+ isHome,
+ search: searchProp,
+ setSearch: setSearchProp,
+}) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("md"));
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyle({ mobile, extraSmall });
+ const [value, setValue] = useState(null);
+ const [inputValue, setInputValue] = useState("");
+ const [options, setOptions] = useState(["Loading ..."]);
+ const { getCurrentLocation } = useLocation();
+ const [open, setOpen] = useState();
+ const { location, setLocation } = useLocationContext();
+ const [search, setSearch] = useState("");
+ const navigateTo = useNavigate();
+ const [alertError, setAlertError] = useState(null);
+ const [loading, setLoading] = useState(false);
+ const [map, setMap] = React.useState(false);
+ const fetchRef = useRef(false);
+
+ const [fetchRestaurants, { data }] = useLazyQuery(RESTAURANTS, {
+ fetchPolicy: "network-only",
+ });
+ const fetch = React.useMemo(
+ () =>
+ throttle((request, callback) => {
+ autocompleteService.current.getPlacePredictions(request, callback);
+ }, 200),
+ []
+ );
+ const locationCallback = (error, data) => {
+ setLoading(false);
+ if (error) {
+ setAlertError(error);
+ setOpen(true);
+ return;
+ }
+ setSearch(data.deliveryAddress);
+ setLocation(data);
+ };
+ const handleClose = useCallback(() => {
+ setOpen(false);
+ }, []);
+
+ useEffect(() => {
+ loadMap();
+ return () => {
+ setMap(false);
+ };
+ }, []);
+ const loadMap = async () => {
+ setTimeout(() => {
+ setMap(true);
+ }, 100);
+ };
+ useEffect(() => {
+ let active = true;
+
+ if (!autocompleteService.current && window.google) {
+ autocompleteService.current =
+ new window.google.maps.places.AutocompleteService();
+ }
+ if (!autocompleteService.current) {
+ return undefined;
+ }
+
+ if (inputValue === "") {
+ setOptions(value ? [value] : []);
+ return undefined;
+ }
+
+ fetch({ input: inputValue }, (results) => {
+ if (active) {
+ let newOptions = [];
+ if (value) {
+ newOptions = [value];
+ }
+ if (results) {
+ newOptions = [...newOptions, ...results];
+ }
+ setOptions(newOptions);
+ }
+ });
+
+ return () => {
+ active = false;
+ };
+ }, [value, inputValue, fetch]);
+
+ useEffect(() => {
+ if (!location) return;
+ if (fetchRef.current) return;
+ const variables = {
+ longitude: parseFloat(location.longitude) || null,
+ latitude: parseFloat(location.latitude) || null,
+ };
+ fetchRestaurants({ variables });
+ fetchRef.current = true;
+ }, [location]);
+
+ const handleLocationButtonClick = () => {
+ setLoading(true);
+ getCurrentLocation(locationCallback);
+ };
+
+ window.onload = () => {
+ handleLocationButtonClick();
+ };
+
+ const { restaurants } = data?.nearByRestaurants ?? {};
+ return (
+
+
+
+
+ {map && (
+
+ {location && (
+
+ )}
+ {restaurants?.map((item) => {
+ return (
+ {
+ navigateTo(`/restaurant/${item.slug}`);
+ }}
+ title={item.name}
+ icon={RestMarker}
+ />
+ );
+ })}
+
+ )}
+ {mobile ? (
+
+
+
+
+ {isHome ? (
+
+ typeof option === "string"
+ ? option
+ : option.description
+ }
+ filterOptions={(x) => x}
+ options={options}
+ autoComplete
+ InputLabelProps={{ style: { display: "none" } }}
+ freeSolo
+ includeInputInList
+ filterSelectedOptions
+ style={{ width: "100%" }}
+ value={
+ loading
+ ? "Loading ..."
+ : search
+ ? search
+ : location
+ ? location.deliveryAddress
+ : ""
+ }
+ onChange={(event, newValue) => {
+ if (newValue) {
+ const b = new window.google.maps.Geocoder();
+ b.geocode({ placeId: newValue.place_id }, (res) => {
+ const location = res[0].geometry.location;
+ setLocation({
+ label: "Home",
+ deliveryAddress: newValue.description,
+ latitude: location.lat(),
+ longitude: location.lng(),
+ });
+ });
+ } else {
+ setSearch("");
+ }
+ setOptions(newValue ? [...options] : options);
+ setValue(newValue);
+ }}
+ onInputChange={(event, newInputValue) => {
+ setInputValue(newInputValue);
+ }}
+ renderInput={(params) => (
+
+
+
+ ),
+ endAdornment: (
+ <>
+ {params.InputProps.endAdornment}
+ {
+ e.preventDefault();
+ setValue(search?.deliveryAddress ?? "");
+ setSearch(
+ location?.deliveryAddress ?? ""
+ );
+ }}
+ >
+ {loading ? (
+
+ ) : (
+ <>
+ {
+ e.preventDefault();
+ setLoading(true);
+ getCurrentLocation(
+ locationCallback
+ );
+ }}
+ />
+ {/* */}
+ >
+ )}
+
+ >
+ ),
+ }}
+ />
+ )}
+ renderOption={(props, option) => {
+ const matches =
+ option.structured_formatting
+ ?.main_text_matched_substrings;
+ let parts = null;
+ if (matches) {
+ parts = parse(
+ option.structured_formatting.main_text,
+ matches.map((match) => [
+ match.offset,
+ match.offset + match.length,
+ ])
+ );
+ }
+ return (
+
+
+
+
+
+ {parts &&
+ parts.map((part, index) => (
+
+ {part.text}
+
+ ))}
+
+ {option.structured_formatting?.secondary_text}
+
+
+
+ );
+ }}
+ />
+ ) : (
+
+ )}
+
+ {isHome ? (
+
+ {
+ e.preventDefault();
+ if (location) {
+ navigateTo("/restaurant-list");
+ }
+ }}
+ >
+ {t("findRestaurants")}
+
+
+ ) : null}
+
+
+
+ ) : null}
+
+
+ {mobile ? null : (
+
+
+
+
+
+ {isHome ? (
+
+ typeof option === "string" ? option : option.description
+ }
+ filterOptions={(x) => x}
+ options={options}
+ autoComplete
+ includeInputInList
+ filterSelectedOptions
+ value={
+ loading
+ ? "Loading ..."
+ : search
+ ? search
+ : location
+ ? location.deliveryAddress
+ : ""
+ }
+ onChange={(event, newValue) => {
+ if (newValue) {
+ const b = new window.google.maps.Geocoder();
+ b.geocode({ placeId: newValue.place_id }, (res) => {
+ const location = res[0].geometry.location;
+ setLocation({
+ label: "Home",
+ deliveryAddress: newValue.description,
+ latitude: location.lat(),
+ longitude: location.lng(),
+ });
+ });
+ } else {
+ setSearch("");
+ }
+ setOptions(newValue ? [...options] : options);
+ setValue(newValue);
+ }}
+ onInputChange={(event, newInputValue) => {
+ setInputValue(newInputValue);
+ }}
+ renderInput={(params) => (
+ { if(event.key === 'Enter'){
+ if (location) {
+ navigateTo("/restaurant-list");
+ }
+ } }}
+ InputLabelProps={{ style: { display: "none" } }}
+ fullWidth
+ InputProps={{
+ ...params.InputProps,
+ endAdornment: (
+ <>
+ {params.InputProps.endAdornment}
+ {
+ e.preventDefault();
+ setValue(search?.deliveryAddress ?? "");
+ setSearch(location?.deliveryAddress ?? "");
+ }}
+ >
+ {loading ? (
+
+ ) : (
+ {
+ e.preventDefault();
+ setLoading(true);
+ getCurrentLocation(locationCallback);
+ }}
+ />
+ )}
+
+ >
+ ),
+ }}
+ />
+ )}
+ renderOption={(props, option) => {
+ const matches =
+ option.structured_formatting
+ ?.main_text_matched_substrings;
+ let parts = null;
+ if (matches) {
+ parts = parse(
+ option.structured_formatting.main_text,
+ matches.map((match) => [
+ match.offset,
+ match.offset + match.length,
+ ])
+ );
+ }
+ return (
+
+
+
+
+
+ {parts &&
+ parts.map((part, index) => (
+
+ {part.text}
+
+ ))}
+
+
+ {option.structured_formatting?.secondary_text}
+
+
+
+ );
+ }}
+ />
+ ) : (
+
+
+
+
+
+ )}
+
+ {isHome ? (
+
+ {
+ e.preventDefault();
+ if (location) {
+ navigateTo("/restaurant-list");
+ }
+ }}
+ >
+ {t("findRestaurants")}
+
+
+ ) : null}
+
+
+
+ )}
+
+ );
+}
+
+// function CategorySmallCard({ image, title }) {
+// const theme = useTheme();
+// return (
+//
+//
+//
+//
+//
+// {title}
+//
+//
+// );
+// }
+
+export default React.memo(SearchContainer);
diff --git a/enatega-multivendor-web/src/components/HomeScreen/SearchContainer/styles.js b/enatega-multivendor-web/src/components/HomeScreen/SearchContainer/styles.js
new file mode 100644
index 0000000..904a819
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/SearchContainer/styles.js
@@ -0,0 +1,143 @@
+import makeStyles from "@mui/styles/makeStyles";
+import Fish from "../../../assets/images/fish.png";
+
+const useStyle = makeStyles((theme) => ({
+ option: {
+ minHeight: "auto",
+ alignItems: "flex-start",
+ padding: 8,
+ '&[aria-selected="true"]': {
+ backgroundColor: "transparent",
+ },
+ '&[data-focus="true"]': {
+ backgroundColor: theme.palette.action.hover,
+ },
+ },
+ icon: {
+ color: theme.palette.text.secondary,
+ marginRight: theme.spacing(2),
+ },
+ mainContainer: {
+ display: "flex",
+ paddingTop: "70px",
+ minWidth: "100%",
+ backgroundColor: "transparent",
+ },
+ temp: {
+ height: "80vh",
+ width: "100%",
+ },
+ left: {
+ minHeight: "80vh",
+
+ [theme.breakpoints.down("md")]: {
+ position: "relative",
+ },
+ },
+ right: {
+ backgroundColor: theme.palette.primary.main,
+ borderBottomLeftRadius: "5rem",
+ borderTopLeftRadius: "5rem",
+ minHeight: "80vh",
+ display: "flex",
+ marginTop: "2px",
+ justifyContent: "center",
+ alignItems: "center",
+ backgroundImage: `url(${Fish})`,
+ backgroundSize: "contain",
+ backgroundPosition: "right",
+ backgroundRepeat: "no-repeat",
+ [theme.breakpoints.down("md")]: {
+ borderBottomLeftRadius: "0rem",
+ borderTopLeftRadius: "0rem",
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ minHeight: "60vh",
+ },
+ },
+ headingContainer: {
+ display: "flex",
+ alignItems: "center",
+ position: "absolute",
+ bottom: 20,
+ left: 0,
+ },
+ searchContainer: {
+ display: "flex",
+ justifyContent: "center",
+ padding: theme.spacing(2),
+ backgroundColor: theme.palette.common.black,
+ boxShadow: "0px 0px 20px 1px rgba(0,0,0,0.2)",
+ borderRadius: 10,
+ position: "relative",
+ },
+ button: {
+ // margin: (props) => (props.extraSmall ? "10px 0px 0px" : "0px 10px"),
+ height: "55px",
+ color: theme.palette.common.black,
+ fontWeight: 700,
+ borderRadius: 10,
+ width: "100%",
+ [theme.breakpoints.down("md")]: {
+ width: "180px",
+ },
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ foodCategories: {
+ background: " rgb(0 0 0 / 48%)",
+ backdropFilter: "blur(16px)",
+ display: "flex",
+ justifyContent: "space-around",
+ alignItems: "center",
+ minHeight: "160px",
+ borderBottomLeftRadius: 20,
+ borderBottomRightRadius: 20,
+ width: "75% ",
+ },
+ mobileheadingContainer: {
+ padding: 10,
+ position: "absolute",
+ bottom: -10,
+ left: 0,
+ background: "rgb(0 0 0 / 48%)",
+ backdropFilter: "blur(16px)",
+ borderRadius: 30,
+ marginBottom: "50px",
+ },
+ mobileheadingContainerNotHome: {
+ padding: 20,
+ position: "absolute",
+ bottom: -10,
+ left: 0,
+ background: "rgb(0 0 0 / 48%)",
+ backdropFilter: "blur(16px)",
+ borderRadius: 30,
+ marginBottom: "50px",
+ },
+ foodCategoriesMobile: {
+ display: "flex",
+ justifyContent: "space-between",
+ alignItems: "center",
+ minHeight: "160px",
+ width: "100% ",
+ },
+ mobileBox: {
+ width: "100%",
+ },
+ textField: {
+ color: "initial",
+ backgroundColor: "white",
+ borderRadius: 10,
+ border: "none",
+ "& .MuiOutlinedInput-root": {
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ borderWidth: "1px",
+ },
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/StoreContainer/StoreContainer.js b/enatega-multivendor-web/src/components/HomeScreen/StoreContainer/StoreContainer.js
new file mode 100644
index 0000000..faa960d
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/StoreContainer/StoreContainer.js
@@ -0,0 +1,83 @@
+import { Button, Grid, Typography, useMediaQuery, useTheme } from "@mui/material";
+import { Apple } from "@mui/icons-material";
+import React from "react";
+import PlayStore from "../../../assets/icons/PlayStore";
+import useStyle from "./styles";
+import { Link as RouterLink } from "react-router-dom";
+import { useTranslation } from 'react-i18next';
+
+function StoreContainer() {
+ const { t } = useTranslation()
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down('md'));
+ const extraSmall = useMediaQuery(theme.breakpoints.down('sm'));
+ const classes = useStyle({ mobile, extraSmall });
+ return (
+
+
+
+
+
+ App
+
+ {t('putUsInYourPocket')}
+
+
+
+
+
+
+
+
+
+
+ Download the food you love and more
+
+
+ {t('containerText')}
+
+
+
+
+ }
+ >
+ From ios Store
+
+
+
+ }
+ >
+ From Play Store
+
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(StoreContainer);
diff --git a/enatega-multivendor-web/src/components/HomeScreen/StoreContainer/styles.js b/enatega-multivendor-web/src/components/HomeScreen/StoreContainer/styles.js
new file mode 100644
index 0000000..0c05448
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/StoreContainer/styles.js
@@ -0,0 +1,66 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyle = makeStyles((theme) => ({
+ mainContainer: {
+ display: "flex",
+ marginTop: "50px",
+ minHeight: "50vh",
+ marginBottom: "120px",
+ },
+ headingContainer: {
+ display: "flex",
+ },
+ boldBackground: {
+ position: "relative",
+ marginBottom: "-50px",
+ fontSize: (props) => (props.extraSmall ? "8rem" : props.mobile ? "10rem" : "12rem"),
+ lineHeight: "1em",
+ color: "rgba(0,0,0,0.04)",
+ fontWeight: "700",
+ },
+ bold300: {
+ position: "absolute",
+ bottom: "50px",
+ fontWeight: "300",
+ color: "#333",
+ },
+ storeContainer: {
+ display: "flex",
+ minHeight: "50vh",
+ backgroundColor: theme.palette.primary.main,
+ alignItems: "center",
+ paddingTop: (props) => (props.mobile ? "50px" : undefined),
+ paddingBottom: (props) => (props.mobile ? "50px" : undefined),
+ },
+ storeTitle: {
+ fontSize: "1.8rem",
+ lineHeight: "1.14em",
+ },
+ storeDescription: {
+ fontSize: "1rem",
+ fontWeight: "300",
+ lineHeight: "1.14em",
+ margin: "16px 0",
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "55px",
+ marginRight: "10px",
+ marginTop: (props) => (props.mobile ? "10px" : undefined),
+ borderWidth: "1px",
+ borderColor: "white",
+ },
+ imgContainer: {
+ display: (props) => (props.extraSmall ? "flex" : "block"),
+ overflow: "hidden",
+ alignSelf: "center",
+ justifyContent: (props) => (props.extraSmall ? "center" : "flex-end"),
+ // marginTop: (props) => (props.extraSmall ? "20px" : undefined),
+ },
+ linkDecoration: {
+ textDecoration: "none",
+ alignSelf: "center",
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/HomeScreen/Tech/index.js b/enatega-multivendor-web/src/components/HomeScreen/Tech/index.js
new file mode 100644
index 0000000..fbd4159
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/Tech/index.js
@@ -0,0 +1,95 @@
+import {
+ Grid,
+ useMediaQuery,
+ useTheme,
+ Box,
+ Container,
+ Typography,
+} from "@mui/material";
+import React from "../../../assets/images/react.png";
+import Node from "../../../assets/images/node.png";
+import Mongo from "../../../assets/images/mongodb.png";
+import Firebase from "../../../assets/images/firebase.png";
+import Graphql from "../../../assets/images/gql.png";
+import MUI from "../../../assets/images/mui.png";
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ bgText: {
+ position: "absolute",
+ bottom: -90,
+ left: 0,
+ fontSize: 80,
+ fontWeight: 500,
+ color: "#000000",
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+ bgTextSmall: {
+ position: "absolute",
+ top: -90,
+ left: 20,
+ fontSize: 50,
+ fontWeight: 500,
+ color: "#000000",
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+}));
+
+export default function Tech() {
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+ const classes = useStyle();
+ return (
+
+
+ Tech
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/HomeScreen/index.js b/enatega-multivendor-web/src/components/HomeScreen/index.js
new file mode 100644
index 0000000..2cc0884
--- /dev/null
+++ b/enatega-multivendor-web/src/components/HomeScreen/index.js
@@ -0,0 +1,7 @@
+import FAQ from "./FAQ/FAQ";
+import InfoBusiness from "./InfoBusiness/InfoBusiness";
+import InfoRestaurant from "./InfoRestaurant/InfoRestaurant";
+import SearchContainer from "./SearchContainer/SearchContainer";
+import StoreContainer from "./StoreContainer/StoreContainer";
+
+export { SearchContainer, StoreContainer, InfoRestaurant, FAQ, InfoBusiness };
diff --git a/enatega-multivendor-web/src/components/Language/LanguageCard.js b/enatega-multivendor-web/src/components/Language/LanguageCard.js
new file mode 100644
index 0000000..e89a63b
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Language/LanguageCard.js
@@ -0,0 +1,148 @@
+import { useMutation } from "@apollo/client";
+import {
+ Button,
+ CircularProgress,
+ Grid,
+ Typography,
+ Box,
+ useTheme,
+} from "@mui/material";
+import gql from "graphql-tag";
+import React, { useCallback, useRef, useState } from "react";
+import { updateUser } from "../../apollo/server";
+import FlashMessage from "../FlashMessage";
+import useStyle from "./styles";
+//import { Link as RouterLink } from "react-router-dom";
+import Radio from "@mui/material/Radio";
+import RadioGroup from "@mui/material/RadioGroup";
+import FormControlLabel from "@mui/material/FormControlLabel";
+import { useTranslation } from "react-i18next";
+import i18n from "../../i18n";
+console.log(i18n);
+
+const UPDATEUSER = gql`
+ ${updateUser}
+`;
+const languageTypes = [
+ { value: "English", code: "en", index: 0 },
+ { value: "français", code: "fr", index: 1 },
+ { value: "ភាសាខ្មែរ", code: "km", index: 2 },
+ { value: "中文", code: "zh", index: 3 },
+ { value: "Deutsche", code: "de", index: 4 },
+ { value: "arabic", code: "ar", index: 5 },
+];
+function LanguageCard() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const formRef = useRef(null);
+ const classes = useStyle();
+
+ const [error, setError] = useState({});
+ const [mutate, { loading }] = useMutation(UPDATEUSER, {
+ onCompleted,
+ onError,
+ });
+ console.log(mutate);
+ function onError(error) {
+ setError({ type: "error", message: error.message });
+ }
+
+ function onCompleted({ updateUser }) {
+ if (updateUser) {
+ setError({ type: "success", message: "User's Info Updated" });
+ }
+ }
+
+ const toggleSnackbar = useCallback(() => {
+ setError({});
+ }, []);
+
+ const currentLang = localStorage.getItem("enatega-language");
+ const [selectedLanguage, setSelectedLanguage] = useState(
+ currentLang ? currentLang : "en"
+ );
+ console.log(selectedLanguage);
+
+ const handleLanguageChange = (event) => {
+ setSelectedLanguage(event.target.value);
+ localStorage.setItem("enatega-language", event.target.value);
+ const savedLanguage = localStorage.getItem("enatega-language");
+ console.log("Saved language in localStorage:", savedLanguage);
+ };
+
+ return (
+
+
+
+ {/* */}
+
+
+ {t("selectLanguage")}
+
+
+
+
+
+ );
+}
+
+export default React.memo(LanguageCard);
diff --git a/enatega-multivendor-web/src/components/Language/styles.js b/enatega-multivendor-web/src/components/Language/styles.js
new file mode 100644
index 0000000..65519d2
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Language/styles.js
@@ -0,0 +1,64 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ MH3: {
+ margin: theme.spacing(3, 0),
+ },
+
+ mainContainer: {
+ justifyContent: "center",
+ },
+ MB0: {
+ marginBottom: "0px !important",
+ },
+ profileContainer: {
+ padding: theme.spacing(3, 3),
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 30,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ btnContainer: {
+ display: "flex",
+ justifyContent: "center",
+ },
+ headerBar: {
+ background:
+ "linear-gradient(261.53deg, theme.palette.success.light -8.04%, theme.palette.primary.main 111.96%)",
+ borderRadius: 30,
+ height: 80,
+ display: "flex",
+ alignItems: "center",
+ },
+ titleText: {
+ fontWeight: 600,
+ marginLeft: 20,
+ fontSize: "1.2rem",
+ },
+ fieldWrapper: {
+ display: "flex",
+ alignItems: "center",
+ marginBottom: theme.spacing(3),
+ },
+ formMargin: {
+ marginTop: 30,
+ },
+ btn: {
+ borderRadius: "10px !important",
+ height: "40px !important",
+ background: theme.palette.primary.main,
+ width: 120,
+ },
+ textField: {
+ color: theme.palette.grey[600],
+ padding: 10,
+ fontSize: "1.2rem",
+ width: "100%",
+ borderRadius: 20,
+ border: "none",
+ backgroundColor: "#F3F4F8",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Modals/AddressModal/AddressModal.js b/enatega-multivendor-web/src/components/Modals/AddressModal/AddressModal.js
new file mode 100644
index 0000000..bb21bf2
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/AddressModal/AddressModal.js
@@ -0,0 +1,301 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Button,
+ CircularProgress,
+ Dialog,
+ DialogContent,
+ DialogTitle,
+ IconButton,
+ InputAdornment,
+ TextField,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
+import GpsFixedIcon from "@mui/icons-material/GpsFixed";
+import { GoogleMap, Marker } from "@react-google-maps/api";
+import clsx from "clsx";
+import React, { useCallback, useEffect, useState } from "react";
+import { useLocation } from "../../../hooks";
+import FlashMessage from "../../FlashMessage";
+import useStyle from "./styles";
+import MarkerImage from "../../../assets/images/marker.png";
+import ClearIcon from "@mui/icons-material/Clear";
+import PlacesAutocomplete from "react-places-autocomplete";
+
+import ConfigurableValues from "../../../config/constants";
+
+import { useTranslation } from "react-i18next";
+
+
+
+function AddressModal({
+ toggleModal,
+ isVisible,
+ regionDetail,
+ changeAddress,
+ settingRegionDetail,
+ setShowDetail,
+}) {
+ console.log(settingRegionDetail);
+
+
+ const { GOOGLE_MAPS_KEY } = ConfigurableValues();
+
+ const theme = useTheme();
+
+ const classes = useStyle();
+ const [region, setRegion] = useState(null);
+ const [mainError, setMainError] = useState({});
+ const [locationName, setLocationName] = useState("");
+ const { t } = useTranslation();
+ const { getCurrentLocation } = useLocation();
+ const { latLngToGeoString } = useLocation();
+ const [loading, setLoading] = useState();
+ const handleLocationSelection = (selectedLocation) => {
+ const apiKey = GOOGLE_MAPS_KEY;
+
+ setLocationName(selectedLocation);
+ const encodedLocation = encodeURIComponent(selectedLocation);
+
+ const apiUrl = `https://maps.googleapis.com/maps/api/geocode/json?address=${encodedLocation}&key=${apiKey}`;
+ fetch(apiUrl)
+ .then((response) => response.json())
+ .then((data) => {
+ if (data.status === "OK" && data.results.length > 0) {
+ const location = data.results[0].geometry.location;
+ const latitude = location.lat;
+ const longitude = location.lng;
+ setRegion({
+ lat: latitude,
+ lng: longitude,
+ });
+ } else {
+ console.error("Location not found");
+ }
+ });
+ };
+
+ useEffect(() => {
+ if (regionDetail) {
+ console.log(regionDetail);
+ setRegion({
+ lat: regionDetail.lat,
+ lng: regionDetail.lng,
+ });
+ setLocationName(regionDetail.location);
+ }
+ }, [regionDetail]);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ const handleClearClick = () => {
+ setLocationName("");
+ };
+
+ const changeCoordinates = async (coordinates, index) => {
+ setLoading(true);
+ (async () => {
+ const { latLng } = coordinates;
+ const regionChange = {
+ lat: latLng.lat(),
+ lng: latLng.lng(),
+ };
+ const geoCodeData = await latLngToGeoString({
+ latitude: latLng.lat(),
+ longitude: latLng.lng(),
+ }); // pass a callback
+ setLocationName(geoCodeData);
+ setRegion(regionChange);
+ return;
+ })().finally(() => {
+ setLoading(false);
+ });
+ };
+
+ const submitAddress = useCallback(() => {
+ if (region) {
+ changeAddress((prev) => {
+ return {
+ ...prev,
+ lat: region.lat,
+ lng: region.lng,
+ location: locationName,
+ };
+ });
+ }
+ toggleModal();
+ }, [locationName, region]);
+ const locationCallback = (error, data) => {
+ setLoading(false);
+ if (error) {
+ setMainError({ type: "error", message: error });
+ return;
+ }
+ setRegion({
+ lat: data.latitude,
+ lng: data.longitude,
+ });
+ setLocationName(data.deliveryAddress);
+ };
+ return (
+ <>
+
+
+
+ {
+ toggleModal();
+ setShowDetail();
+ }}
+ className={classes.closeContainer}
+ >
+
+
+
+
+
+
+ {t("exactLocation")}
+
+
+
+
+
+ {({
+ getInputProps,
+ suggestions,
+ getSuggestionItemProps,
+ loading,
+ }) => (
+
+
+ {loading ? (
+
+ ) : (
+ <>
+ {locationName && (
+
+
+
+ )}
+ {
+ e.preventDefault();
+ if (!loading) {
+ setLoading(true);
+ getCurrentLocation(locationCallback);
+ }
+ }}
+ size="large"
+ >
+
+
+ >
+ )}
+
+ ),
+ }}
+ />
+
+ {loading ?
Loading...
: null}
+ {suggestions.map((suggestion) => {
+ const style = {
+ backgroundColor: suggestion.active
+ ? theme.palette.primary.main
+ : theme.palette.common.white,
+ color: "black",
+ fontSize: "16px",
+ padding: "10px 16px",
+ };
+ return (
+
+ {suggestion.description}
+
+ );
+ })}
+
+
+ )}
+
+
+
+
+
+
+
+ {
+ e.preventDefault();
+ submitAddress();
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ {t("submit")}
+
+ )}
+
+
+
+ >
+ );
+}
+
+export default React.memo(AddressModal);
diff --git a/enatega-multivendor-web/src/components/Modals/AddressModal/styles.js b/enatega-multivendor-web/src/components/Modals/AddressModal/styles.js
new file mode 100644
index 0000000..7965ae7
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/AddressModal/styles.js
@@ -0,0 +1,63 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiDialog-paper": {
+ padding: theme.spacing(1, 1),
+ },
+ "& .MuiButton-containedPrimary:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ "& .MuiButton-outlinedPrimary": {
+ margin: theme.spacing(2, 0),
+ },
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ },
+ mapContainer: {
+ margin: theme.spacing(3, 0),
+ },
+ title: {
+ paddingRight: theme.spacing(1.5),
+ marginBottom: theme.spacing(2),
+ },
+ lightText: {
+ fontWeight: theme.typography.fontWeightLight,
+ },
+ boldText: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ },
+ linkBtn: {
+ textDecoration: "none",
+ },
+ closeContainer: {
+ position: "absolute",
+ background: "rgba(0,0,0,0.1)",
+ top: theme.spacing(1),
+ right: theme.spacing(1),
+ "&:hover": {
+ backgroundColor: "rgba(255,255,255,0.3)",
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/Modals/ClearCart/ClearCart.js b/enatega-multivendor-web/src/components/Modals/ClearCart/ClearCart.js
new file mode 100644
index 0000000..5fe8f18
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/ClearCart/ClearCart.js
@@ -0,0 +1,76 @@
+import {
+ Box,
+ Button,
+ Dialog,
+ DialogActions,
+ DialogContent,
+ DialogTitle,
+ IconButton,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
+import clsx from "clsx";
+import React from "react";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+function ClearCart({ isVisible, toggleModal, action }) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const extraSmall = useMediaQuery(theme.breakpoints.down('md'));
+ const { t } = useTranslation()
+ return (
+
+
+
+
+
+
+
+
+
+ {t('areYouSure')}
+
+
+ {t('clearCartText')}
+
+
+
+
+
+ {
+ e.preventDefault();
+ await action();
+ toggleModal();
+ }}
+ >
+
+ {t('ok')}
+
+
+
+
+ {t('cancel')}
+
+
+
+
+
+ );
+}
+
+export default React.memo(ClearCart);
diff --git a/enatega-multivendor-web/src/components/Modals/ClearCart/styles.js b/enatega-multivendor-web/src/components/Modals/ClearCart/styles.js
new file mode 100644
index 0000000..24b959b
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/ClearCart/styles.js
@@ -0,0 +1,58 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiDialog-paper": {
+ padding: theme.spacing(1, 1),
+ },
+ "& .MuiButton-containedPrimary:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ "& .MuiButton-outlinedPrimary": {
+ margin: theme.spacing(1, 1),
+ },
+ },
+ MB2: {
+ marginBottom: theme.spacing(2),
+ },
+ lightText: {
+ fontWeight: theme.typography.fontWeightLight,
+ },
+ boldText: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ titleText: {
+ ...theme.typography.h6,
+ color: theme.palette.text.disabled,
+ },
+ xSmallText: {
+ ...theme.typography.caption,
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ ...theme.typography.body2,
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ },
+ linkBtn: {
+ textDecoration: "none",
+ },
+ closeContainer: {
+ position: "absolute",
+ background: "rgba(0,0,0,0.1)",
+ top: theme.spacing(1),
+ right: theme.spacing(1),
+ "&:hover": {
+ backgroundColor: "rgba(255,255,255,0.3)",
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/Modals/RestaurantClose/RestaurantClose.js b/enatega-multivendor-web/src/components/Modals/RestaurantClose/RestaurantClose.js
new file mode 100644
index 0000000..c1d06ee
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/RestaurantClose/RestaurantClose.js
@@ -0,0 +1,64 @@
+import { Box, Button, Dialog, DialogContent, DialogTitle, IconButton, Typography } from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
+import clsx from "clsx";
+import React from "react";
+import { Link as RouterLink } from "react-router-dom";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+function RestaurantClose({ isVisible, toggleModal, restaurant, closeMenu = true }) {
+ const classes = useStyles();
+ const { t } = useTranslation();
+ return (
+
+
+
+
+
+
+
+
+
+ {`${restaurant} is closed Now.`}
+
+
+ {t('restaurantCloseText')}
+
+
+
+
+
+
+
+ {t('seeOtherRestaurants')}
+
+
+
+ {closeMenu && (
+ {
+ e.preventDefault();
+ toggleModal();
+ }}
+ >
+
+ {t('goToMenu')}
+
+
+ )}
+
+
+ );
+}
+
+export default React.memo(RestaurantClose);
diff --git a/enatega-multivendor-web/src/components/Modals/RestaurantClose/styles.js b/enatega-multivendor-web/src/components/Modals/RestaurantClose/styles.js
new file mode 100644
index 0000000..fc5cefe
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/RestaurantClose/styles.js
@@ -0,0 +1,59 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiDialog-paper": {
+ padding: theme.spacing(1, 1),
+ },
+ "& .MuiButton-containedPrimary:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ "& .MuiButton-outlinedPrimary": {
+ margin: theme.spacing(2, 0),
+ },
+ },
+ title: {
+ paddingRight: theme.spacing(1.5),
+ marginBottom: theme.spacing(2),
+ },
+ lightText: {
+ fontWeight: theme.typography.fontWeightLight,
+ },
+ boldText: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ titleText: {
+ ...theme.typography.h6,
+ color: theme.palette.text.disabled,
+ },
+ xSmallText: {
+ ...theme.typography.caption,
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ ...theme.typography.body2,
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ },
+ linkBtn: {
+ textDecoration: "none",
+ },
+ closeContainer: {
+ position: "absolute",
+ background: "rgba(0,0,0,0.1)",
+ top: theme.spacing(1),
+ right: theme.spacing(1),
+ "&:hover": {
+ backgroundColor: "rgba(255,255,255,0.3)",
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/Modals/RestaurantInfo/RestaurantInfo.js b/enatega-multivendor-web/src/components/Modals/RestaurantInfo/RestaurantInfo.js
new file mode 100644
index 0000000..3775c67
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/RestaurantInfo/RestaurantInfo.js
@@ -0,0 +1,278 @@
+import {
+ Box,
+ Container,
+ Dialog,
+ Divider,
+ IconButton,
+ Tab,
+ Tabs,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
+import FiberManualRecordIcon from "@mui/icons-material/FiberManualRecord";
+import StarSharpIcon from "@mui/icons-material/StarSharp";
+import React, { useCallback, useState } from "react";
+import { useTranslation } from "react-i18next";
+import useStyles from "./styles";
+import TabContainer from "./TabContainer";
+
+function a11yProps(index) {
+ return {
+ id: `simple-tab-${index}`,
+ "aria-controls": `simple-tabpanel-${index}`,
+ };
+}
+
+function RestaurantInfo({ isVisible, toggleModal, restaurantInfo }) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("md"));
+ const [tabValue, setTabValue] = useState(0);
+ const { t } = useTranslation();
+
+ const handleChange = useCallback((event, newValue) => {
+ setTabValue(newValue);
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ {restaurantInfo.name}
+
+
+
+
+ {restaurantInfo.reviewData.ratings}
+
+ /5
+
+ {` (${restaurantInfo.reviewData.total})`}
+
+
+
+
+ {restaurantInfo.deals.map((item, index) => (
+
+
+
+ {item.title}
+
+
+ ))}
+
+
+
+ {`${t("delivery")} ${restaurantInfo.deliveryTime} ${t("minute")}`}{" "}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {t("deliveryHours")}
+
+
+ {restaurantInfo.openingTimes.map((dayOb, index) => (
+
+
+
+ {" "}
+ {`${dayOb.day}`}
+
+ {dayOb.times.length < 1 ? (
+
+ {" "}
+ {t("closedAllDay")}
+
+ ) : (
+ dayOb.times.map((timeObj, index) => (
+
+ {" "}
+ {timeObj.startTime[0]}:{timeObj.startTime[1]}
+ {" - "}
+ {timeObj.endTime[0]}:{timeObj.endTime[1]}
+
+ ))
+ )}
+
+
+ ))}
+
+
+
+ {t("address")}
+
+
+
+
+
+ {restaurantInfo.address || ""}
+
+
+
+
+
+
+ {`${restaurantInfo.reviewData.total} ${t("reviews")}`}
+
+
+
+
+ {restaurantInfo.reviewData.reviews.map((review, index) => (
+
+
+
+
+ {review.order.user.name}
+
+
+
+
+ {review.rating}
+
+
+ /5
+
+
+
+
+ {review.description}
+
+
+
+
+ ))}
+
+
+
+ );
+}
+
+export default React.memo(RestaurantInfo);
diff --git a/enatega-multivendor-web/src/components/Modals/RestaurantInfo/TabContainer.js b/enatega-multivendor-web/src/components/Modals/RestaurantInfo/TabContainer.js
new file mode 100644
index 0000000..4c4ef44
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/RestaurantInfo/TabContainer.js
@@ -0,0 +1,23 @@
+import { Box } from "@mui/material";
+import React from "react";
+
+function TabContainer(props) {
+ const { children, value, index, ...other } = props;
+ return (
+
+ {value === index && (
+
+ {children}
+
+ )}
+
+ );
+}
+
+export default React.memo(TabContainer);
diff --git a/enatega-multivendor-web/src/components/Modals/RestaurantInfo/styles.js b/enatega-multivendor-web/src/components/Modals/RestaurantInfo/styles.js
new file mode 100644
index 0000000..3c96d7a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/RestaurantInfo/styles.js
@@ -0,0 +1,65 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ imgContainer: {
+ height: "200px",
+ width: "100%",
+ backgroundImage: `url('https://images.deliveryhero.io/image/fd-pk/LH/v6ai-hero.jpg?width=2000&height=500')`,
+ backgroundSize: "cover",
+ backgroundPositionX: "center",
+ backgroundPositionY: "center",
+ },
+ line: {
+ margin: theme.spacing(2, 0),
+ },
+ lightText: {
+ fontWeight: theme.typography.fontWeightBolder,
+ },
+ restaurantContainer: {
+ background: theme.palette.common.white,
+ marginTop: "-50px",
+ paddingLeft: "0px",
+ paddingRight: "0px",
+ boxShadow: theme.shadows[1],
+ },
+ titleText: {
+ ...theme.typography.h6,
+ color: theme.palette.text.disabled,
+ },
+ xSmallText: {
+ ...theme.typography.caption,
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ ...theme.typography.body2,
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ reviewContainer: {
+ backgroundColor: "black",
+ padding: "12px",
+ borderRadius: "10px",
+ marginLeft: "10px",
+ marginRight: "10px",
+ marginBottom: "10px",
+ },
+ closeContainer: {
+ position: "absolute",
+ background: "rgba(0,0,0,0.1)",
+ top: theme.spacing(1),
+ right: theme.spacing(1),
+ "&:hover": {
+ backgroundColor: "rgba(255,255,255,0.3)",
+ },
+ },
+ starIcon: {
+ fontSize: "14px",
+ color: theme.palette.info.main,
+ },
+ starSharp: {
+ fontSize: "14px",
+ color: theme.palette.warning.light,
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/Modals/VariationModal/HeadingView.js b/enatega-multivendor-web/src/components/Modals/VariationModal/HeadingView.js
new file mode 100644
index 0000000..22edcec
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/VariationModal/HeadingView.js
@@ -0,0 +1,39 @@
+import { Box, Typography } from "@mui/material";
+import clsx from "clsx";
+import React from "react";
+import useStyles from "./styles";
+import { useTranslation } from "react-i18next"
+
+function ItemHeadingView({
+ /*title = "Select Variation",
+ subTitle = "Select 1",
+ status = "Required",*/
+ error = false,
+}) {
+ const classes = useStyles();
+ const { t } = useTranslation();
+ return (
+ <>
+
+
+ {t('selectVariation')}
+
+
+
+ {t('required')}
+
+
+
+
+ {t('subTitle')}
+
+ >
+ );
+}
+
+export default React.memo(ItemHeadingView);
diff --git a/enatega-multivendor-web/src/components/Modals/VariationModal/VariationModal.js b/enatega-multivendor-web/src/components/Modals/VariationModal/VariationModal.js
new file mode 100644
index 0000000..b83f5b7
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/VariationModal/VariationModal.js
@@ -0,0 +1,505 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Button,
+ Checkbox,
+ Dialog,
+ DialogActions,
+ DialogContent,
+ DialogTitle,
+ Divider,
+ FormControl,
+ FormControlLabel,
+ FormGroup,
+ IconButton,
+ Radio,
+ RadioGroup,
+ OutlinedInput,
+ Typography,
+ useMediaQuery,
+ useTheme,
+ Paper,
+} from "@mui/material";
+import AddIcon from "@mui/icons-material/Add";
+import CloseIcon from "@mui/icons-material/Close";
+import RemoveIcon from "@mui/icons-material/Remove";
+import clsx from "clsx";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import ConfigurationContext from "../../../context/Configuration";
+import UserContext from "../../../context/User";
+import HeadingView from "./HeadingView";
+import { useTranslation } from 'react-i18next';
+import useStyles from "./styles";
+
+function VariationModal({ isVisible, toggleModal, data }) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const configuration = useContext(ConfigurationContext);
+ const extraSmall = useMediaQuery(theme.breakpoints.down("lg"));
+ const [quantity, setQuantity] = useState(1);
+ const [selectedAddons, setSelectedAddons] = useState([]);
+ const [selectedVariation, setSelectedVariation] = useState(null);
+ const [specialInstructions, setSpecialInstructions] = useState("");
+ const {
+ restaurant: restaurantCart,
+ setCartRestaurant,
+ cart,
+ addQuantity,
+ addCartItem,
+ } = useContext(UserContext);
+
+ useEffect(() => {
+ setSelectedVariation({
+ ...data?.food.variations[0],
+ addons: data?.food.variations[0].addons.map((fa) => {
+ const addon = data?.addons.find((a) => a._id === fa);
+ const addonOptions = addon.options.map((ao) => {
+ return data?.options.find((o) => o._id === ao);
+ });
+ return {
+ ...addon,
+ options: addonOptions,
+ };
+ }),
+ });
+ return () => {
+ setSelectedAddons([]);
+ setSelectedVariation(null);
+ };
+ }, [data]);
+
+ const onAdd = useCallback(() => {
+ setQuantity(quantity + 1);
+ }, []);
+
+ const onRemove = useCallback(() => {
+ setQuantity((prev) => {
+ if (prev > 1) return prev - 1;
+ else return prev;
+ });
+ }, []);
+
+ const calculatePrice = useCallback(() => {
+ const variation = selectedVariation?.price;
+ let addons = 0;
+ selectedAddons?.forEach((addon) => {
+ addons += addon.options.reduce((acc, option) => {
+ return acc + option.price;
+ }, 0);
+ });
+ return (variation + addons).toFixed(2);
+ }, [data, selectedVariation]);
+
+ const onSelectVariation = useCallback(
+ (variation) => {
+ setSelectedVariation({
+ ...variation,
+ addons: variation.addons.map((fa) => {
+ const addon = data?.addons.find((a) => a._id === fa);
+ const addonOptions = addon.options.map((ao) => {
+ return data?.options.find((o) => o._id === ao);
+ });
+ return {
+ ...addon,
+ options: addonOptions,
+ };
+ }),
+ });
+ },
+ [data]
+ );
+
+ const onSelectOption = async (addon, option) => {
+ const index = selectedAddons.findIndex((ad) => ad._id === addon._id);
+ if (index > -1) {
+ if (addon.quantityMinimum === 1 && addon.quantityMaximum === 1) {
+ selectedAddons[index].options = [option];
+ } else {
+ const optionIndex = selectedAddons[index].options.findIndex(
+ (opt) => opt._id === option._id
+ );
+ if (optionIndex > -1) {
+ selectedAddons[index].options = selectedAddons[index].options.filter(
+ (opt) => opt._id !== option._id
+ );
+ } else {
+ selectedAddons[index].options.push(option);
+ }
+ if (!selectedAddons[index].options.length) {
+ selectedAddons.splice(index, 1);
+ }
+ }
+ } else {
+ selectedAddons.push({ _id: addon._id, options: [option] });
+ }
+ setSelectedAddons([...selectedAddons]);
+ };
+
+ const validateButton = () => {
+ if (!selectedVariation) return false;
+ const validatedAddons = [];
+ selectedVariation?.addons?.forEach((addon) => {
+ const selected = selectedAddons.find((ad) => ad._id === addon._id);
+ if (!selected && addon.quantityMinimum === 0) {
+ validatedAddons.push(false);
+ } else if (
+ selected &&
+ selected.options.length >= addon.quantityMinimum &&
+ selected.options.length <= addon.quantityMaximum
+ ) {
+ validatedAddons.push(false);
+ } else validatedAddons.push(true);
+ });
+ return validatedAddons.every((val) => val === false);
+ };
+
+ const validateOrderItem = () => {
+ const validatedAddons = selectedVariation?.addons.map((addon) => {
+ const selected = selectedAddons.find((ad) => ad._id === addon._id);
+
+ if (!selected && addon.quantityMinimum === 0) {
+ addon.error = false;
+ } else if (
+ selected &&
+ selected.options.length >= addon.quantityMinimum &&
+ selected.options.length <= addon.quantityMaximum
+ ) {
+ addon.error = false;
+ } else addon.error = true;
+ return addon;
+ });
+ setSelectedVariation({ ...selectedVariation, addons: validatedAddons });
+ return validatedAddons.every((addon) => addon.error === false);
+ };
+
+ const onPressAddToCart = async () => {
+ if (validateOrderItem()) {
+ if (!restaurantCart || data?.restaurant === restaurantCart) {
+ await addToCart(quantity, data?.restaurant !== restaurantCart);
+ }
+ }
+ };
+
+ const addToCart = async (quantity, clearFlag) => {
+ const addons = selectedAddons?.map((addon) => ({
+ ...addon,
+ options: addon.options.map(({ _id }) => ({
+ _id,
+ })),
+ }));
+
+ const cartItem = clearFlag
+ ? null
+ : cart.find((cartItem) => {
+ if (
+ cartItem._id === data?.food._id &&
+ cartItem.variation._id === selectedVariation?._id
+ ) {
+ if (cartItem.addons.length === addons.length) {
+ if (addons.length === 0) return true;
+ const addonsResult = addons.every((newAddon) => {
+ const cartAddon = cartItem.addons.find(
+ (ad) => ad._id === newAddon._id
+ );
+
+ if (!cartAddon) return false;
+ const optionsResult = newAddon.options.every((newOption) => {
+ const cartOption = cartAddon.options.find(
+ (op) => op._id === newOption._id
+ );
+
+ if (!cartOption) return false;
+ return true;
+ });
+
+ return optionsResult;
+ });
+
+ return addonsResult;
+ }
+ }
+ return false;
+ });
+
+ if (!cartItem) {
+ await setCartRestaurant(data?.restaurant);
+ await addCartItem(
+ data?.food?._id,
+ selectedVariation?._id,
+ quantity,
+ addons,
+ clearFlag,
+ specialInstructions
+ );
+ } else {
+ await addQuantity(cartItem.key, quantity);
+ }
+ toggleModal();
+ };
+
+ const radioORcheckboxes = useCallback(
+ (addon) => {
+ if (addon.quantityMinimum === 1 && addon.quantityMaximum === 1) {
+ return (
+
+ {addon?.options.map((option, index) => (
+
+ onSelectOption(addon, option)}
+ control={ }
+ label={
+
+ {option.title}
+
+ }
+ />
+
+ {`${configuration.currencySymbol} ${option.price.toFixed(2)}`}
+
+
+ ))}
+
+ );
+ } else {
+ return addon?.options.map((option, index) => (
+
+ }
+ onClick={() => onSelectOption(addon, option)}
+ name={option._id}
+ label={
+
+ {option.title}
+
+ }
+ />
+
+ {`${configuration.currencySymbol} ${option.price.toFixed(2)}`}
+
+
+ ));
+ }
+ },
+ [selectedVariation]
+ );
+
+ return (
+ <>
+
+
+
+
+ {t('customize')}
+
+
+
+
+
+
+
+
+
+
+ {data?.food?.title ?? ""}
+
+ {` ${
+ configuration.currencySymbol
+ } ${calculatePrice()}`}
+
+
+
+ {data?.food?.description ?? ""}
+
+
+
+
+
+ {data?.food.variations.length > 1 && (
+ <>
+
+
+
+ {data?.food.variations.map((variation, index) => (
+
+ onSelectVariation(variation)}
+ control={ }
+ label={
+
+ {variation.title}
+
+ }
+ />
+
+
+ {`${
+ configuration.currencySymbol
+ } ${variation.price.toFixed(2)}`}
+
+
+ ))}
+
+
+
+ >
+ )}
+
+
+
+ {selectedVariation?.addons?.map((addon, index) => (
+
+
+ {radioORcheckboxes(addon)}
+
+ ))}
+
+
+
+
+
+ setSpecialInstructions(event.target.value)
+ }
+ placeholder={t('placeholder')}
+ variant="filled"
+ color="primary"
+ inputProps={{
+ style: { color: theme.palette.grey[600] },
+ maxLength: 144,
+ }}
+ size="small"
+ />
+
+
+
+
+
+ {
+ e.preventDefault();
+ onRemove();
+ }}
+ >
+
+
+
+ {quantity}
+
+ {
+ e.preventDefault();
+ onAdd();
+ }}
+ >
+
+
+ {
+ e.preventDefault();
+ onPressAddToCart();
+ }}
+ >
+
+ {t('addToCart')}
+
+
+
+
+
+
+
+
+ >
+ );
+}
+export default React.memo(VariationModal);
diff --git a/enatega-multivendor-web/src/components/Modals/VariationModal/styles.js b/enatega-multivendor-web/src/components/Modals/VariationModal/styles.js
new file mode 100644
index 0000000..adb99fa
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/VariationModal/styles.js
@@ -0,0 +1,119 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiTextField-root": {
+ marginBottom: theme.spacing(3),
+ },
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiDialog-paper": {
+ backgroundColor: "transparent",
+ borderRadius: 40,
+ },
+ "& .MuiOutlinedInput-root": {
+ "& fieldset": {
+ borderColor: theme.palette.grey[200],
+ },
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ "& .MuiButton-contained": {
+ borderRadius: "0px",
+ height: "50px",
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ },
+ itemTitle: {
+ ...theme.typography.h5,
+ fontWeight: 500,
+ color: theme.palette.text.secondary,
+ },
+ priceTitle: {
+ ...theme.typography.subtitle2,
+ color: theme.palette.text.disabled,
+ },
+ infoStyle: {
+ ...theme.typography.caption,
+ textTransform: "uppercase",
+ background: "black",
+ color: "white",
+ padding: "4px 6px",
+ fontWeight: 500,
+ borderRadius: 10,
+ },
+ checkoutContainer: {
+ width: "200px",
+ borderRadius: "12px !important",
+ padding: "10px 0px",
+ "&:hover": {
+ background: theme.palette.primary.main,
+ },
+ },
+ imageContainer: {
+ width: "100%",
+ height: "180px",
+ backgroundImage: `url('https://images.deliveryhero.io/image/fd-pk/LH/v1bq-hero.jpg?width=2000&height=500')`,
+ backgroundSize: "cover",
+ backgroundPositionX: "center",
+ backgroundPositionY: "center",
+ position: "relative",
+ borderRadius: 40,
+ boxShadow:
+ "inset 0 0 0 1000px rgba(0, 0, 0, 0), inset 0 0 0 1000px theme.palette.common.lightBlack",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ checkoutText: {
+ ...theme.typography.h6,
+ fontWeight: 700,
+ fontSize: "0.875rem",
+ color: theme.palette.common.black,
+ },
+ closeContainer: {
+ background: theme.palette.common.white,
+ width: "54px",
+ height: "54px",
+ borderRadius: "50%",
+ position: "absolute",
+ right: 0,
+ top: 0,
+ },
+ itemError: {
+ color: theme.palette.common.white,
+ backgroundColor: theme.palette.warning.main,
+ },
+ disableBtn: {
+ background: theme.palette.grey[400],
+ "&:hover": {
+ background: theme.palette.grey[400],
+ },
+ },
+ outerContainer: {
+ borderRadius: 40,
+ background: "#F5F6F6",
+ },
+ innerContainer: {
+ background: "#F5F6F6",
+ padding: "20px 40px",
+ },
+ lowerContainer: {
+ background: theme.palette.common.white,
+ boxShadow: theme.shadows["2"],
+ borderRadius: 20,
+ },
+ mr: {
+ marginRight: theme.spacing(1),
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/Modals/index.js b/enatega-multivendor-web/src/components/Modals/index.js
new file mode 100644
index 0000000..9a376ca
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Modals/index.js
@@ -0,0 +1,7 @@
+import RestaurantInfo from "./RestaurantInfo/RestaurantInfo";
+import VariationModal from "./VariationModal/VariationModal";
+import RestaurantClose from "./RestaurantClose/RestaurantClose";
+import ClearCart from "./ClearCart/ClearCart";
+import AddressModal from "./AddressModal/AddressModal";
+
+export { AddressModal, RestaurantInfo, VariationModal, RestaurantClose, ClearCart };
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrder/Card/ActiveOrder.js b/enatega-multivendor-web/src/components/Orders/ActiveOrder/Card/ActiveOrder.js
new file mode 100644
index 0000000..d1a2846
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrder/Card/ActiveOrder.js
@@ -0,0 +1,67 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Grid, Box, Typography, useTheme, useMediaQuery } from "@mui/material";
+import React, { useContext } from "react";
+import UserContext from "../../../../context/User";
+import { Link as RouterLink } from "react-router-dom";
+import useStyles from "./styles";
+import { useSubscription } from "@apollo/client";
+import { subscriptionOrder } from "../../../../apollo/server";
+import gql from "graphql-tag";
+import { OrderCard } from "../OrderCard/OrderCard";
+import { ACTIVE_STATUS } from "../../../../utils/constantValues";
+
+function ActiveOrder(props) {
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id: props._id } }
+ );
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+ const { loadingOrders, errorOrders, orders } = useContext(UserContext);
+ const order = orders.filter((o) => ACTIVE_STATUS.includes(o.orderStatus));
+ if (loadingOrders) return Loading... ;
+ if (errorOrders) {
+ if (errorOrders.message === "Unauthenticated!") {
+ return null;
+ }
+ return {errorOrders.message} ;
+ }
+
+ return (
+
+
+
+ {order.map((item, index) => (
+ <>{index < 4 && }>
+ ))}
+
+
+
+ {order.length > 4 && (
+
+
+
+ See More
+
+
+
+ )}
+
+
+
+ );
+}
+
+export default React.memo(ActiveOrder);
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrder/Card/styles.js b/enatega-multivendor-web/src/components/Orders/ActiveOrder/Card/styles.js
new file mode 100644
index 0000000..a0bee81
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrder/Card/styles.js
@@ -0,0 +1,25 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ mt: {
+ marginTop: theme.spacing(4),
+ },
+ m: {
+ marginTop: theme.spacing(4),
+ marginRight: theme.spacing(10),
+ },
+ link: {
+ textDecoration: "none",
+ },
+ button: {
+ background: theme.palette.primary.main,
+ padding: "10px",
+ width: theme.spacing(25),
+ borderRadius: "5px",
+ "&:hover": {
+ backgroundColor: theme.palette.success.main,
+ },
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrder/LinearProgress/ProgressBar.js b/enatega-multivendor-web/src/components/Orders/ActiveOrder/LinearProgress/ProgressBar.js
new file mode 100644
index 0000000..000f537
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrder/LinearProgress/ProgressBar.js
@@ -0,0 +1,55 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, useTheme, LinearProgress, useMediaQuery } from "@mui/material";
+import React, { useEffect, useState, useRef } from "react";
+import useStyles from "./styles";
+
+function ProgressBar(props) {
+ const [progress, setProgress] = useState(0);
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+ let timer = useRef(null);
+ useEffect(() => {
+ timer.current = setInterval(() => {
+ setProgress((oldProgress) => {
+ if (oldProgress === 100) {
+ return 0;
+ }
+ const diff = Math.random() * 10;
+ const abc = Math.min(oldProgress + diff, 100);
+ return abc;
+ });
+ }, 2500);
+
+ return () => {
+ clearInterval(timer.current);
+ };
+ }, []);
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(ProgressBar);
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrder/LinearProgress/styles.js b/enatega-multivendor-web/src/components/Orders/ActiveOrder/LinearProgress/styles.js
new file mode 100644
index 0000000..a8d527e
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrder/LinearProgress/styles.js
@@ -0,0 +1,15 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ margin: {
+ margin: theme.spacing(1),
+ },
+ linearProgress: {
+ width: (extraSmall) => (extraSmall ? theme.spacing(4) : theme.spacing(6)),
+ },
+ bar: {
+ borderRadius: 10,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrder/OrderCard/OrderCard.js b/enatega-multivendor-web/src/components/Orders/ActiveOrder/OrderCard/OrderCard.js
new file mode 100644
index 0000000..9dadec9
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrder/OrderCard/OrderCard.js
@@ -0,0 +1,103 @@
+import {
+ Grid,
+ Box,
+ Typography,
+ useTheme,
+ Paper,
+ useMediaQuery,
+} from "@mui/material";
+import React from "react";
+import { Link as RouterLink } from "react-router-dom";
+import useStyles from "./styles";
+import ProgressBar from "../LinearProgress/ProgressBar";
+import { useTranslation } from 'react-i18next';
+const { t } = useTranslation();
+const orderStatuses = [
+ {
+ key: t('pending'),
+ status: 1,
+ statusText: "Your order is still pending.",
+ },
+ {
+ key: t('accepted'),
+ status: 2,
+ statusText: "Restaurant is preparing Food.",
+ },
+ {
+ key: t('assigned'),
+ status: 3,
+ statusText: "Your order is assigned to rider.",
+ },
+ {
+ key: t('picked'),
+ status: 4,
+ statusText: "Rider is on the way.",
+ },
+ {
+ key: t('delivered'),
+ status: 5,
+ statusText: "Order is delivered.",
+ },
+ {
+ key: t('completed'),
+ status: 6,
+ statusText: "Order is completed.",
+ },
+];
+
+const checkStatus = (status) => {
+ const obj = orderStatuses.filter((x) => {
+ return x.key === status;
+ });
+ return obj[0];
+};
+export const OrderCard = (props) => {
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+ const { item } = props;
+
+ return (
+ <>
+
+
+
+
+
+
+ {item.orderId}
+
+
+
+ {checkStatus(item.orderStatus)?.statusText}
+
+
+
+
+ {checkStatus(item.orderStatus)?.key}
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrder/OrderCard/styles.js b/enatega-multivendor-web/src/components/Orders/ActiveOrder/OrderCard/styles.js
new file mode 100644
index 0000000..618cf09
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrder/OrderCard/styles.js
@@ -0,0 +1,21 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ mt: {
+ marginTop: theme.spacing(4),
+ },
+ box: {
+ padding: "20px",
+ background: theme.palette.common.white,
+ borderRadius: 0,
+ boxShadow: `0px 1px 20px 1px ${theme.palette.grey[300]}`,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ link: {
+ textDecoration: "none",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrderCard/ActiveOrderCard.js b/enatega-multivendor-web/src/components/Orders/ActiveOrderCard/ActiveOrderCard.js
new file mode 100644
index 0000000..4266676
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrderCard/ActiveOrderCard.js
@@ -0,0 +1,175 @@
+import {
+ Box,
+ Divider,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import React, {useContext} from "react";
+import { Link as RouterLink } from "react-router-dom";
+import ConfigurationContext from "../../../context/Configuration";
+import { Status } from "../Status/Status";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+
+function ActiveOrderCard(props) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+ const configuration = useContext(ConfigurationContext);
+
+ const STATUS_ORDER = [
+ t('pending'),
+ t('accepted'),
+ t('assigned'),
+ t('picked'),
+ t('delivered'),
+ t('completed'),
+ ];
+
+ return (
+
+
+
+
+
+
+ {props.restaurant?.name ?? "..."}
+
+
+
+
+
+
+
+
+
+
+
+ {props?.items.length} item(s) |{" "}
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.orderAmount
+ ).toFixed(2)}`}
+
+
+
+ {/* {props?.items?.length} item(s) |
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.orderAmount
+ ).toFixed(2)}`} */}
+ {props.orderStatus === "PENDING"
+ ? t('orderPending')
+ : props.orderStatus === "ASSIGNED" ||
+ props.orderStatus === "ACCEPTED"
+ ? t('restaurantDeliver')
+ : props.orderStatus === "PICKED"
+ ? t('riderDeliver')
+ : null}
+
+ {/*
+ {new Date(props.createdAt).toDateString()}
+ */}
+
+
+
+
+
+
+ {/* {props.items.map((item) => (
+
+
+ {`${item.quantity}x ${item.title}${
+ item.variation.title ? `(${item.variation.title})` : ""
+ }`}
+
+ {item.addons.map((addon) =>
+ addon.options.map((option, index) => (
+
+ +{option.title}
+
+ ))
+ )}
+
+ ))} */}
+
+
+
+
+ {t(props?.orderStatus)}
+
+
+
+
+
+ );
+}
+
+export default React.memo(ActiveOrderCard);
diff --git a/enatega-multivendor-web/src/components/Orders/ActiveOrderCard/styles.js b/enatega-multivendor-web/src/components/Orders/ActiveOrderCard/styles.js
new file mode 100644
index 0000000..d6c7aa9
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/ActiveOrderCard/styles.js
@@ -0,0 +1,45 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ link: {
+ textDecoration: "none",
+ },
+ card: {
+ background: theme.palette.primary.main,
+ padding: theme.spacing(2),
+ marginBottom: theme.spacing(4),
+
+ borderRadius: theme.spacing(2),
+ },
+ img: {
+ borderRadius: theme.spacing(2),
+ width: 100,
+ height: 100,
+ [theme.breakpoints.down("md")]: {
+ width: 60,
+ height: 60,
+ },
+ },
+ divider: {
+ background: theme.palette.common.black,
+ marginTop: 10,
+ },
+ status: {
+ borderRadius: 10,
+ backgroundColor: theme.palette.common.white,
+ padding: 13,
+ width: 100,
+ marginTop: theme.spacing(2),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/DetailedOrderCard/DetailedOrderCard.js b/enatega-multivendor-web/src/components/Orders/DetailedOrderCard/DetailedOrderCard.js
new file mode 100644
index 0000000..cad9e63
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/DetailedOrderCard/DetailedOrderCard.js
@@ -0,0 +1,166 @@
+import { Box, Typography, useMediaQuery, useTheme } from "@mui/material";
+import React, { useContext } from "react";
+import { Link as RouterLink } from "react-router-dom";
+import ConfigurationContext from "../../../context/Configuration";
+import { Status } from "../Status/Status";
+import useStyles from "./styles";
+import { useTranslation } from "react-i18next";
+
+function DetailedOrderCard(props) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+
+ const configuration = useContext(ConfigurationContext);
+ const STATUS_ORDER = [
+ t("pending"),
+ t("accepted"),
+ t("assigned"),
+ t("picked"),
+ t("delivered"),
+ t("completed"),
+ ];
+ return (
+
+
+
+
+
+
+
+
+
+ {(props.restaurant?.name ?? "...")
+ .slice(0, 8)
+ .replace(/\s/g, "") +
+ (props.restaurant?.name?.length > 9 ? "..." : "")}
+
+
+
+
+
+
+
+
+
+
+
+
+ {t(props.orderStatus)} {console.log(props?.orderStatus)}
+
+
+
+
+
+
+
+ {props?.items.length} item(s) |{" "}
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.orderAmount
+ ).toFixed(2)}`}
+
+
+
+
+ {props.orderStatus === "PENDING"
+ ? t("orderPending")
+ : props.orderStatus === "ASSIGNED" ||
+ props.orderStatus === "ACCEPTED"
+ ? t("restaurantDeliver").slice(0, 40) + "..."
+ : props.orderStatus === "PICKED"
+ ? t("riderDeliver").slice(0, 40) + "..."
+ : null}
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(DetailedOrderCard);
diff --git a/enatega-multivendor-web/src/components/Orders/DetailedOrderCard/styles.js b/enatega-multivendor-web/src/components/Orders/DetailedOrderCard/styles.js
new file mode 100644
index 0000000..1d82bb2
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/DetailedOrderCard/styles.js
@@ -0,0 +1,58 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ textBold: {
+ fontWeight: 700,
+ maxWidth: "110px",
+ },
+ textPrice: {
+ fontWeight: 700,
+ marginTop: "10px",
+ marginBottom: "10px",
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ link: {
+ textDecoration: "none",
+ },
+
+ card: {
+ background: "White",
+ //padding: theme.spacing(2),
+ //marginBottom: theme.spacing(4),
+ borderRadius: theme.spacing(2),
+ [theme.breakpoints.down("sm")]: {
+ width: "250px",
+ marginLeft: "-20px",
+ },
+ },
+ img: {
+ borderStartStartRadius: theme.spacing(2),
+ borderBottomLeftRadius: theme.spacing(2),
+ width: 100,
+ height: 100,
+ [theme.breakpoints.down("sm")]: {
+ width: 60,
+ height: 60,
+ borderBottomLeftRadius: theme.spacing(0),
+ borderTopRightRadius: theme.spacing(2),
+ },
+ },
+ divider: {
+ background: theme.palette.common.black,
+ marginTop: 10,
+ },
+ status: {
+ borderRadius: 10,
+ backgroundColor: theme.palette.common.white,
+ padding: 13,
+ width: 100,
+ marginTop: theme.spacing(2),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/AmountCard.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/AmountCard.js
new file mode 100644
index 0000000..c8cb867
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/AmountCard.js
@@ -0,0 +1,191 @@
+import { Box, Divider, Grid, Paper, Typography, useTheme } from "@mui/material";
+import clsx from "clsx";
+import React, { useContext } from "react";
+import ConfigurationContext from "../../../context/Configuration";
+import { calculatePrice } from "../../../utils/customFunction";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+export default function AmountCard(props) {
+ const { t } = useTranslation();
+ const classes = useStyles();
+ const configuration = useContext(ConfigurationContext);
+ const deliveryCharges = props.isPickedUp ? 0 : props.deliveryCharges;
+ const theme = useTheme();
+ return (
+ <>
+
+
+
+
+
+ {props.items.map((item) => (
+
+
+
+ {`${item.quantity}x`}
+
+
+
+
+ {`${item.title}${
+ item.variation.title ? `(${item.variation.title})` : ""
+ }`}
+
+
+ {item.addons.map((addon, index) => (
+
+ +{addon.options.map((option) => option.title)}
+
+ ))}
+
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ calculatePrice(item)
+ ).toFixed(2)}`}
+
+
+
+
+
+
+ ))}
+
+
+
+
+ {t('subTotal')}
+
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.orderAmount -
+ deliveryCharges -
+ props.taxationAmount -
+ props.tipping
+ ).toFixed(2)}`}
+
+
+
+
+
+
+
+ {t('tip')}
+
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.tipping
+ ).toFixed(2)}`}
+
+
+
+
+
+
+ {t('taxFee')}
+
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.taxationAmount
+ ).toFixed(2)}`}
+
+
+
+ {!props.isPickedUp && (
+
+
+
+ {t('deliveryFee')}
+
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.deliveryCharges
+ ).toFixed(2)}`}
+
+
+
+ )}
+
+
+
+
+ {t('total')}
+
+
+ (Incl. TAX)
+
+
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ props.orderAmount
+ ).toFixed(2)}`}
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/DetailCard.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/DetailCard.js
new file mode 100644
index 0000000..661032a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/DetailCard.js
@@ -0,0 +1,122 @@
+import { Divider, Grid, Paper, Typography, useTheme } from "@mui/material";
+import clsx from "clsx";
+import React from "react";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+function DetailCard(props) {
+ const classes = useStyles();
+ const theme = useTheme();
+ const { t } = useTranslation()
+
+ return (
+
+
+
+
+ {t('orderDetail')}
+
+
+
+
+ {/* first box */}
+
+
+
+ {t('orderFrom')}:
+
+
+
+
+ {props.restaurant?.name ?? "..."}
+
+
+
+
+
+
+ {t('orderNo')}:
+
+
+
+
+ {props.orderId ?? "..."}
+
+
+
+
+
+
+ {!!props.isPickedUp ? "Pick Up Address:" : t('deliveryAddress')+":"}
+
+
+
+ {!!props.isPickedUp ? (
+
+ {props.restaurant?.address ?? "..."}
+
+ ) : (
+
+ {props.deliveryAddress?.deliveryAddress ?? "..."}
+
+ )}
+
+
+
+
+
+ );
+}
+
+export default DetailCard;
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/Modal.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/Modal.js
new file mode 100644
index 0000000..2386e1d
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/Modal.js
@@ -0,0 +1,58 @@
+import * as React from "react";
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import Typography from "@mui/material/Typography";
+import Modal from "@mui/material/Modal";
+import useStyles from "./styles";
+import { Link as RouterLink } from "react-router-dom";
+
+export default function ModalView() {
+ const [open, setOpen] = React.useState(true);
+ const classes = useStyles();
+ const handleClose = () => setOpen(false);
+ return (
+ <>
+
+
+
+ Your order was declined
+
+
+
+
+ Place another order
+
+
+
+ Cancel
+
+
+
+
+ >
+ );
+}
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/StatusCard.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/StatusCard.js
new file mode 100644
index 0000000..f1c168b
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/StatusCard.js
@@ -0,0 +1,249 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, Typography, useTheme, Avatar, Divider } from "@mui/material";
+import useMediaQuery from "@mui/material/useMediaQuery";
+import React from "react";
+import useStyles from "./styles";
+import Scooter from "../../../assets/images/scooter.png";
+import Arrow from "../../../assets/images/arrow.png";
+import Preparing from "../../../assets/images/preparing.png";
+import Delivered from "../../../assets/images/delivered.png";
+import { useTranslation } from 'react-i18next';
+
+export default function StatusCard(props) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+ const {
+ orderStatus = "CANCELLED",
+ createdAt,
+ acceptedAt,
+ deliveredAt,
+ pickedAt,
+ assignedAt,
+ } = props;
+
+ const STATUS_ORDER = [
+ t('pending'),
+ t('accepted'),
+ t('assigned'),
+ t('picked'),
+ t('delivered'),
+ t('completed'),
+ ];
+
+ const formatTime = (date) =>
+ new Date(date).toLocaleTimeString("en-US", { timeStyle: "short" });
+
+ function getOrderStatusValues({
+ preparationTime,
+ isPickedUp,
+ orderStatus,
+ restaurant,
+ }) {
+ const calculateTime = Math.floor(
+ (new Date(preparationTime) - Date.now()) / 1000 / 60
+ );
+
+ let description = "";
+ let estimated_time = "";
+ let feedback = "";
+ let status_image = "";
+ switch (orderStatus) {
+ case "PENDING":
+ description = t('pendingText');
+ estimated_time = restaurant?.name ?? "...";
+ feedback = "";
+ status_image = Arrow;
+ break;
+ case "ACCEPTED":
+ description = `${t('acceptedText')}`;
+ estimated_time =
+ calculateTime > 0
+ ? `${calculateTime} Min`
+ : t('orderLateText');
+ feedback = `Preparing your food.${
+ isPickedUp ? "" : t('riderPickText')
+ }`;
+ status_image = Preparing;
+ break;
+ case "ASSIGNED":
+ description = `${t('orderIs')}`;
+ estimated_time = t('orderAssigned');
+ feedback = `${t('orderAssignedToRider')}`;
+ status_image = Scooter;
+ break;
+ case "PICKED":
+ description = t('orderIs');
+ estimated_time = t('picked');
+ feedback = t('riderOnWay');
+ status_image = Scooter;
+ break;
+ case "DELIVERED":
+ description = t('orderHasBeen');
+ estimated_time = t('delivered');
+ feedback = t('enjoyYourMeal');
+ status_image = Delivered;
+ break;
+ case "CANCELLED":
+ description = t('orderHasBeen');
+ estimated_time = t('cancelled');
+ feedback = "";
+ status_image = null;
+ break;
+ default:
+ break;
+ }
+ return {
+ description,
+ estimated_time,
+ feedback,
+ status_image,
+ };
+ }
+
+ const { description, estimated_time, status_image } =
+ getOrderStatusValues(props);
+
+ return (
+ <>
+
+
+
+
+ {description}
+
+
+
+ {estimated_time}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export function StatusRow({ first, isEta, status, time, number, last }) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+
+ return (
+
+
+
+ {number}
+
+
+
+
+ {status}
+
+
+ {isEta ? "ETA " : ""}
+ {time}
+
+
+ {!last && (
+
+ )}
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/SupportCard.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/SupportCard.js
new file mode 100644
index 0000000..f4df6b0
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/SupportCard.js
@@ -0,0 +1,37 @@
+import { Button, Grid, Paper, Typography } from "@mui/material";
+import clsx from "clsx";
+import React from "react";
+import useStyles from "./styles";
+
+function SupportCard() {
+ const classes = useStyles();
+ return (
+
+
+
+
+ Need support
+
+
+ Questions regarding your order? Reach out to us.
+
+
+
+
+ HELP CENTER
+
+
+
+
+ );
+}
+
+export default SupportCard;
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/TrackingRider.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/TrackingRider.js
new file mode 100644
index 0000000..acda59a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/TrackingRider.js
@@ -0,0 +1,46 @@
+import React, { useEffect } from "react";
+import { useQuery } from "@apollo/client";
+import gql from "graphql-tag";
+import { Marker } from "@react-google-maps/api";
+import { subscriptionRiderLocation, rider } from "../../../apollo/server";
+import RiderMarker from "../../../assets/images/rider-map-2.png";
+
+const RIDER = gql`
+ ${rider}
+`;
+const RIDER_LOCATION = gql`
+ ${subscriptionRiderLocation}
+`;
+const TrackingRider = ({ id }) => {
+ const { loading, error, data, subscribeToMore } = useQuery(RIDER, {
+ variables: { id },
+ fetchPolicy: "network-only",
+ });
+ useEffect(() => {
+ const unsubscribe = subscribeToMore({
+ document: RIDER_LOCATION,
+ variables: { riderId: id },
+ updateQuery: (prev, { subscriptionData }) => {
+
+ if (!subscriptionData.data) return prev;
+ return {
+ rider: {
+ ...prev.rider,
+ ...subscriptionData.data.subscriptionRiderLocation,
+ },
+ };
+ },
+ });
+ return unsubscribe;
+ }, [id, subscribeToMore]);
+
+ if (loading) return null;
+ if (error) return null;
+ let riderCoordinates = {
+ lat: parseFloat(data.rider.location.coordinates[1]),
+ lng: parseFloat(data.rider.location.coordinates[0]),
+ };
+ return ;
+};
+
+export default TrackingRider;
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/index.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/index.js
new file mode 100644
index 0000000..7e5f462
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/index.js
@@ -0,0 +1,6 @@
+import StatusCard from "./StatusCard";
+import DetailCard from "./DetailCard";
+import SupportCard from "./SupportCard";
+import AmountCard from "./AmountCard";
+import ModalView from "./Modal";
+export { StatusCard, DetailCard, SupportCard, AmountCard, ModalView };
diff --git a/enatega-multivendor-web/src/components/Orders/OrderDetail/styles.js b/enatega-multivendor-web/src/components/Orders/OrderDetail/styles.js
new file mode 100644
index 0000000..6ff4d03
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/OrderDetail/styles.js
@@ -0,0 +1,136 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ w70: {
+ width: "70%",
+ },
+ mv2: {
+ margin: theme.spacing(2, 0),
+ },
+ mt3: {
+ marginTop: theme.spacing(3),
+ },
+ ph1: {
+ padding: theme.spacing(0, 1),
+ },
+ center: {
+ justifyContent: "center",
+ padding: theme.spacing(2, 3),
+ },
+ cardContainer: {
+ background: theme.palette.common.white,
+ borderRadius: 0,
+ },
+ dot: {
+ fontSize: 10,
+ margin: theme.spacing(2, 0),
+ marginRight: theme.spacing(0.5),
+ },
+ imgContainer: {
+ maxWidth: "158px",
+ backgroundSize: "cover",
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ cardRow: {
+ display: "flex",
+ justifyContent: "space-between",
+ padding: theme.spacing(0.1, 0),
+ },
+ btnBase: {
+ borderRadius: "0px",
+ },
+ topOrder: {
+ display: "flex",
+ alignItems: "center",
+ },
+ innerTopOrder: {
+ display: "flex",
+ alignItems: "center",
+ justifyContent: "center",
+ [theme.breakpoints.down("sm")]: {
+ padding: 10,
+ backgroundColor: theme.palette.common.black,
+ width: "100%",
+ justifyContent: "flex-start",
+ borderRadius: 20,
+ },
+ },
+ typos: {
+ [theme.breakpoints.down("sm")]: {
+ display: "flex",
+ width: "100%",
+ justifyContent: "space-between",
+ },
+ },
+
+ innerBottomOrder: {
+ display: "flex",
+ justifyContent: "flex-start",
+ alignItems: "center",
+ [theme.breakpoints.down("sm")]: {
+ width: "100%",
+ marginTop: theme.spacing(3),
+ },
+ },
+ heading: {
+ fontSize: "2.175rem",
+ },
+ bottomOrder: {
+ display: "flex",
+ alignItems: "center",
+ justifyContent: "space-around",
+ [theme.breakpoints.down("sm")]: {
+ flexDirection: "column",
+ marginBottom: theme.spacing(3),
+ padding: 10,
+ },
+ },
+ mediumText: {
+ fontSize: "1.0rem",
+ },
+ mediumBoldText: {
+ fontSize: "1.2rem",
+ color: theme.palette.common.black,
+ fontWeight: "600",
+ },
+ modal: {
+ position: "absolute",
+ top: "50%",
+ left: "50%",
+ transform: "translate(-50%, -50%)",
+ width: 450,
+ backgroundColor: theme.palette.common.white,
+ border: "2px solid theme.palette.common.white",
+ outline: 0,
+ borderRadius: 10,
+ padding: `${theme.spacing(6)} ${theme.spacing(4)} ${theme.spacing(
+ 6
+ )} ${theme.spacing(4)}`,
+ },
+ btn: {
+ width: "200px",
+ borderRadius: 20,
+ padding: 10,
+ marginTop: theme.spacing(4),
+ fontWeight: 600,
+ color: "black",
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+
+ btnWrapper: {
+ display: "flex",
+ justifyContent: "space-between",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/PastOrderCard/PastOrderCard.js b/enatega-multivendor-web/src/components/Orders/PastOrderCard/PastOrderCard.js
new file mode 100644
index 0000000..c79bd30
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/PastOrderCard/PastOrderCard.js
@@ -0,0 +1,230 @@
+import {
+ Grid,
+ Box,
+ Button,
+ Typography,
+ useTheme,
+ CircularProgress,
+ Divider,
+ useMediaQuery,
+} from "@mui/material";
+import React, { useContext, useState } from "react";
+import { useNavigate } from "react-router";
+import ConfigurationContext from "../../../context/Configuration";
+import UserContext from "../../../context/User";
+import useStyles from "./styles";
+import { Status } from "../Status/Status";
+import { Link as RouterLink } from "react-router-dom";
+import { useTranslation } from 'react-i18next';
+function PastOrderCard({ item }) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const navigate = useNavigate();
+ const [loading, setLoading] = useState(false);
+ const configuration = useContext(ConfigurationContext);
+ const { setCartRestaurant, addCartItem } = useContext(UserContext);
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+
+ const STATUS_ORDER = [
+ t('pending'),
+ t('accepted'),
+ t('assigned'),
+ t('picked'),
+ t('delivered'),
+ t('completed'),
+ ];
+
+ const onAddToCart = async () => {
+ setLoading(true);
+ try {
+ await setCartRestaurant(item.restaurant._id);
+ item.items.forEach(async (cartItem, index) => {
+ const addons = cartItem.addons.map((addon) => ({
+ _id: addon._id,
+ options: addon.options.map(({ _id }) => ({
+ _id,
+ })),
+ }));
+ await addCartItem(
+ cartItem.food,
+ cartItem.variation._id,
+ cartItem.quantity,
+ addons,
+ index === 0
+ );
+ });
+ navigate(`/restaurant/${item.restaurant.slug}`, {
+ state: {
+ id: item.restaurant._id,
+ name: item.restaurant.name,
+ image: item.restaurant.image,
+ slug: item.restaurant.slug,
+ },
+ });
+ } catch (e) {
+ console.error(e);
+ } finally {
+ setLoading(false);
+ }
+ };
+ return (
+
+
+
+
+
+
+ {item.restaurant?.name ?? "..."}
+
+
+
+
+
+
+
+
+
+ {item?.items.length} item(s) |{" "}
+ {`${configuration.currencySymbol} ${parseFloat(
+ item.orderAmount
+ ).toFixed(2)}`}
+
+
+
+
+ {item?.orderStatus === "CANCELLED"
+ ? t('orderCancelled')
+ : item?.orderStatus === "DELIVERED"
+ ? t('orderCompleted')
+ : null}
+
+
+
+
+
+ {new Date(item.createdAt).toDateString()}
+
+ {
+ e.preventDefault();
+ onAddToCart();
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ {t('reorder')}
+
+ )}
+
+ {!item.review && (
+ {
+ e.preventDefault();
+ navigate(`/order-detail/${item._id}`);
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ {t('review')}
+
+ )}
+
+ )}
+
+
+
+
+
+
+
+
+
+
+ {item?.orderStatus}
+
+
+
+
+
+ );
+}
+
+export default React.memo(PastOrderCard);
diff --git a/enatega-multivendor-web/src/components/Orders/PastOrderCard/styles.js b/enatega-multivendor-web/src/components/Orders/PastOrderCard/styles.js
new file mode 100644
index 0000000..f026691
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/PastOrderCard/styles.js
@@ -0,0 +1,63 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ link: {
+ textDecoration: "none",
+ },
+ disabledText: {
+ color: "black",
+ },
+ textBold: {
+ fontWeight: 600,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ line: {
+ margin: theme.spacing(2, 0),
+ },
+ card: {
+ background: theme.palette.primary.dark,
+ boxShadow: " 0px 0px 8px rgba(0, 0, 0, 0.18)",
+ padding: theme.spacing(2),
+ marginBottom: theme.spacing(4),
+ borderRadius: theme.spacing(2),
+ },
+ img: {
+ borderRadius: theme.spacing(2),
+ width: 100,
+ height: 100,
+ [theme.breakpoints.down("md")]: {
+ width: 60,
+ height: 60,
+ },
+ },
+ divider: {
+ background: theme.palette.common.black,
+ marginTop: 10,
+ },
+ status: {
+ borderRadius: 10,
+ backgroundColor: theme.palette.primary.dark,
+ padding: 13,
+ width: 100,
+ marginTop: theme.spacing(2),
+ border: "2px solid",
+ borderColor: theme.palette.button.main
+ },
+ reOrder: {
+ maxWidth: "auto",
+ border: `1px solid ${theme.palette.primary.main}`,
+ borderRadius: 0,
+ padding: `0px ${theme.spacing(1)}`,
+ },
+ review: {
+ maxWidth: "auto",
+ border: `1px solid ${theme.palette.primary.main}`,
+ borderRadius: 0,
+ padding: `0px ${theme.spacing(1)}`,
+ marginLeft: " 10px",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/PaymentOrderCard/PaymentOrderCard.js b/enatega-multivendor-web/src/components/Orders/PaymentOrderCard/PaymentOrderCard.js
new file mode 100644
index 0000000..d562157
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/PaymentOrderCard/PaymentOrderCard.js
@@ -0,0 +1,70 @@
+import { Grid, Paper, Typography } from "@mui/material";
+import clsx from "clsx";
+import React from "react";
+import ThreeDots from "../../ThreeDots/ThreeDots";
+import { DetailCard } from "../OrderDetail";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+function PaymentOrderCard(props) {
+ const { t } = useTranslation()
+ const classes = useStyles();
+ return (
+
+
+
+
+
+
+ {t('personalDetail')}
+
+
+
+
+
+
+ {t('name')}
+
+
+
+
+ {props.user?.name ?? "..."}
+
+
+
+
+
+
+ {t('email')}
+
+
+
+
+ {props.user?.email ?? "..."}
+
+
+
+
+
+
+ {t('phone')}
+
+
+
+
+ {props.user.phone ?? "..."}
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(PaymentOrderCard);
diff --git a/enatega-multivendor-web/src/components/Orders/PaymentOrderCard/styles.js b/enatega-multivendor-web/src/components/Orders/PaymentOrderCard/styles.js
new file mode 100644
index 0000000..810d29a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/PaymentOrderCard/styles.js
@@ -0,0 +1,52 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyles = makeStyles((theme) => ({
+ w70: {
+ width: "70%",
+ },
+ mv2: {
+ margin: theme.spacing(2, 0),
+ },
+ mt3: {
+ marginTop: theme.spacing(3),
+ },
+ ph1: {
+ padding: theme.spacing(0, 1),
+ },
+ center: {
+ justifyContent: "center",
+ padding: theme.spacing(2, 3),
+ },
+ cardContainer: {
+ background: theme.palette.common.white,
+ borderRadius: 0,
+ },
+ dot: {
+ fontSize: 10,
+ margin: theme.spacing(2, 0),
+ marginRight: theme.spacing(0.5),
+ },
+ imgContainer: {
+ maxWidth: "158px",
+ backgroundSize: "cover",
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ cardRow: {
+ display: "flex",
+ justifyContent: "space-between",
+ padding: theme.spacing(0.1, 0),
+ },
+ btnBase: {
+ borderRadius: "0px",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Orders/Status/Status.js b/enatega-multivendor-web/src/components/Orders/Status/Status.js
new file mode 100644
index 0000000..616a2d0
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/Status/Status.js
@@ -0,0 +1,84 @@
+import { Box, useTheme } from "@mui/material";
+import useMediaQuery from "@mui/material/useMediaQuery";
+import React from "react";
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ center: {
+ justifyContent: "center",
+ padding: theme.spacing(2, 3),
+ },
+
+ smallText: {
+ fontSize: "0.875rem",
+ },
+
+ innerBottomOrder: {
+ display: "flex",
+ justifyContent: "flex-start",
+ alignItems: "center",
+ [theme.breakpoints.down("sm")]: {
+ width: "100%",
+ marginTop: theme.spacing(3),
+ },
+ },
+ heading: {
+ fontSize: "2.175rem",
+ },
+ bottomOrder: {
+ display: "flex",
+ alignItems: "center",
+ justifyContent: "space-around",
+ [theme.breakpoints.down("sm")]: {
+ flexDirection: "column",
+ marginBottom: theme.spacing(3),
+ padding: 10,
+ },
+ },
+}));
+
+export function Status({
+ first,
+ isEta,
+ last,
+ isActive,
+ firstCol = "#90EA93",
+ secondCol = "#C4C4C4",
+}) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+
+ return (
+
+
+ {!last && (
+
+ )}
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/Orders/Tabs/Tabs.js b/enatega-multivendor-web/src/components/Orders/Tabs/Tabs.js
new file mode 100644
index 0000000..727d15a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/Tabs/Tabs.js
@@ -0,0 +1,57 @@
+import React from "react";
+import { Box, Button } from "@mui/material";
+import makeStyles from "@mui/styles/makeStyles";
+import { useTranslation } from 'react-i18next';
+const useStyles = makeStyles((theme) => ({
+ container: {
+ backgroundColor: theme.palette.primary.main,
+ borderRadius: 15,
+ width: 280,
+ height: 60,
+ position: "absolute",
+ top: -30,
+ left: "50%",
+ transform: "translate(-50%, 0px)",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ btn: {
+ color: theme.palette.common.black,
+ width: 120,
+ fontSize: "0.775rem",
+ borderRadius: 12,
+ fontWeight: 700,
+ },
+}));
+const OrderTabs = ({ tab, setTab }) => {
+ const classes = useStyles();
+ const { t } = useTranslation()
+ return (
+
+ setTab(0)}
+ >
+ {t('activeOrders')}
+
+ setTab(1)}
+ >
+ {t('pastOrders')}
+
+
+ );
+};
+export default OrderTabs;
diff --git a/enatega-multivendor-web/src/components/Orders/index.js b/enatega-multivendor-web/src/components/Orders/index.js
new file mode 100644
index 0000000..1eee9c8
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Orders/index.js
@@ -0,0 +1,20 @@
+import PastOrderCard from "./PastOrderCard/PastOrderCard";
+import ActiveOrderCard from "./ActiveOrderCard/ActiveOrderCard";
+import {
+ StatusCard,
+ DetailCard,
+ SupportCard,
+ AmountCard,
+ ModalView,
+} from "./OrderDetail";
+import PaymentOrderCard from "./PaymentOrderCard/PaymentOrderCard";
+export {
+ PastOrderCard,
+ ActiveOrderCard,
+ StatusCard,
+ DetailCard,
+ SupportCard,
+ AmountCard,
+ PaymentOrderCard,
+ ModalView,
+};
diff --git a/enatega-multivendor-web/src/components/Profile/AddressCard/AddressCard.js b/enatega-multivendor-web/src/components/Profile/AddressCard/AddressCard.js
new file mode 100644
index 0000000..817ec7c
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/AddressCard/AddressCard.js
@@ -0,0 +1,54 @@
+import { Grid, Typography, Box } from "@mui/material";
+import React, { useState } from "react";
+import useStyle from "./styles";
+import { DeliveryCard } from "../../Checkout";
+import { useLocationContext } from "../../../context/Location";
+import { ReactComponent as Address } from "../../../assets/images/Address.svg";
+import { useTranslation } from 'react-i18next';
+
+function AddressCard() {
+ const { t } = useTranslation();
+ const classes = useStyle();
+ const [selectedAddress, setSelectedAddress] = useState();
+ const { setLocation } = useLocationContext();
+
+ const setDeliveryAddress = (item) => {
+
+ setSelectedAddress(item);
+ setLocation({
+ _id: item?._id,
+ label: item?.label,
+ latitude: Number(item?.location.coordinates[1]),
+ longitude: Number(item?.location.coordinates[0]),
+ deliveryAddress: item?.deliveryAddress,
+ details: item?.details,
+ });
+ };
+
+ return (
+
+
+
+ {t('myAddresses')}
+
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(AddressCard);
diff --git a/enatega-multivendor-web/src/components/Profile/AddressCard/styles.js b/enatega-multivendor-web/src/components/Profile/AddressCard/styles.js
new file mode 100644
index 0000000..6b6730d
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/AddressCard/styles.js
@@ -0,0 +1,54 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ MH3: {
+ margin: theme.spacing(3, 0),
+ },
+ mainContainer: {
+ justifyContent: "center",
+ "& .MuiTextField-root": {
+ marginBottom: theme.spacing(0),
+ },
+ },
+ profileContainer: {
+ padding: theme.spacing(3, 3),
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 30,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ btnContainer: {
+ display: "flex",
+ justifyContent: "center",
+ },
+ headerBar: {
+ background:
+ "linear-gradient(261.53deg, theme.palette.success.light -8.04%, theme.palette.primary.main 111.96%)",
+ borderRadius: 30,
+ height: 80,
+ display: "flex",
+ alignItems: "center",
+ },
+ titleText: {
+ fontWeight: 600,
+ marginLeft: 20,
+ fontSize: "1.2rem",
+ },
+ fieldWrapper: {
+ display: "flex",
+ alignItems: "center",
+ marginBottom: theme.spacing(3),
+ },
+ formMargin: {
+ marginTop: 30,
+ },
+ btn: {
+ borderRadius: "10px !important",
+ height: "40px !important",
+ background: theme.palette.primary.main,
+ width: 120,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Profile/PasswordCard/PasswordCard.js b/enatega-multivendor-web/src/components/Profile/PasswordCard/PasswordCard.js
new file mode 100644
index 0000000..2f688ad
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/PasswordCard/PasswordCard.js
@@ -0,0 +1,186 @@
+import { gql, useMutation } from "@apollo/client";
+import {
+ Button,
+ CircularProgress,
+ Grid,
+ Typography,
+ Box,
+ useTheme,
+ IconButton,
+} from "@mui/material";
+import React, { useCallback, useRef, useState } from "react";
+import { changePassword } from "../../../apollo/server";
+import FlashMessage from "../../FlashMessage";
+import useStyle from "./styles";
+import PasswordIcon from "@mui/icons-material/Password";
+import { Visibility, VisibilityOff } from "@mui/icons-material";
+import { useTranslation } from 'react-i18next';
+
+const CHANGE_PASSWORD = gql`
+ ${changePassword}
+`;
+
+function PasswordCard() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const formRef = useRef(null);
+ const classes = useStyle();
+ const [passError, setPassError] = useState("");
+ const [confirmError, setConfirmError] = useState("");
+ const [error, setError] = useState({});
+ const [mutate, { loading }] = useMutation(CHANGE_PASSWORD, {
+ onError,
+ onCompleted,
+ });
+ const [showCurrentPassword, setShowCurrentPassword] = useState(false);
+ const [showNewPassword, setShowNewPassword] = useState(false);
+
+ function onError(error) {
+ setError({ type: "error", message: error.message });
+ }
+
+ function onCompleted(data) {
+ if (data.changePassword) {
+ clearErrors();
+ setError({ type: "success", message: "Password Updated" });
+ } else {
+ setError({ type: "error", message: "Invalid password" });
+ }
+ }
+
+ const clearErrors = useCallback(() => {
+ setPassError("");
+ setConfirmError("");
+ setError({});
+ }, []);
+
+ const handleAction = () => {
+ console.log(passError + " " + confirmError);
+ clearErrors();
+ let validate = true;
+ const oldPassword = formRef.current["currentPassword"].value;
+ const newPassword = formRef.current["newPassword"].value;
+
+ // Password validation requirements
+ const passwordRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/; // At least 8 characters, one lowercase letter, one uppercase letter, one number
+ if (!passwordRegex.test(newPassword)) {
+ setConfirmError("Password must be at least 8 characters long and contain at least one lowercase letter, one uppercase letter, and one number");
+ validate = false;
+ return;
+ }
+
+ if (!oldPassword) {
+ setPassError("Current password is required");
+ validate = false;
+ return;
+ }
+ if (!newPassword) {
+ setConfirmError("New password is required");
+ validate = false;
+ return;
+ }
+ if (validate) {
+ mutate({ variables: { oldPassword, newPassword } });
+ } else {
+ setError({ type: "error", message: "Invalid password" });
+ }
+ };
+
+ const toggleSnackbar = useCallback(() => {
+ setError({});
+ }, []);
+
+ const handleTogglePasswordVisibility = (field) => {
+ if (field === "current") {
+ setShowCurrentPassword((prevShowCurrentPassword) => !prevShowCurrentPassword);
+ } else if (field === "new") {
+ setShowNewPassword((prevShowNewPassword) => !prevShowNewPassword);
+ }
+ };
+
+ return (
+
+
+
+
+ {t('passwordInfo')}
+
+
+
+
+ );
+}
+
+export default React.memo(PasswordCard);
diff --git a/enatega-multivendor-web/src/components/Profile/PasswordCard/styles.js b/enatega-multivendor-web/src/components/Profile/PasswordCard/styles.js
new file mode 100644
index 0000000..5e72a7e
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/PasswordCard/styles.js
@@ -0,0 +1,63 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ MH3: {
+ margin: theme.spacing(3, 0),
+ },
+ mainContainer: {
+ justifyContent: "center",
+ },
+ profileContainer: {
+ padding: theme.spacing(3, 3),
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 30,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ btnContainer: {
+ display: "flex",
+ justifyContent: "center",
+ },
+ headerBar: {
+ background:
+ "linear-gradient(261.53deg, theme.palette.success.light -8.04%, theme.palette.primary.main 111.96%)",
+ borderRadius: 30,
+ height: 80,
+ display: "flex",
+ alignItems: "center",
+ },
+ titleText: {
+ fontWeight: 600,
+ marginLeft: 20,
+ fontSize: "1.2rem",
+ },
+ fieldWrapper: {
+ display: "flex",
+ alignItems: "center",
+ marginBottom: theme.spacing(3),
+ },
+ formMargin: {
+ marginTop: 30,
+ },
+ btn: {
+ borderRadius: "10px !important",
+ height: "40px !important",
+ background: theme.palette.primary.main,
+ width: 120,
+ },
+ MB0: {
+ marginBottom: "0px !important",
+ },
+ textField: {
+ color: theme.palette.grey[600],
+ padding: 10,
+ fontSize: "1.2rem",
+ width: "100%",
+ borderRadius: 20,
+ border: "none",
+ backgroundColor: "#F3F4F8",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Profile/ProfileCard/ProfileCard.js b/enatega-multivendor-web/src/components/Profile/ProfileCard/ProfileCard.js
new file mode 100644
index 0000000..d25c389
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/ProfileCard/ProfileCard.js
@@ -0,0 +1,210 @@
+import { useMutation } from "@apollo/client";
+import {
+ Button,
+ CircularProgress,
+ Grid,
+ Tooltip,
+ Typography,
+ Box,
+ useTheme,
+} from "@mui/material";
+import gql from "graphql-tag";
+import React, { useCallback, useContext, useRef, useState } from "react";
+import { updateUser } from "../../../apollo/server";
+import UserContext from "../../../context/User";
+import FlashMessage from "../../FlashMessage";
+import useStyle from "./styles";
+import IconButton from "@mui/material/IconButton";
+import VerifiedIcon from "@mui/icons-material/Verified";
+import UnpublishedIcon from "@mui/icons-material/Unpublished";
+import { Link as RouterLink } from "react-router-dom";
+import PersonIcon from "@mui/icons-material/Person";
+import EmailIcon from "@mui/icons-material/Email";
+import PhoneIcon from "@mui/icons-material/Phone";
+import { useTranslation } from 'react-i18next';
+
+const UPDATEUSER = gql`
+ ${updateUser}
+`;
+
+function ProfileCard() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const formRef = useRef(null);
+ const classes = useStyle();
+ const [nameError, setNameError] = useState("");
+ // const [phoneError, setPhoneError] = useState("");
+ const { profile } = useContext(UserContext);
+ const [error, setError] = useState({});
+ const [mutate, { loading }] = useMutation(UPDATEUSER, {
+ onCompleted,
+ onError,
+ });
+ function onError(error) {
+ setError({ type: "error", message: error.message });
+ }
+
+ function onCompleted({ updateUser }) {
+ if (updateUser) {
+ setError({ type: "success", message: "User's Info Updated" });
+ }
+ }
+
+ const clearErrors = useCallback(() => {
+ setNameError("");
+ // setPhoneError("");
+ setError({});
+ }, []);
+
+ const handleAction = () => {
+ clearErrors();
+ let validate = true;
+ const name = formRef.current["name"].value;
+
+ if (!name) {
+ setNameError("Name is required");
+ validate = false;
+ return;
+ }
+ if (validate) {
+ mutate({
+ variables: {
+ name: name,
+ },
+ });
+ } else {
+ setError({ type: "error", message: "Something is missing" });
+ }
+ };
+
+ const toggleSnackbar = useCallback(() => {
+ setError({});
+ }, []);
+
+ return (
+
+
+
+ {/* */}
+
+ {t('contactInfo')}
+
+
+
+
+ );
+}
+
+export default React.memo(ProfileCard);
diff --git a/enatega-multivendor-web/src/components/Profile/ProfileCard/styles.js b/enatega-multivendor-web/src/components/Profile/ProfileCard/styles.js
new file mode 100644
index 0000000..65519d2
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/ProfileCard/styles.js
@@ -0,0 +1,64 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ MH3: {
+ margin: theme.spacing(3, 0),
+ },
+
+ mainContainer: {
+ justifyContent: "center",
+ },
+ MB0: {
+ marginBottom: "0px !important",
+ },
+ profileContainer: {
+ padding: theme.spacing(3, 3),
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 30,
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ btnContainer: {
+ display: "flex",
+ justifyContent: "center",
+ },
+ headerBar: {
+ background:
+ "linear-gradient(261.53deg, theme.palette.success.light -8.04%, theme.palette.primary.main 111.96%)",
+ borderRadius: 30,
+ height: 80,
+ display: "flex",
+ alignItems: "center",
+ },
+ titleText: {
+ fontWeight: 600,
+ marginLeft: 20,
+ fontSize: "1.2rem",
+ },
+ fieldWrapper: {
+ display: "flex",
+ alignItems: "center",
+ marginBottom: theme.spacing(3),
+ },
+ formMargin: {
+ marginTop: 30,
+ },
+ btn: {
+ borderRadius: "10px !important",
+ height: "40px !important",
+ background: theme.palette.primary.main,
+ width: 120,
+ },
+ textField: {
+ color: theme.palette.grey[600],
+ padding: 10,
+ fontSize: "1.2rem",
+ width: "100%",
+ borderRadius: 20,
+ border: "none",
+ backgroundColor: "#F3F4F8",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/Profile/index.js b/enatega-multivendor-web/src/components/Profile/index.js
new file mode 100644
index 0000000..a81e2b1
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Profile/index.js
@@ -0,0 +1,5 @@
+import ProfileCard from "./ProfileCard/ProfileCard";
+import PasswordCard from "./PasswordCard/PasswordCard";
+import AddressCard from "./AddressCard/AddressCard";
+
+export { ProfileCard, PasswordCard, AddressCard };
diff --git a/enatega-multivendor-web/src/components/Promotion/Promotion.js b/enatega-multivendor-web/src/components/Promotion/Promotion.js
new file mode 100644
index 0000000..c829724
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Promotion/Promotion.js
@@ -0,0 +1,52 @@
+/* eslint-disable react-hooks/rules-of-hooks */
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Hidden,
+ Typography,
+ useTheme,
+ Link as MaterialLink,
+} from "@mui/material";
+import React from "react";
+import AppStoreIcon from "../../assets/icons/AppStoreIcon";
+import PlayStoreIcon from "../../assets/icons/PlayStoreIcon";
+import useStyles from "./styles";
+
+export default function Promotion() {
+ const theme = useTheme();
+ const classes = useStyles();
+ return (
+
+
+
+
+ Download our free app!
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/enatega-multivendor-web/src/components/Promotion/styles.js b/enatega-multivendor-web/src/components/Promotion/styles.js
new file mode 100644
index 0000000..436d88b
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Promotion/styles.js
@@ -0,0 +1,41 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ contentContainer: {
+ padding: theme.spacing(0, 3),
+ },
+ center: {
+ justifyContent: "center",
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ heading: {
+ fontSize: "2.175rem",
+ },
+ bottomContainer: {
+ marginTop: theme.spacing(10),
+ backgroundColor: theme.palette.grey[100],
+ },
+ w70: {
+ width: "70%",
+ },
+ mv2: {
+ margin: theme.spacing(2, 0),
+ },
+ mt3: {
+ marginTop: theme.spacing(3),
+ },
+ ph1: {
+ padding: theme.spacing(0, 1),
+ },
+
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/Card/Card.js b/enatega-multivendor-web/src/components/RestaurantComponent/Card/Card.js
new file mode 100644
index 0000000..b62eb9f
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/Card/Card.js
@@ -0,0 +1,341 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useMutation } from "@apollo/client";
+import {
+ Box,
+ CircularProgress,
+ Divider,
+ Card as ICard,
+ Typography,
+ CardActionArea,
+ useTheme,
+} from "@mui/material";
+import FavoriteIcon from "@mui/icons-material/Favorite";
+import FavoriteBorderIcon from "@mui/icons-material/FavoriteBorder";
+import StarSharpIcon from "@mui/icons-material/StarSharp";
+import gql from "graphql-tag";
+import React, { useCallback, useContext } from "react";
+import { useNavigate } from "react-router-dom";
+import { addFavouriteRestaurant, profile } from "../../../apollo/server";
+import ConfigurationContext from "../../../context/Configuration";
+import UserContext from "../../../context/User";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+const ADD_FAVOURITE = gql`
+ ${addFavouriteRestaurant}
+`;
+const PROFILE = gql`
+ ${profile}
+`;
+
+function PricingDelivery({
+ grid,
+ minimum,
+ deliveryCharges,
+ currencySymbol,
+ isSmall,
+ index,
+}) {
+
+ const classes = useStyles();
+ const theme = useTheme();
+ const containerStyle = !grid
+ ? {
+ display: "flex",
+ alignItems: "center",
+ justifyContent: isSmall ? "center" : "flex-start",
+ }
+ : { display: "block" };
+ return (
+
+
+
+ {currencySymbol} {minimum}
+
+
+ Minimum
+
+
+ {grid && (
+
+ )}
+
+
+ {deliveryCharges > 0 ? `${currencySymbol} ${deliveryCharges}` : ``}
+
+
+ {deliveryCharges > 0 ? "delivery fee" : ""}
+
+
+
+ );
+}
+function Card(props) {
+ const { t } = useTranslation();
+ const item = props.data ?? null;
+ const navigateTo = useNavigate();
+ const { profile } = useContext(UserContext);
+ const theme = useTheme();
+ const grid = props.grid ? props.grid : false;
+ const heart = profile ? profile.favourite.includes(item?._id) : false;
+ const cardImageHeight = props.cardImageHeight
+ ? props.cardImageHeight
+ : "144px";
+ const category = item.categories.map((category) => category.title);
+ const configuration = useContext(ConfigurationContext);
+ const classes = useStyles(props);
+ const [mutate, { loading }] = useMutation(ADD_FAVOURITE, {
+ onCompleted,
+ refetchQueries: [{ query: PROFILE }],
+ });
+
+ function onCompleted() {
+ props.showMessage({
+ type: "success",
+ message: t('favouriteListUpdated'),
+ });
+ }
+
+ const navigate = useCallback(() => {
+ if (
+ props.checkCart(item._id, item.name, item.image, item.slug) &&
+ !loading
+ ) {
+ navigateTo(`/restaurant/${item.slug}`, {
+ state: {
+ id: item._id,
+ name: item.name,
+ image: item.image,
+ slug: item.slug,
+ },
+ });
+ }
+ }, [navigateTo, item._id]);
+
+ return (
+
+ {
+ e.preventDefault();
+ navigate();
+ }}
+ >
+
+
+
+
+
+ {item.deliveryTime}
+
+
+ {" "}
+ MIN
+
+
+ e.stopPropagation()}
+ size="small"
+ disabled={loading}
+ onClick={(e) => {
+ e.preventDefault();
+ e.stopPropagation();
+ if (!profile) {
+ props.showMessage({
+ type: "error",
+ message: "You are not logged in.",
+ });
+ }
+ if (!loading && profile) {
+ mutate({ variables: { id: item._id } });
+ }
+ }}
+ className={
+ props.isSmall ? classes.smallHeartBtn : classes.heartBtn
+ }
+ >
+ {loading ? (
+
+ ) : heart ? (
+
+ ) : (
+
+ )}
+
+
+
+
+ {item.name}
+
+
+
+
+ {item.reviewData.ratings}
+
+
+ /5
+
+
+ ({item.reviewData.reviews.length})
+
+
+
+
+
+ {category.toString()}
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(Card);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/Card/styles.js b/enatega-multivendor-web/src/components/RestaurantComponent/Card/styles.js
new file mode 100644
index 0000000..2842077
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/Card/styles.js
@@ -0,0 +1,130 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ imageContainer: {
+ width: "100%",
+ height: "144px",
+ position: "relative",
+ overflow: "hidden",
+ borderRadius: 15,
+ },
+ imgContainer: {
+ backgroundSize: "cover",
+ backgroundPositionX: "50%",
+ backgroundPositionY: "center",
+ transition: "transform 0.2s",
+ height: "100%",
+ "&:hover": {
+ transform: "scale(1.1)",
+ },
+ },
+ timeText: {
+ ...theme.typography.caption,
+ fontSize: "0.5rem",
+ textAlign: "center",
+ lineHeight: "normal",
+ display: "inline",
+ fontWeight: 700,
+ },
+ timeContainer: {
+ padding: "5px 10px",
+ backgroundColor: theme.palette.primary.light,
+ position: "absolute",
+ left: "10px",
+ top: "10px",
+ borderRadius: "0.75rem",
+ },
+ offText: {
+ textAlign: "center",
+ color: theme.palette.text.primary,
+ fontWeight: 700,
+ },
+ offContainer: {
+ padding: "5px 15px",
+ backgroundColor: theme.palette.primary.main,
+ position: "absolute",
+ top: "10px",
+ },
+ textBold: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ totalRatingText: {
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ subDescription: {
+ color: theme.palette.text.disabled,
+ overflow: "hidden",
+ fontSize: "0.875rem",
+ flex: 0.9,
+ },
+ priceText: {
+ fontWeight: 700,
+ fontSize: "0.875rem",
+ },
+ priceDescription: {
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ heartBtn: {
+ minWidth: "36px",
+ height: "36px",
+ borderRadius: "18px",
+ backgroundColor: theme.palette.common.white,
+ position: "absolute",
+ top: "10px",
+ right: "10px",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ "&:hover": {
+ backgroundColor: theme.palette.common.white,
+ },
+ "&:disabled": {
+ backgroundColor: theme.palette.common.white,
+ },
+ },
+ smallHeartBtn: {
+ minWidth: "30px",
+ height: "30px",
+ borderRadius: "18px",
+ backgroundColor: theme.palette.common.white,
+ position: "absolute",
+ top: "10px",
+ right: "10px",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ "&:hover": {
+ backgroundColor: theme.palette.common.white,
+ },
+ "&:disabled": {
+ backgroundColor: theme.palette.common.white,
+ },
+ },
+ card: {
+ backgroundColor: "white",
+ boxShadow: theme.shadows[0],
+ borderRadius: 25,
+ padding: 8,
+ },
+ icon: {
+ color: "black",
+ },
+ row: {
+ marginTop: 10,
+ width: "90%",
+ margin: "auto",
+ },
+ largeWidth: {
+ minWidth: "200px",
+ },
+ smallWidth: {
+ width: "200px",
+ [theme.breakpoints.down("md")]: {
+ width: "150px",
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGrid/RestaurantGrid.js b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGrid/RestaurantGrid.js
new file mode 100644
index 0000000..2033608
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGrid/RestaurantGrid.js
@@ -0,0 +1,78 @@
+import { Box, Grid, Typography, useMediaQuery, useTheme } from "@mui/material";
+import React from "react";
+import Card from "../Card/Card";
+import Title from "../Title/Title";
+import useStyles from "./styles";
+import { ReactComponent as EmptyIcon } from "../../../assets/images/empty-search.svg";
+import { useTranslation } from 'react-i18next';
+
+function RestaurantGrid(props) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+
+ return (
+
+
+
+
+
+
+
+
+ {props.restaurants.length < 1 ? (
+
+
+
+
+ {props?.search
+ ? "That's not in the list"
+ : "No restaurants found"}{" "}
+
+
+ {props?.search && "yet"}
+
+
+ {props?.search && "Try different search"}
+
+
+
+ ) : (
+ props.restaurants.map((value, index) => (
+
+
+
+ ))
+ )}
+
+
+
+
+
+ );
+}
+
+export default React.memo(RestaurantGrid);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGrid/styles.js b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGrid/styles.js
new file mode 100644
index 0000000..0259ca5
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGrid/styles.js
@@ -0,0 +1,33 @@
+import makeStyles from "@mui/styles/makeStyles";
+import { useTheme } from "@mui/material";
+import Restaurants from "../../../assets/images/restaurants.png";
+
+const useStyle = makeStyles((theme) => {
+ const currentTheme = useTheme();
+
+ return {
+ mainContainer: {
+ padding: (extraSmall) => (extraSmall ? "5px" : "0px"),
+ backgroundColor: currentTheme.palette.success.dark,
+ position: "relative",
+ minHeight: "100vh",
+ backgroundImage: `url(${Restaurants})`,
+ backgroundSize: "contain",
+ backgroundPosition: "right",
+ backgroundRepeat: "no-repeat",
+ },
+ bgImage: {
+ position: "absolute",
+ top: 0,
+ right: 0,
+ zIndex: -9,
+ },
+ divider: {
+ width: "180px",
+ backgroundColor: currentTheme.palette.success.dark, // Use currentTheme here
+ height: 10,
+ },
+ };
+});
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGridForPickup/RestaurantGridForPickup.js b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGridForPickup/RestaurantGridForPickup.js
new file mode 100644
index 0000000..756145c
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGridForPickup/RestaurantGridForPickup.js
@@ -0,0 +1,56 @@
+import { Grid, Typography, useMediaQuery, useTheme } from "@mui/material";
+import React from "react";
+import Card from "../Card/Card";
+import Title from "../Title/Title";
+import useStyles from "./styles";
+
+function RestaurantGridForPickup(props) {
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+
+ return (
+
+
+
+
+
+ {props.restaurants?.length < 1 ? (
+
+
+ No restaurants found
+
+
+ ) : (
+ props.restaurants?.map((value, index) => (
+
+
+
+ ))
+ )}
+
+
+
+
+ );
+}
+
+export default RestaurantGridForPickup;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGridForPickup/styles.js b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGridForPickup/styles.js
new file mode 100644
index 0000000..931b62f
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantGridForPickup/styles.js
@@ -0,0 +1,20 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ mainContainer: {
+ marginTop: "50px",
+ padding: (extraSmall) => (extraSmall ? "0px 5vw" : "0px"),
+ },
+ card: {
+ "&:hover": {
+ boxShadow: `0 0 10px ${theme.palette.grey[300]}`,
+ border: `2px solid ${theme.palette.primary.main}`,
+ },
+ "&:focus": {
+ boxShadow: `0 0 10px ${theme.palette.grey[300]}`,
+ border: `2px solid ${theme.palette.primary.main}`,
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantSection/RestaurantSection.js b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantSection/RestaurantSection.js
new file mode 100644
index 0000000..d3f0475
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantSection/RestaurantSection.js
@@ -0,0 +1,103 @@
+import { Box, Button, Grid, useMediaQuery, useTheme } from "@mui/material";
+import ArrowBackIcon from "@mui/icons-material/ArrowBack";
+import ArrowForwardIcon from "@mui/icons-material/ArrowForward";
+import React, { useCallback, useRef } from "react";
+import Card from "../Card/Card";
+import Title from "../Title/Title";
+import useStyles from "./styles";
+
+function RestaurantSection(props) {
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+ const classes = useStyles(extraSmall);
+ const ref = useRef([]);
+
+ const ScrollLeft = useCallback((index1) => {
+ ref.current[index1].scrollTo({
+ left: ref.current[index1].scrollLeft + 500,
+ behavior: "smooth",
+ });
+ }, []);
+
+ const ScrollRight = useCallback((index1) => {
+ ref.current[index1].scrollTo({
+ left: ref.current[index1].scrollLeft - 500,
+ behavior: "smooth",
+ });
+ }, []);
+
+ return (
+
+
+
+ {props.restaurantSections.map((section, index1) => (
+
+ {section.restaurants.length > 4 && (
+ ScrollRight(index1)}
+ >
+
+
+ )}
+
+
+
+ (ref.current[index1] = el)}
+ className={classes.restauranCardContainer}
+ >
+ {section.restaurants.map((data, index) => (
+
+
+
+ ))}
+
+ {section.restaurants.length > 4 && (
+ ScrollLeft(index1)}
+ >
+
+
+ )}
+
+ ))}
+
+
+
+ );
+}
+
+export default React.memo(RestaurantSection);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantSection/styles.js b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantSection/styles.js
new file mode 100644
index 0000000..836a15b
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/RestaurantSection/styles.js
@@ -0,0 +1,38 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ restauranCardContainer: {
+ msOverflowStyle: "none",
+ scrollbarWidth: "none",
+ "&::-webkit-scrollbar": {
+ display: "none",
+ },
+ },
+ nextButtonStyles: {
+ minWidth: "auto",
+ width: "40px",
+ height: "50px",
+ position: "absolute",
+ top: "50%",
+ zIndex: 5,
+ borderRadius: "inherit",
+
+ [theme.breakpoints.down("md")]: {
+ zIndex: -999,
+ },
+ },
+ mainContainer: {
+ padding: (extraSmall) => (extraSmall ? "0px 2vw" : "0px"),
+ marginBottom: 40,
+ [theme.breakpoints.down("md")]: {
+ width: "100%",
+ },
+ },
+ divider: {
+ width: "165px",
+ backgroundColor: "#448B7B",
+ height: 10,
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/SearchRestaurant.js b/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/SearchRestaurant.js
new file mode 100644
index 0000000..9567962
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/SearchRestaurant.js
@@ -0,0 +1,63 @@
+import {
+ Button,
+ Grid,
+ Input,
+ Paper,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import HighlightOffIcon from "@mui/icons-material/HighlightOff";
+import React from "react";
+import SearchIcon from "../../../assets/icons/SearchIcon";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+function SearchRestaurant({ search, setSearch }) {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+
+ return (
+
+
+
+
+ setSearch(event.target.value)}
+ inputProps={{
+ style: {
+ borderWidth: 0,
+ textOverflow: "ellipsis",
+ },
+ }}
+ />
+ {search ? (
+ setSearch("")} style={{ maxWidth: "auto" }}>
+
+
+ ) : null}
+
+
+
+ );
+}
+
+export default React.memo(SearchRestaurant);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/styles.js b/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/styles.js
new file mode 100644
index 0000000..69f7b84
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/styles.js
@@ -0,0 +1,20 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiInput-root": {
+ marginLeft: "10px",
+ caretColor: theme.palette.primary.main,
+ color: theme.palette.text.secondary,
+ },
+ },
+ mt: {
+ marginTop: theme.spacing(6),
+ },
+ searchContainer: {
+ //padding: (extraSmall) => (extraSmall ? "0px 5vw" : "0px"),
+ boxShadow: "0px 0px 20px 1px rgba(0,0,0,0.2)",
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/temp.js b/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/temp.js
new file mode 100644
index 0000000..7a8971a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/SearchRestaurant/temp.js
@@ -0,0 +1,62 @@
+import {
+ Button,
+ Grid,
+ Input,
+ Paper,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import HighlightOffIcon from "@mui/icons-material/HighlightOff";
+import React from "react";
+import SearchIcon from "../../../assets/icons/SearchIcon";
+import useStyles from "./styles";
+
+function SearchRestaurant({ search, setSearch }) {
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles(extraSmall);
+
+ return (
+
+
+
+
+
+ setSearch(event.target.value)}
+ inputProps={{
+ style: {
+ borderWidth: 0,
+ textOverflow: "ellipsis",
+ },
+ }}
+ />
+ {search ? (
+ setSearch("")} style={{ maxWidth: "auto" }}>
+
+
+ ) : null}
+
+
+
+ );
+}
+
+export default React.memo(SearchRestaurant);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/Subheader.js b/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/Subheader.js
new file mode 100644
index 0000000..65a3da2
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/Subheader.js
@@ -0,0 +1,356 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Button,
+ Container,
+ Divider,
+ Grid,
+ InputAdornment,
+ TextField,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import LocationOnIcon from "@mui/icons-material/LocationOn";
+import Autocomplete from "@mui/material/Autocomplete";
+import parse from "autosuggest-highlight/parse";
+import throttle from "lodash/throttle";
+import React, { useEffect, useState } from "react";
+import SyncLoader from "react-spinners/SyncLoader";
+import LocationIcon from "../../../assets/icons/LocationIcon";
+import { ReactComponent as ArrowIcon } from "../../../assets/images/arrow.svg";
+import RightIcon from "../../../assets/icons/RightIcon";
+import { useLocationContext } from "../../../context/Location";
+import { useLocation } from "../../../hooks";
+import FlashMessage from "../../FlashMessage";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+import { DeliveryCard } from "../../Checkout";
+
+const autocompleteService = { current: null };
+
+function Subheader() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const spacingTop = mobile ? "52px" : "63px";
+ const classes = useStyles();
+ const [expand, setExpand] = useState(false);
+ const { location, setLocation } = useLocationContext();
+ const { getCurrentLocation } = useLocation();
+ const [search, setSearch] = useState(
+ location ? location.deliveryAddress : ""
+ );
+ const [open, setOpen] = useState(false);
+ const [alertMessage, setAlertMessage] = useState();
+ const [value, setValue] = useState(null);
+ const [inputValue, setInputValue] = useState("");
+ const [options, setOptions] = useState([]);
+ const [latLng, setLatLng] = useState({});
+ const [loading, setLoading] = useState();
+ const [selectedAddress, setSelectedAddress] = useState();
+
+ const setDeliveryAddress = (item) => {
+ setSelectedAddress(item);
+ setLocation({
+ _id: item?._id,
+ label: item?.label,
+ latitude: Number(item?.location.coordinates[1]),
+ longitude: Number(item?.location.coordinates[0]),
+ deliveryAddress: item?.deliveryAddress,
+ details: item?.details,
+ });
+ };
+ const fetch = React.useMemo(
+ () =>
+ throttle((request, callback) => {
+ autocompleteService.current.getPlacePredictions(request, callback);
+ }, 200),
+ []
+ );
+
+ useEffect(() => {
+ let active = true;
+
+ if (!autocompleteService.current && window.google) {
+ autocompleteService.current =
+ new window.google.maps.places.AutocompleteService();
+ }
+ if (!autocompleteService.current) {
+ return undefined;
+ }
+
+ if (inputValue === "") {
+ setOptions(value ? [value] : []);
+ return undefined;
+ }
+
+ fetch({ input: inputValue }, (results) => {
+ if (active) {
+ let newOptions = [];
+
+ if (value) {
+ newOptions = [value];
+ }
+
+ if (results) {
+ newOptions = [...newOptions, ...results];
+ }
+
+ setOptions(newOptions);
+ }
+ });
+
+ return () => {
+ active = false;
+ };
+ }, [value, inputValue, fetch]);
+
+ const locationCallback = (error, data) => {
+ setLoading(false);
+ if (error) {
+ setAlertMessage(error);
+ setOpen(true);
+ return;
+ }
+ setSearch(data?.deliveryAddress ?? "");
+ setValue(data?.deliveryAddress ?? "");
+ setLatLng({
+ lat: data.latitude,
+ lng: data.longitude,
+ });
+ };
+ return (
+
+
+
+
+
+ setExpand(!expand)}
+ >
+
+ {t('deliveringTo')}
+
+
+
+ {location?.deliveryAddress}
+
+ {!expand ? (
+
+ ) : (
+
+ )}
+
+
+
+
+ {expand && (
+ <>
+
+
+
+ typeof option === "string" ? option : option.description
+ }
+ filterOptions={(x) => x}
+ options={options}
+ autoComplete
+ includeInputInList
+ filterSelectedOptions
+ value={value ? value : search ?? "Loading ..."}
+ onChange={(event, newValue) => {
+ if (newValue) {
+ const b = new window.google.maps.Geocoder();
+ b.geocode({ placeId: newValue.place_id }, (res) => {
+ const location = res[0].geometry.location;
+ setSearch(res[0].formatted_address);
+ setLatLng({
+ lat: location.lat(),
+ lng: location.lng(),
+ });
+ });
+ } else {
+ setSearch("");
+ setLatLng({});
+ }
+ setOptions(newValue ? [newValue, ...options] : options);
+ setValue(newValue);
+ }}
+ onInputChange={(event, newInputValue) => {
+ setInputValue(newInputValue);
+ }}
+ renderInput={(params) => (
+
+ {params.InputProps.endAdornment}
+ {
+ e.preventDefault();
+ setLoading(true);
+ getCurrentLocation(locationCallback);
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ )}
+
+ >
+ ),
+ }}
+ />
+ )}
+ renderOption={(props, option) => {
+ const matches =
+ option.structured_formatting.main_text_matched_substrings;
+ let parts = null;
+ if (matches) {
+ parts = parse(
+ option.structured_formatting.main_text,
+ matches.map((match) => [
+ match.offset,
+ match.offset + match.length,
+ ])
+ );
+ }
+ return (
+
+
+
+
+
+ {parts &&
+ parts.map((part, index) => (
+
+ {part.text}
+
+ ))}
+
+
+ {option.structured_formatting.secondary_text}
+
+
+
+ );
+ }}
+ />
+
+
+
+ {
+ e.preventDefault();
+ setExpand(false);
+ if (search) {
+ setLocation({
+ label: "Home",
+ latitude: latLng.lat,
+ longitude: latLng.lng,
+ deliveryAddress: search,
+ });
+ }
+ }}
+ className={classes.button}
+ >
+
+
+
+
+
+
+
+ >
+ )}
+
+
+ );
+}
+
+export default React.memo(Subheader);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/styles.js b/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/styles.js
new file mode 100644
index 0000000..8d25aff
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/styles.js
@@ -0,0 +1,103 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ root: {
+ "& .MuiInputBase-root": {
+ color: theme.palette.text.secondary,
+ },
+ "& label.Mui-focused": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiInput-underline:after": {
+ borderColor: theme.palette.grey["300"],
+ },
+ "& .MuiOutlinedInput-root": {
+ "& fieldset": {
+ borderColor: theme.palette.grey["300"],
+ borderRadius: 20,
+ },
+ "&:hover fieldset": {
+ borderColor: theme.palette.grey["300"],
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.grey["300"],
+ },
+ },
+ },
+ icon: {
+ color: theme.palette.text.secondary,
+ marginRight: theme.spacing(2),
+ },
+ upsideContainer: {
+ position: "fixed",
+ maxHeight: "100%", // Set the maximum height to the viewport height
+ minWidth: "670px",
+ zIndex: 1300,
+ top: "63px",
+ [theme.breakpoints.down("sm")]: {
+ minWidth: "300px",
+ width: "95%",
+ top: "63px",
+ },
+ },
+ mainContainer: {
+ position: "fixed",
+ minWidth: "670px",
+ zIndex: 1300,
+ top: "63px",
+ backgroundColor: "#ffffffd1",
+ borderRadius: 20,
+ margin: 10,
+ [theme.breakpoints.down("sm")]: {
+ minWidth: "300px",
+ width: "95%",
+ top: "63px",
+ },
+ },
+ upperContainer: {
+ padding: "20px 20px",
+ borderTopLeftRadius: 20,
+ borderBottomLeftRadius: 20,
+ [theme.breakpoints.down("sm")]: {
+ borderTopLeftRadius: 0,
+ borderBottomLeftRadius: 0,
+ },
+ },
+ mr10: {
+ marginRight: "10px",
+ },
+ smallText: {
+ fontSize: "0.75rem",
+ },
+ textBold: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ textMBold: {
+ fontWeight: theme.typography.fontWeightMedium,
+ },
+ button: {
+ width: "70px",
+ backgroundColor: theme.palette.primary.main,
+ alignItems: "center",
+ justifyContent: "center",
+ display: "flex",
+ padding: 10,
+ borderRadius: 10,
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ shadow: {
+ boxShadow: theme.shadows["1"],
+ },
+ addressBtn: {
+ textAlign: "inherit",
+ justifyContent: "flex-start",
+ padding: 0,
+ width: "100%",
+ boxShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)",
+ borderRadius: 20,
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/temp.js b/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/temp.js
new file mode 100644
index 0000000..212e2e7
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/Subheader/temp.js
@@ -0,0 +1,291 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Button,
+ Container,
+ Divider,
+ Grid,
+ InputAdornment,
+ TextField,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import ExpandLessIcon from "@mui/icons-material/ExpandLess";
+import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
+import LocationOnIcon from "@mui/icons-material/LocationOn";
+import Autocomplete from "@mui/material/Autocomplete";
+import parse from "autosuggest-highlight/parse";
+import throttle from "lodash/throttle";
+import React, { useEffect, useState } from "react";
+import SyncLoader from "react-spinners/SyncLoader";
+import LocationIcon from "../../../assets/icons/LocationIcon";
+import RightIcon from "../../../assets/icons/RightIcon";
+import { useLocationContext } from "../../../context/Location";
+import { useLocation } from "../../../hooks";
+import FlashMessage from "../../FlashMessage";
+import useStyles from "./styles";
+
+const autocompleteService = { current: null };
+
+function Subheader() {
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const spacingTop = mobile ? "56px" : "63px";
+ const classes = useStyles();
+ const [expand, setExpand] = useState(false);
+ const { location, setLocation } = useLocationContext();
+ const { getCurrentLocation } = useLocation();
+ const [search, setSearch] = useState(
+ location ? location.deliveryAddress : ""
+ );
+ const [open, setOpen] = useState(false);
+ const [alertMessage, setAlertMessage] = useState();
+ const [value, setValue] = useState(null);
+ const [inputValue, setInputValue] = useState("");
+ const [options, setOptions] = useState([]);
+ const [latLng, setLatLng] = useState({});
+ const [loading, setLoading] = useState();
+ const fetch = React.useMemo(
+ () =>
+ throttle((request, callback) => {
+ autocompleteService.current.getPlacePredictions(request, callback);
+ }, 200),
+ []
+ );
+
+ useEffect(() => {
+ let active = true;
+
+ if (!autocompleteService.current && window.google) {
+ autocompleteService.current =
+ new window.google.maps.places.AutocompleteService();
+ }
+ if (!autocompleteService.current) {
+ return undefined;
+ }
+
+ if (inputValue === "") {
+ setOptions(value ? [value] : []);
+ return undefined;
+ }
+
+ fetch({ input: inputValue }, (results) => {
+ if (active) {
+ let newOptions = [];
+
+ if (value) {
+ newOptions = [value];
+ }
+
+ if (results) {
+ newOptions = [...newOptions, ...results];
+ }
+
+ setOptions(newOptions);
+ }
+ });
+
+ return () => {
+ active = false;
+ };
+ }, [value, inputValue, fetch]);
+
+ const locationCallback = (error, data) => {
+ setLoading(false);
+ if (error) {
+ setAlertMessage(error);
+ setOpen(true);
+ return;
+ }
+ setSearch(data?.deliveryAddress ?? "");
+ setValue(data?.deliveryAddress ?? "");
+ setLatLng({
+ lat: data.latitude,
+ lng: data.longitude,
+ });
+ };
+ return (
+
+
+
+
+ setExpand(!expand)}
+ >
+
+ DELIVERING TO
+
+
+
+ {location?.deliveryAddress}
+
+ {!expand ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+ {expand && (
+ <>
+
+
+
+ typeof option === "string" ? option : option.description
+ }
+ filterOptions={(x) => x}
+ options={options}
+ autoComplete
+ includeInputInList
+ filterSelectedOptions
+ value={value ? value : search ?? "Loading ..."}
+ onChange={(event, newValue) => {
+ if (newValue) {
+ const b = new window.google.maps.Geocoder();
+ b.geocode({ placeId: newValue.place_id }, (res) => {
+ const location = res[0].geometry.location;
+ setSearch(res[0].formatted_address);
+ setLatLng({
+ lat: location.lat(),
+ lng: location.lng(),
+ });
+ });
+ } else {
+ setSearch("");
+ setLatLng({});
+ }
+ setOptions(newValue ? [newValue, ...options] : options);
+ setValue(newValue);
+ }}
+ onInputChange={(event, newInputValue) => {
+ setInputValue(newInputValue);
+ }}
+ renderInput={(params) => (
+
+ {params.InputProps.endAdornment}
+ {
+ e.preventDefault();
+ setLoading(true);
+ getCurrentLocation(locationCallback);
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ )}
+
+ >
+ ),
+ }}
+ />
+ )}
+ renderOption={(props, option) => {
+ const matches =
+ option.structured_formatting.main_text_matched_substrings;
+ let parts = null;
+ if (matches) {
+ parts = parse(
+ option.structured_formatting.main_text,
+ matches.map((match) => [
+ match.offset,
+ match.offset + match.length,
+ ])
+ );
+ }
+ return (
+
+
+
+
+
+ {parts &&
+ parts.map((part, index) => (
+
+ {part.text}
+
+ ))}
+
+
+ {option.structured_formatting.secondary_text}
+
+
+
+ );
+ }}
+ />
+ {
+ e.preventDefault();
+ setExpand(false);
+ if (search) {
+ setLocation({
+ label: "Home",
+ latitude: latLng.lat,
+ longitude: latLng.lng,
+ deliveryAddress: search,
+ });
+ }
+ }}
+ className={classes.button}
+ >
+
+
+
+
+
+ >
+ )}
+
+ );
+}
+
+export default React.memo(Subheader);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/Title/Title.js b/enatega-multivendor-web/src/components/RestaurantComponent/Title/Title.js
new file mode 100644
index 0000000..9eb6c38
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/Title/Title.js
@@ -0,0 +1,27 @@
+import { Typography, useMediaQuery, useTheme } from "@mui/material";
+import makeStyles from "@mui/styles/makeStyles";
+import React from "react";
+
+const useStyles = makeStyles((theme) => ({
+ restaurantTitle: {
+ color: theme.palette.common.black,
+ fontWeight: 700,
+ },
+}));
+function Title({ title }) {
+ const classes = useStyles();
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const fontSize = mobile ? theme.typography.h5.fontSize : "1.8rem";
+ return (
+
+ {title}
+
+ );
+}
+
+export default React.memo(Title);
diff --git a/enatega-multivendor-web/src/components/RestaurantComponent/index.js b/enatega-multivendor-web/src/components/RestaurantComponent/index.js
new file mode 100644
index 0000000..10f9572
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantComponent/index.js
@@ -0,0 +1,7 @@
+import Subheader from "./Subheader/Subheader";
+import ProductCard from "./Card/Card";
+import SearchRestaurant from "./SearchRestaurant/SearchRestaurant";
+import RestaurantRow from "./RestaurantSection/RestaurantSection";
+import RestaurantGrid from "./RestaurantGrid/RestaurantGrid";
+
+export { Subheader, SearchRestaurant, RestaurantRow, RestaurantGrid, ProductCard };
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/ItemCard.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/ItemCard.js
new file mode 100644
index 0000000..f01a0cf
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/ItemCard.js
@@ -0,0 +1,98 @@
+import {
+ Box,
+ Button,
+ Container,
+ Grid,
+ Paper,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import AddIcon from "@mui/icons-material/Add";
+import React, { useContext } from "react";
+import ConfigurationContext from "../../../context/Configuration";
+import useStyles from "./styles";
+
+function ItemCard(props) {
+ const theme = useTheme();
+ const { title, foods } = props;
+ const classes = useStyles();
+ const configuration = useContext(ConfigurationContext);
+ return (
+
+
+ {title}
+
+
+ {foods.map((item, index) => (
+
+ props.onPress({ ...item, ...props.restaurant })}
+ >
+
+
+
+ {item.title}
+
+
+ {item.description.length > 80
+ ? `${item.description.substring(0, 80)}...`
+ : item.description}
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ item.variations[0].price
+ ).toFixed(2)}`}
+ {item.variations[0].discounted > 0 && (
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ item.variations[0].price + item.variations[0].discounted
+ ).toFixed(2)}`}
+
+ )}
+
+
+
+
+
+
+
+
+
+ ))}
+
+
+ );
+}
+
+export default React.memo(ItemCard);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/styles.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/styles.js
new file mode 100644
index 0000000..3b674ed
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/styles.js
@@ -0,0 +1,57 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ cardContainer: {
+ margin: "20px 0px",
+ backgroundColor: theme.palette.common.white,
+ },
+ itemContainer: {
+ display: "flex",
+ justifyContent: "space-between",
+ padding: "25px",
+ cursor: "pointer",
+ backgroundColor: theme.palette.common.white,
+ borderRadius: 10
+ },
+ titleText: {
+ paddingTop: "20px",
+ paddingBottom: "20px",
+ },
+ boldText: {
+ fontWeight: 700,
+ },
+ itemDesc: {
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ discountText: {
+ color: theme.palette.text.disabled,
+ fontWeight: theme.typography.fontWeightLight,
+ fontSize: "0.875rem",
+ textDecoration: "line-through",
+ marginLeft: "5px",
+ },
+ imageContainer: {
+ width: "88px",
+ height: "88px",
+ backgroundImage: `url('https://images.deliveryhero.io/image/fd-pk/Products/4387883.jpg')`,
+ backgroundSize: "cover",
+ backgroundPositionX: "center",
+ backgroundPositionY: "center",
+ position: "relative",
+ },
+ addContainer: {
+ backgroundColor: theme.palette.primary.main,
+ padding: "1px",
+ borderRadius: "inherit",
+ minWidth: "auto",
+ position: "absolute",
+ right: 0,
+ bottom: 0,
+ "&:hover": {
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/temp.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/temp.js
new file mode 100644
index 0000000..3fc8921
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/ItemCard/temp.js
@@ -0,0 +1,87 @@
+import {
+ Box,
+ Button,
+ Container,
+ Grid,
+ Paper,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import AddIcon from "@mui/icons-material/Add";
+import React, { useContext } from "react";
+import ConfigurationContext from "../../../context/Configuration";
+import useStyles from "./styles";
+
+function ItemCard(props) {
+ const theme = useTheme();
+ const { title, foods } = props;
+ const classes = useStyles();
+ const configuration = useContext(ConfigurationContext);
+ return (
+
+
+ {title}
+
+
+ {foods.map((item, index) => (
+
+ props.onPress({ ...item, ...props.restaurant })}
+ >
+
+
+
+ {item.title}
+
+
+ {item.description}
+
+
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ item.variations[0].price
+ ).toFixed(2)}`}
+ {item.variations[0].discounted > 0 && (
+
+ {`${configuration.currencySymbol} ${parseFloat(
+ item.variations[0].price + item.variations[0].discounted
+ ).toFixed(2)}`}
+
+ )}
+
+
+
+
+
+
+
+
+
+ ))}
+
+
+ );
+}
+
+export default React.memo(ItemCard);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/CartItem.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/CartItem.js
new file mode 100644
index 0000000..00bb833
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/CartItem.js
@@ -0,0 +1,120 @@
+import { Box, IconButton, Typography, useTheme } from "@mui/material";
+import AddIcon from "@mui/icons-material/Add";
+import RemoveIcon from "@mui/icons-material/Remove";
+import React, { useContext } from "react";
+import ConfigurationContext from "../../../context/Configuration";
+import useStyles from "./styles";
+
+function CartItem(props) {
+ const classes = useStyles();
+ const theme = useTheme();
+ const configuration = useContext(ConfigurationContext);
+
+ return (
+
+
+ {
+ e.preventDefault();
+ props.removeQuantity();
+ }}
+ style={{ background: theme.palette.primary.main }}
+ >
+
+
+
+ {props.quantity ? props.quantity : 0}
+
+ {
+ e.preventDefault();
+ props.addQuantity();
+ }}
+ style={{ background: theme.palette.primary.main }}
+ >
+
+
+
+
+
+
+
+ {props.foodTitle ? props.foodTitle : ""}
+
+
+ {props.variationTitle ? `(${props.variationTitle})` : ""}
+
+ {props?.optionTitles?.map((title, index) => (
+
+
+ +{title}
+
+
+ ))}
+
+
+
+ {` ${configuration.currencySymbol} ${parseFloat(
+ props.dealPrice
+ ).toFixed(2)}`}
+
+
+
+
+
+ );
+}
+export default React.memo(CartItem);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/CartView.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/CartView.js
new file mode 100644
index 0000000..3bd0559
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/CartView.js
@@ -0,0 +1,204 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ CircularProgress,
+ Container,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import React, { useContext, useEffect, useState } from "react";
+import RiderImage from "../../../assets/images/rider.png";
+import UserContext from "../../../context/User";
+import { useRestaurant } from "../../../hooks";
+import CartItem from "./CartItem";
+import PricingView from "./PricingView";
+import useStyles from "./styles";
+import { useTranslation } from "react-i18next";
+
+function CartView(props) {
+ const { t } = useTranslation();
+ const classes = useStyles();
+ const theme = useTheme();
+ const [loadingData, setLoadingData] = useState(true);
+ const {
+ clearCart,
+ restaurant: cartRestaurant,
+ cart,
+ cartCount,
+ addQuantity,
+ removeQuantity,
+ updateCart,
+ } = useContext(UserContext);
+ const { data } = useRestaurant(cartRestaurant);
+ const restaurantData = data?.restaurant ?? null;
+
+ useEffect(() => {
+ if (restaurantData) didFocus();
+ }, [restaurantData, cartCount]);
+
+ const didFocus = async () => {
+ const foods = restaurantData.categories.map((c) => c.foods.flat()).flat();
+ const { addons, options } = restaurantData;
+
+ try {
+ if (cart && cartCount) {
+ const transformCart = cart.map((cartItem) => {
+ const foodItem = foods.find((food) => food._id === cartItem._id);
+ if (!foodItem) return null;
+ const variationItem = foodItem.variations.find(
+ (variation) => variation._id === cartItem.variation._id
+ );
+ if (!variationItem) return null;
+ const foodItemTitle = `${foodItem.title}${
+ variationItem.title ? `(${variationItem.title})` : ""
+ }`;
+ let foodItemPrice = variationItem.price;
+ let optionTitles = [];
+ if (cartItem.addons) {
+ cartItem.addons.forEach((addon) => {
+ const cartAddon = addons.find((add) => add._id === addon._id);
+ if (!cartAddon) return null;
+ addon.options.forEach((option) => {
+ const cartOption = options.find(
+ (opt) => opt._id === option._id
+ );
+ if (!cartOption) return null;
+ foodItemPrice += cartOption.price;
+ optionTitles.push(cartOption.title);
+ });
+ });
+ }
+ return {
+ ...cartItem,
+ title: foodItemTitle,
+ foodTitle: foodItem.title,
+ variationTitle: variationItem.title,
+ optionTitles,
+ price: foodItemPrice.toFixed(2),
+ };
+ });
+ const updatedItems = transformCart.filter((item) => item);
+ if (updatedItems.length === 0) await clearCart();
+ await updateCart(updatedItems);
+ setLoadingData((prev) => {
+ if (prev) return false;
+ else return prev;
+ });
+ if (transformCart.length !== updatedItems.length) {
+ props.showMessage({
+ type: t("warning"),
+ message: t("warningText"),
+ });
+ }
+ }
+ } catch (e) {
+ props.showMessage({
+ type: "error",
+ message: e.message,
+ });
+ } finally {
+ setLoadingData((prev) => {
+ if (prev) return false;
+ else return prev;
+ });
+ }
+ };
+
+ if (loadingData) {
+ return (
+
+
+
+ );
+ }
+
+ return (
+ <>
+
+
+ {/* */}
+
+
+
+
+ {t("deliveryTime")}
+
+
+ {`${restaurantData?.deliveryTime ?? "..."} min`}
+
+
+ {`${t("orderFrom")} ${restaurantData?.name ?? "..."}`}
+
+
+
+
+ {cart?.map((foodItem) => (
+ {
+ addQuantity(foodItem.key);
+ }}
+ removeQuantity={() => {
+ removeQuantity(foodItem.key);
+ }}
+ />
+ ))}
+
+
+ >
+ );
+}
+export default React.memo(CartView);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/EmptyView.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/EmptyView.js
new file mode 100644
index 0000000..05222ec
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/EmptyView.js
@@ -0,0 +1,119 @@
+import { Box, Button, Container, Typography, useTheme } from "@mui/material";
+import clsx from "clsx";
+import React, { useContext } from "react";
+import ConfigurationContext from "../../../context/Configuration";
+import useStyles from "./styles";
+import RiderImage from "../../../assets/images/rider.png";
+import { useTranslation } from "react-i18next";
+
+function EmptyView() {
+ const { t } = useTranslation();
+ const configuration = useContext(ConfigurationContext);
+ const classes = useStyles();
+ const theme = useTheme();
+ return (
+ <>
+
+
+ {/* */}
+
+
+
+
+ {t("yourCart")}
+
+
+
+ {t("startAdding")}
+
+
+
+
+
+
+
+ {t("subTotal")}
+
+
+ {`${configuration.currencySymbol}`} 0.00
+
+
+
+
+ {t("total")} (Incl. TAX)
+
+
+ {`${configuration.currencySymbol}`} 0.00
+
+
+
+
+
+ {t("goToCheckout")}
+
+
+
+
+ >
+ );
+}
+
+export default React.memo(EmptyView);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/MRestaurantCart.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/MRestaurantCart.js
new file mode 100644
index 0000000..bbf64fd
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/MRestaurantCart.js
@@ -0,0 +1,264 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useQuery } from "@apollo/client";
+import {
+ Button,
+ CircularProgress,
+ Container,
+ Hidden,
+ Typography,
+ Box,
+ useTheme,
+} from "@mui/material";
+import gql from "graphql-tag";
+import React, { useContext, useEffect, useMemo, useState } from "react";
+import { Link as RouterLink } from "react-router-dom";
+import { getTaxation } from "../../../apollo/server";
+import ConfigurationContext from "../../../context/Configuration";
+import UserContext from "../../../context/User";
+import { useRestaurant } from "../../../hooks";
+import useStyles from "./styles";
+
+const TAXATION = gql`
+ ${getTaxation}
+`;
+
+function MRestaurantCart(props) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const [loadingData, setLoadingData] = useState(true);
+ const {
+ cart,
+ cartCount,
+ clearCart,
+ updateCart,
+ restaurant: cartRestaurant,
+ } = useContext(UserContext);
+ const configuration = useContext(ConfigurationContext);
+ const { loading: loadingTax } = useQuery(TAXATION, {
+ fetchPolicy: "network-only",
+ });
+ const { loading, data } = useRestaurant(cartRestaurant);
+ const restaurantData = data?.restaurant ?? null;
+
+ useEffect(() => {
+ if (restaurantData) didFocus();
+ }, [restaurantData, cartCount]);
+
+ const didFocus = async () => {
+ const foods = restaurantData.categories.map((c) => c.foods.flat()).flat();
+ const { addons, options } = restaurantData;
+ try {
+ if (cart && cartCount) {
+ const transformCart = cart.map((cartItem) => {
+ const foodItem = foods.find((food) => food._id === cartItem._id);
+ if (!foodItem) return null;
+ const variationItem = foodItem.variations.find(
+ (variation) => variation._id === cartItem.variation._id
+ );
+ if (!variationItem) return null;
+ const foodItemTitle = `${foodItem.title}(${variationItem.title})`;
+ let foodItemPrice = variationItem.price;
+ let optionTitles = [];
+ if (cartItem.addons) {
+ cartItem.addons.forEach((addon) => {
+ const cartAddon = addons.find((add) => add._id === addon._id);
+ if (!cartAddon) return null;
+ addon.options.forEach((option) => {
+ const cartOption = options.find(
+ (opt) => opt._id === option._id
+ );
+ if (!cartOption) return null;
+ foodItemPrice += cartOption.price;
+ optionTitles.push(cartOption.title);
+ });
+ });
+ }
+ return {
+ ...cartItem,
+ title: foodItemTitle,
+ foodTitle: foodItem.title,
+ variationTitle: variationItem.title,
+ optionTitles,
+ price: foodItemPrice.toFixed(2),
+ };
+ });
+ const updatedItems = transformCart.filter((item) => item);
+ if (updatedItems.length === 0) await clearCart();
+ await updateCart(updatedItems);
+ setLoadingData((prev) => {
+ if (prev) return false;
+ else return prev;
+ });
+ if (transformCart.length !== updatedItems.length) {
+ props.showMessage({
+ type: "warning",
+ message: "One or more item is not available",
+ });
+ }
+ }
+ } catch (e) {
+ props.showMessage({
+ type: "error",
+ message: e.message,
+ });
+ } finally {
+ setLoadingData((prev) => {
+ if (prev) return false;
+ else return prev;
+ });
+ }
+ };
+
+ const calculatePrice = useMemo(
+ () => () => {
+ let itemTotal = 0;
+ cart.forEach((cartItem) => {
+ itemTotal += cartItem.price * cartItem.quantity;
+ });
+ return itemTotal.toFixed(2);
+ },
+ [cart]
+ );
+
+ const taxCalculation = useMemo(
+ () => () => {
+ const tax = restaurantData ? +restaurantData.tax : 0;
+ if (tax === 0) {
+ return tax.toFixed(2);
+ }
+ const amount = +calculatePrice();
+ const taxAmount = ((amount / 100) * tax).toFixed(2);
+ return taxAmount;
+ },
+ [calculatePrice, restaurantData]
+ );
+
+ const calculateTotal = useMemo(
+ () => () => {
+ let total = 0;
+ total += +calculatePrice();
+ total += +taxCalculation();
+ return parseFloat(total).toFixed(2);
+ },
+ [calculatePrice, taxCalculation]
+ );
+
+ return (
+
+
+
+ {loadingTax || loadingData || loading ? (
+
+ ) : (
+ <>
+ {/*
+
+ {cartCount}
+
+
+ VIEW CART
+
+
+ {`${configuration.currencySymbol} ${calculateTotal()}`}
+
+ */}
+
+
+
+
+
+ {`${configuration.currencySymbol} ${calculateTotal()}`}
+
+
+ {cartCount}
+
+
+
+
+
+
+ GO TO CHECKOUT
+
+
+
+
+
+
+ >
+ )}
+
+
+
+ );
+}
+
+export default React.memo(MRestaurantCart);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/PricingView.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/PricingView.js
new file mode 100644
index 0000000..8884cc5
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/PricingView.js
@@ -0,0 +1,230 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, Button, Container, Typography, useTheme } from "@mui/material";
+import React, { useContext, useMemo, useEffect, useState } from "react";
+import { Link as RouterLink } from "react-router-dom";
+import ConfigurationContext from "../../../context/Configuration";
+import UserContext from "../../../context/User";
+import useStyles from "./styles";
+import { useTranslation } from "react-i18next";
+import { calculateDistance } from "../../../utils/customFunction";
+
+function PricingView(props) {
+ const { t } = useTranslation();
+ const classes = useStyles();
+ const theme = useTheme();
+ const configuration = useContext(ConfigurationContext);
+ const { cart } = useContext(UserContext);
+ const { restaurantData } = props;
+
+ const [deliveryCharges, setDeliveryCharges] = useState(0);
+
+ useEffect(() => {
+ (async () => {
+ const destinationObj = JSON.parse(localStorage.getItem("location"));
+ const latOrigin = Number(restaurantData.location.coordinates[1]);
+ const lonOrigin = Number(restaurantData.location.coordinates[0]);
+ const latDest = Number(destinationObj.latitude);
+ const longDest = Number(destinationObj.longitude);
+ const distance = await calculateDistance(
+ latOrigin,
+ lonOrigin,
+ latDest,
+ longDest
+ );
+ const amount = Math.ceil(distance) * configuration.deliveryRate;
+ setDeliveryCharges(amount > 0 ? amount : configuration.deliveryRate);
+ })();
+ }, [restaurantData]);
+ const calculatePrice = useMemo(
+ () =>
+ (amount = 0) => {
+ let itemTotal = 0;
+ cart.forEach((cartItem) => {
+ itemTotal += cartItem.price * cartItem.quantity;
+ });
+ // if (withDiscount && coupon && coupon.discount) {
+ // itemTotal = itemTotal - (coupon.discount / 100) * itemTotal;
+ // }
+ const deliveryAmount = amount > 0 ? deliveryCharges : 0;
+ return (itemTotal + deliveryAmount).toFixed(2);
+ },
+ [deliveryCharges, cart]
+ );
+ const taxCalculation = useMemo(
+ () => () => {
+ const tax = restaurantData ? +restaurantData.tax : 0;
+ if (tax === 0) {
+ return tax.toFixed(2);
+ }
+ const amount = +calculatePrice(deliveryCharges, true);
+ const taxAmount = ((amount / 100) * tax).toFixed(2);
+ return taxAmount;
+ },
+ [restaurantData, cart, deliveryCharges]
+ );
+
+ const calculateTotal = useMemo(
+ () => () => {
+ let total = 0;
+ total += +calculatePrice(deliveryCharges);
+ total += +taxCalculation();
+ return parseFloat(total).toFixed(2);
+ },
+ [deliveryCharges, cart]
+ );
+
+ // function calculateDistance(){
+ // const service = new window.google.maps.DistanceMatrixService();
+ // // build request
+ // const destinationObj = JSON.parse(localStorage.getItem('location'))
+ // console.log('destinationObj', destinationObj)
+ // const origin1 = { lat: Number(restaurantData.location.coordinates[1]), lng: Number(restaurantData.location.coordinates[0]) };
+ // const origin2 = restaurantData.address;
+ // const destinationA = destinationObj.deliveryAddress;
+ // const destinationB = { lat: Number(destinationObj.latitude), lng: Number(destinationObj.longitude) };
+
+ // const request = {
+ // origins: [origin1, origin2],
+ // destinations: [destinationA, destinationB],
+ // travelMode: window.google.maps.TravelMode.DRIVING,
+ // unitSystem: window.google.maps.UnitSystem.METRIC,
+ // avoidHighways: false,
+ // avoidTolls: false,
+ // };
+ // return service.getDistanceMatrix(request).then((response) => {
+
+ // let distance = 0;
+ // const originList = response.originAddresses;
+ // distance = response.rows[0].elements[0].distance.value;
+ // for (var i = 0; i < originList.length; i++) {
+ // var results = response.rows[i].elements;
+ // for (var j = 0; j < results.length; j++) {
+ // if(response.rows[i].elements[j].distance.value < distance){
+ // distance = response.rows[i].elements[j].distance.value
+ // }
+ // }
+ // }
+ // return distance
+ // });
+ // }
+
+ return (
+
+
+
+ {t("subTotal")}
+
+
+ {`${configuration.currencySymbol} ${calculatePrice(0)}`}
+
+
+
+
+ {t("deliveryFee")}
+
+
+ {`${configuration.currencySymbol} ${deliveryCharges.toFixed(2)}`}
+
+
+
+ {t("taxFee")}
+
+ {`${configuration.currencySymbol} ${taxCalculation()}`}
+
+
+
+
+ {t("total")} (Inc. TAX)
+
+
+ {`${configuration.currencySymbol} ${calculateTotal()}`}
+
+
+
+
+
+ {`${configuration.currencySymbol} ${calculateTotal()}`}
+
+
+ {cart && cart.length}
+
+
+
+
+
+
+ {t("goToCheckout")}
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(PricingView);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/RestaurantCart.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/RestaurantCart.js
new file mode 100644
index 0000000..b093cb9
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/RestaurantCart.js
@@ -0,0 +1,31 @@
+import { Box, Grid, Hidden } from "@mui/material";
+import React, { useContext } from "react";
+import UserContext from "../../../context/User";
+import CartView from "./CartView";
+import EmptyView from "./EmptyView";
+
+function RestaurantCart(props) {
+ const { cart } = useContext(UserContext);
+ return (
+
+
+
+ {!cart.length ? (
+
+ ) : (
+
+ )}
+
+
+
+ );
+}
+
+export default React.memo(RestaurantCart);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/styles.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/styles.js
new file mode 100644
index 0000000..62d2bd0
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantCart/styles.js
@@ -0,0 +1,65 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ infoText: {
+ ...theme.typography.body1,
+ color: theme.palette.text.disabled,
+ },
+ subtotalText: {
+ ...theme.typography.body1,
+ fontSize: "0.875rem",
+ },
+ checkoutContainer: {
+ background: theme.palette.grey[400],
+ borderRadius: 0,
+ width: "100%",
+ padding: "10px 0px",
+ "&:hover": {
+ background: theme.palette.grey[400],
+ },
+ },
+ mobileCartText: {
+ width: "130px",
+ fontWeight: 100,
+ },
+ whiteText: {
+ color: theme.palette.common.white,
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ textBold: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ mediumFont: {
+ fontSize: "1rem",
+ },
+ smallFont: {
+ fontSize: "0.875rem",
+ },
+ checkoutText: {
+ ...theme.typography.h6,
+ fontWeight: 700,
+ fontSize: "0.875rem",
+ },
+ totalText: {
+ ...theme.typography.body1,
+ fontSize: "0.875rem",
+ fontWeight: 700,
+ color: theme.palette.text.secondary,
+ },
+ itemTextStyle: {
+ ...theme.typography.body1,
+ color: theme.palette.primary.main,
+ fontWeight: 700,
+ },
+ optionTextStyle: {
+ ...theme.typography.body1,
+ color: theme.palette.primary.main,
+ },
+ border: {
+ borderBottom: `1px solid ${theme.palette.grey[500]}`,
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantHeader/RestaurantHeader.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantHeader/RestaurantHeader.js
new file mode 100644
index 0000000..55c718a
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantHeader/RestaurantHeader.js
@@ -0,0 +1,129 @@
+import { Box, Container, Typography, useTheme } from "@mui/material";
+import StarSharpIcon from "@mui/icons-material/StarSharp";
+import clsx from "clsx";
+import React, { useCallback } from "react";
+import { DAYS } from "../../../utils/constantValues";
+import useStyles from "./styles";
+import { useTranslation } from "react-i18next";
+
+function RestaurantHeader({ headerData, loading = false }) {
+ const theme = useTheme();
+ const classes = useStyles();
+ const { t } = useTranslation();
+ const isOpen = useCallback(() => {
+ if (headerData.openingTimes) {
+ if (headerData?.openingTimes?.length < 1) return false;
+ const date = new Date();
+ const day = date.getDay();
+ const hours = date.getHours();
+ const minutes = date.getMinutes();
+ const todaysTimings = headerData.openingTimes.find(
+ (o) => o.day === DAYS[day]
+ );
+ if (todaysTimings === undefined) return false;
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ );
+
+ return times.length > 0;
+ }
+ return true;
+ }, [headerData]);
+
+ const isClosed = !isOpen() || !headerData.isAvailable;
+
+ return (
+
+
+
+
+ {headerData?.name ?? "..."}
+
+
+
+ {!loading && (
+ <>
+
+
+
+ {true ? t("new") : t("closed")}
+
+
+
+
+
+ {headerData.averageReview}
+
+ /5
+
+ {headerData.averageTotal}
+
+
+
+
+
+
+ {t("deliver")} {headerData?.deliveryTime} {t("minute")}
+
+
+
+ >
+ )}
+
+ );
+}
+
+export default React.memo(RestaurantHeader);
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantHeader/styles.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantHeader/styles.js
new file mode 100644
index 0000000..3c87fb5
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/RestaurantHeader/styles.js
@@ -0,0 +1,45 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyle = makeStyles((theme) => ({
+ restaurantTitle: {
+ ...theme.typography.h6,
+ color: theme.palette.common.white,
+ fontWeight: 700,
+ },
+ tagStyles: {
+ ...theme.typography.caption,
+ color: theme.palette.common.white,
+ fontWeight: 700,
+ },
+ tagContainer: {
+ backgroundColor: theme.palette.primary.main,
+ display: "inline-block",
+ padding: "2px 8px",
+ },
+ closeContainer: {
+ backgroundColor: theme.palette.warning.light,
+ display: "inline-block",
+ padding: "2px 8px",
+ borderRadius: "8px",
+ },
+ closeTag: {
+ color: theme.palette.common.black,
+ fontWeight: 700,
+ },
+ currentRatingText: {
+ ...theme.typography.caption,
+ fontWeight: 700,
+ color: theme.palette.common.white,
+ fontSize: "0.875rem",
+ },
+ totalRatingText: {
+ ...theme.typography.caption,
+ color: theme.palette.common.white,
+ fontSize: "0.875rem",
+ },
+ categoriesStyle: {
+ color: theme.palette.common.white,
+ },
+}));
+
+export default useStyle;
diff --git a/enatega-multivendor-web/src/components/RestaurantDetailComponent/index.js b/enatega-multivendor-web/src/components/RestaurantDetailComponent/index.js
new file mode 100644
index 0000000..f87c90d
--- /dev/null
+++ b/enatega-multivendor-web/src/components/RestaurantDetailComponent/index.js
@@ -0,0 +1,6 @@
+import RestaurantCart from "./RestaurantCart/RestaurantCart";
+import MRestaurantCart from "./RestaurantCart/MRestaurantCart";
+import RestaurantHeader from "./RestaurantHeader/RestaurantHeader";
+import ItemCard from "./ItemCard/ItemCard";
+
+export { RestaurantCart, MRestaurantCart, RestaurantHeader, ItemCard };
diff --git a/enatega-multivendor-web/src/components/Tabs/Tabs.js b/enatega-multivendor-web/src/components/Tabs/Tabs.js
new file mode 100644
index 0000000..143e363
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Tabs/Tabs.js
@@ -0,0 +1,57 @@
+import React from "react";
+import { Grid } from "@mui/material";
+import Box from "@mui/material/Box";
+import CardMedia from "@mui/material/CardMedia";
+import Typography from "@mui/material/Typography";
+import deliveryImg from "../../assets/images/restaurants.jpeg";
+import pickupImg from "../../assets/images/pickup.png";
+
+import useStyles from "./styles";
+
+const DeliveryTabs = ({ active, activeTabChange, inactiveTabChange }) => {
+ const styles = useStyles();
+
+ return (
+
+
+
+
+ Delivery
+
+
+
+
+
+
+
+ Pickup
+
+
+
+
+
+ );
+};
+export default DeliveryTabs;
diff --git a/enatega-multivendor-web/src/components/Tabs/styles.js b/enatega-multivendor-web/src/components/Tabs/styles.js
new file mode 100644
index 0000000..38ced44
--- /dev/null
+++ b/enatega-multivendor-web/src/components/Tabs/styles.js
@@ -0,0 +1,42 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ marginHeader: {
+ marginTop: "200px",
+ },
+ center: {
+ flexDirection: "row",
+ display: "flex",
+ flex: 1,
+ marginLeft: "9%",
+ },
+ box: {
+ display: "flex",
+ justifyContent: "space-between",
+ width: 230,
+ background: theme.palette.common.white,
+ marginRight: 20,
+ cursor: "pointer",
+ },
+ innerBox: {
+ display: "flex",
+ flexDirection: "column",
+ background: theme.palette.common.white,
+ },
+ text: {
+ marginTop: "35px",
+ paddingLeft: "15px",
+ color: theme.palette.primary.main,
+ fontWeight: "bold",
+ },
+ image: {
+ width: 120,
+ height: 75,
+ },
+ activeTab: {
+ borderBottom: `4px solid ${theme.palette.primary.main}`,
+ boxShadow: `0 0 5px ${theme.palette.grey[300]}`,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/components/ThreeDots/ThreeDots.js b/enatega-multivendor-web/src/components/ThreeDots/ThreeDots.js
new file mode 100644
index 0000000..34c2f5f
--- /dev/null
+++ b/enatega-multivendor-web/src/components/ThreeDots/ThreeDots.js
@@ -0,0 +1,18 @@
+import StopIcon from "@mui/icons-material/Stop";
+import React from "react";
+import useStyles from "./styles";
+
+function ThreeDots() {
+ const classes = useStyles();
+ return (
+ <>
+ {Array(3)
+ .fill(null)
+ .map((item, index) => (
+
+ ))}
+ >
+ );
+}
+
+export default React.memo(ThreeDots);
diff --git a/enatega-multivendor-web/src/components/ThreeDots/styles.js b/enatega-multivendor-web/src/components/ThreeDots/styles.js
new file mode 100644
index 0000000..dd33bf6
--- /dev/null
+++ b/enatega-multivendor-web/src/components/ThreeDots/styles.js
@@ -0,0 +1,11 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyles = makeStyles((theme) => ({
+ dot: {
+ fontSize: 10,
+ margin: theme.spacing(2, 0),
+ marginRight: theme.spacing(0.5),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/config/constants.js b/enatega-multivendor-web/src/config/constants.js
new file mode 100644
index 0000000..06f256d
--- /dev/null
+++ b/enatega-multivendor-web/src/config/constants.js
@@ -0,0 +1,41 @@
+/* eslint-disable no-unused-vars */
+import React, { useContext } from "react";
+import ConfigurationContext from "../../src/context/Configuration";
+
+const ConfigurableValues = () => {
+ const configuration = useContext(ConfigurationContext);
+ console.log("configuration", configuration);
+ const SERVER_URL = "https://enatega-multivendor.up.railway.app/";
+ const WS_SERVER_URL = "wss://enatega-multivendor.up.railway.app/";
+ const GOOGLE_CLIENT_ID = configuration.webClientID;
+ const STRIPE_PUBLIC_KEY = configuration.publishableKey;
+ const PAYPAL_KEY = configuration.clientId;
+ const GOOGLE_MAPS_KEY = configuration.googleApiKey;
+ const AMPLITUDE_API_KEY = configuration.webAmplitudeApiKey;
+ const LIBRARIES = "places,drawing,geometry,localContext,visualization".split(
+ ","
+ );
+ const COLORS = {
+ GOOGLE: configuration.googleColor,
+ };
+ const SENTRY_DSN = configuration.webSentryUrl;
+ const SKIP_EMAIL_VERIFICATION = configuration.skipEmailVerification;
+ const SKIP_MOBILE_VERIFICATION = configuration.skipMobileVerification;
+
+ return {
+ SERVER_URL,
+ WS_SERVER_URL,
+ GOOGLE_CLIENT_ID,
+ COLORS,
+ PAYPAL_KEY,
+ STRIPE_PUBLIC_KEY,
+ GOOGLE_MAPS_KEY,
+ AMPLITUDE_API_KEY,
+ LIBRARIES,
+ SENTRY_DSN,
+ SKIP_EMAIL_VERIFICATION,
+ SKIP_MOBILE_VERIFICATION
+ };
+};
+
+export default ConfigurableValues;
diff --git a/enatega-multivendor-web/src/context/Configuration.js b/enatega-multivendor-web/src/context/Configuration.js
new file mode 100644
index 0000000..d3a06c0
--- /dev/null
+++ b/enatega-multivendor-web/src/context/Configuration.js
@@ -0,0 +1,25 @@
+import { gql, useQuery } from '@apollo/client'
+import React from 'react'
+import { getConfiguration } from '../apollo/server'
+
+const GETCONFIGURATION = gql`
+ ${getConfiguration}
+`
+
+const ConfigurationContext = React.createContext({})
+
+export const ConfigurationProvider = props => {
+ const { loading, data, error } = useQuery(GETCONFIGURATION)
+ const configuration =
+ loading || error || !data.configuration
+ ? { currency: '', currencySymbol: '', deliveryRate: 0 }
+ : data.configuration
+
+ return (
+
+ {props.children}
+
+ )
+}
+export const ConfigurationConsumer = ConfigurationContext.Consumer
+export default ConfigurationContext
diff --git a/enatega-multivendor-web/src/context/Location.js b/enatega-multivendor-web/src/context/Location.js
new file mode 100644
index 0000000..50af269
--- /dev/null
+++ b/enatega-multivendor-web/src/context/Location.js
@@ -0,0 +1,30 @@
+import React, { useContext, useEffect, useRef, useState } from 'react'
+
+export const LocationContext = React.createContext()
+
+export const LocationProvider = ({ children }) => {
+ const [location, setLocation] = useState(null)
+ const isInitialRender = useRef(true)
+ useEffect(() => {
+ const locationStr = localStorage.getItem('location')
+
+ if (locationStr && locationStr !== "undefined") {
+ setLocation(JSON.parse(locationStr))
+ }
+ }, [])
+ useEffect(() => {
+ if (isInitialRender.current) {
+ isInitialRender.current = false
+ return
+ }
+ if (location)
+ localStorage.setItem('location', JSON.stringify(location))
+ }, [location])
+
+
+ return
+ {children}
+
+}
+
+export const useLocationContext = () => useContext(LocationContext)
diff --git a/enatega-multivendor-web/src/context/User.js b/enatega-multivendor-web/src/context/User.js
new file mode 100644
index 0000000..3a0f3e2
--- /dev/null
+++ b/enatega-multivendor-web/src/context/User.js
@@ -0,0 +1,330 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ gql,
+ useApolloClient,
+ useLazyQuery,
+ useMutation,
+} from "@apollo/client";
+import React, { useEffect, useState } from "react";
+import { v4 } from "uuid";
+import {
+ myOrders,
+ orderStatusChanged,
+ profile,
+ saveNotificationTokenWeb,
+} from "../apollo/server";
+
+const PROFILE = gql`
+ ${profile}
+`;
+
+const ORDERS = gql`
+ ${myOrders}
+`;
+const SUBSCRIPTION_ORDERS = gql`
+ ${orderStatusChanged}
+`; // rename this 'subscriptionOrders' when user context is complete
+
+const SAVE_NOTIFICATION_TOKEN_WEB = gql`
+ ${saveNotificationTokenWeb}
+`;
+
+const UserContext = React.createContext({});
+
+export const UserProvider = (props) => {
+ const [isLoading, setIsLoading] = useState(true);
+ const client = useApolloClient();
+ const [token, setToken] = useState(localStorage.getItem("token"));
+ const [cart, setCart] = useState([]); // use initial state of cart here
+ const [restaurant, setRestaurant] = useState(null);
+ const [saveNotificationToken] = useMutation(SAVE_NOTIFICATION_TOKEN_WEB, {
+ onCompleted,
+ onError,
+ });
+ const [
+ fetchProfile,
+ {
+ called: calledProfile,
+ loading: loadingProfile,
+ error: errorProfile,
+ data: dataProfile,
+ },
+ ] = useLazyQuery(PROFILE, {
+ fetchPolicy: "network-only",
+ onCompleted,
+ onError,
+ });
+
+ const [
+ fetchOrders,
+ {
+ called: calledOrders,
+ loading: loadingOrders,
+ error: errorOrders,
+ data: dataOrders,
+ networkStatus: networkStatusOrders,
+ fetchMore: fetchMoreOrders,
+ subscribeToMore: subscribeToMoreOrders,
+ },
+ ] = useLazyQuery(ORDERS, {
+ fetchPolicy: "network-only",
+ onCompleted,
+ onError,
+ });
+
+ useEffect(() => {
+ if (!token) {
+ setIsLoading(false);
+ return;
+ }
+ let isSubscribed = true;
+ (async () => {
+ isSubscribed && setIsLoading(true);
+ isSubscribed && (await fetchProfile());
+ isSubscribed && (await fetchOrders());
+ isSubscribed && setIsLoading(false);
+ })();
+ return () => {
+ isSubscribed = false;
+ };
+ }, [token]);
+
+ useEffect(() => {
+ if (!dataProfile) return;
+ subscribeOrders();
+ }, [dataProfile]);
+
+ useEffect(() => {
+ let isSubscribed = true;
+ (async () => {
+ const restaurant = localStorage.getItem("restaurant");
+ const cart = localStorage.getItem("cartItems");
+ isSubscribed && setRestaurant(restaurant || null);
+ isSubscribed && setCart(cart ? JSON.parse(cart) : []);
+ })();
+ return () => {
+ isSubscribed = false;
+ };
+ }, []);
+
+ function onCompleted({ profile, orders, saveNotificationTokenWeb }) {
+
+ if (profile) {
+ updateNotificationToken();
+ }
+ }
+
+ function onError(error) {
+ console.log("error", error.message);
+ }
+
+ const setTokenAsync = async (tokenReq, cb = () => {}) => {
+ setToken(tokenReq);
+ localStorage.setItem("token", tokenReq);
+ cb();
+ };
+
+ const logout = async () => {
+ try {
+ localStorage.removeItem("token");
+ setToken(null);
+ await client.resetStore();
+ } catch (error) {
+ console.log("error on logout", error);
+ }
+ };
+
+ const subscribeOrders = () => {
+
+ try {
+ const unsubscribeOrders = subscribeToMoreOrders({
+ document: SUBSCRIPTION_ORDERS,
+ variables: { userId: dataProfile.profile._id },
+ updateQuery: (prev, { subscriptionData }) => {
+
+ if (!subscriptionData.data) return prev;
+ const { _id } = subscriptionData.data.orderStatusChanged.order;
+ if (subscriptionData.data.orderStatusChanged.origin === "new") {
+ if (prev?.orders?.findIndex((o) => o._id === _id) > -1) return prev;
+ return {
+ orders: [
+ subscriptionData.data.orderStatusChanged.order,
+ ...prev.orders,
+ ],
+ };
+ } else {
+ const { orders } = prev;
+ let newList = [...orders];
+ const orderIndex = newList.findIndex((o) => o._id === _id);
+ if (orderIndex > -1) {
+ newList[orderIndex] =
+ subscriptionData.data.orderStatusChanged.order;
+ }
+ return {
+ orders: [...newList],
+ };
+ }
+ },
+ });
+ client.onResetStore(unsubscribeOrders);
+ } catch (error) {
+ console.log("error subscribing order", error.message);
+ }
+ };
+
+ const fetchMoreOrdersFunc = () => {
+ if (networkStatusOrders === 7) {
+ fetchMoreOrders({
+ variables: { offset: dataOrders.orders.length + 1 },
+ updateQuery: (previousResult, { fetchMoreResult }) => {
+ // Don't do anything if there weren't any new items
+ if (!fetchMoreResult || fetchMoreResult.orders.length === 0) {
+ return previousResult;
+ }
+ return {
+ // Append the new feed results to the old one
+ orders: previousResult.orders.concat(fetchMoreResult.orders),
+ };
+ },
+ });
+ }
+ };
+
+ const clearCart = () => {
+ setCart([]);
+ setRestaurant(null);
+ localStorage.removeItem("cartItems");
+ localStorage.removeItem("restaurant");
+ };
+
+ const addQuantity = async (key, quantity = 1) => {
+ const cartIndex = cart.findIndex((c) => c.key === key);
+ cart[cartIndex].quantity += quantity;
+ setCart([...cart]);
+ localStorage.setItem("cartItems", JSON.stringify([...cart]));
+ };
+
+ const deleteItem = async (key) => {
+ const cartIndex = cart.findIndex((c) => c.key === key);
+ if (cartIndex > -1) {
+ cart.splice(cartIndex, 1);
+ const items = [...cart.filter((c) => c.quantity > 0)];
+ setCart(items);
+ if (items.length === 0) setRestaurant(null);
+ localStorage.setItem("cartItems", JSON.stringify(items));
+ }
+ };
+
+ const removeQuantity = async (key) => {
+ const cartIndex = cart.findIndex((c) => c.key === key);
+ cart[cartIndex].quantity -= 1;
+ const items = [...cart.filter((c) => c.quantity > 0)];
+ setCart(items);
+ if (items.length === 0) setRestaurant(null);
+ localStorage.setItem("cartItems", JSON.stringify(items));
+ };
+
+ const checkItemCart = (itemId) => {
+ const cartIndex = cart.findIndex((c) => c._id === itemId);
+ if (cartIndex < 0) {
+ return {
+ exist: false,
+ quantity: 0,
+ };
+ } else {
+ return {
+ exist: true,
+ quantity: cart[cartIndex].quantity,
+ key: cart[cartIndex].key,
+ };
+ }
+ };
+
+ const numberOfCartItems = () => {
+ return cart
+ .map((c) => c.quantity)
+ .reduce(function (a, b) {
+ return a + b;
+ }, 0);
+ };
+
+ const addCartItem = async (
+ _id,
+ variation,
+ quantity = 1,
+ addons = [],
+ clearFlag,
+ specialInstructions = ""
+ ) => {
+ const cartItems = clearFlag ? [] : cart;
+ cartItems.push({
+ key: v4(),
+ _id,
+ quantity: quantity,
+ variation: {
+ _id: variation,
+ },
+ addons,
+ specialInstructions,
+ });
+
+ localStorage.setItem("cartItems", JSON.stringify([...cartItems]));
+ setCart([...cartItems]);
+ };
+
+ const updateCart = async (cart) => {
+ setCart(cart);
+ localStorage.setItem("cartItems", JSON.stringify(cart));
+ };
+
+ const setCartRestaurant = async (id) => {
+ setRestaurant(id);
+ localStorage.setItem("restaurant", id);
+ };
+
+ const updateNotificationToken = () => {
+
+ const token = localStorage.getItem("messaging-token");
+ if (token) {
+
+ saveNotificationToken({ variables: { token } });
+ }
+ };
+
+ return (
+
+ {props.children}
+
+ );
+};
+
+export const UserConsumer = UserContext.Consumer;
+export default UserContext;
diff --git a/enatega-multivendor-web/src/hooks/index.js b/enatega-multivendor-web/src/hooks/index.js
new file mode 100644
index 0000000..5b43021
--- /dev/null
+++ b/enatega-multivendor-web/src/hooks/index.js
@@ -0,0 +1,4 @@
+import useLocation from './useLocation'
+import useRestaurant from './useRestaurant'
+
+export { useLocation, useRestaurant }
diff --git a/enatega-multivendor-web/src/hooks/useChat.js b/enatega-multivendor-web/src/hooks/useChat.js
new file mode 100644
index 0000000..8c0fb58
--- /dev/null
+++ b/enatega-multivendor-web/src/hooks/useChat.js
@@ -0,0 +1,96 @@
+import { useState, useEffect, useContext, useCallback, useRef } from "react";
+import gql from "graphql-tag";
+import {
+ subscriptionNewMessage,
+ sendChatMessage,
+ chat,
+} from "../apollo/server";
+import { useMutation, useQuery } from "@apollo/client";
+import UserContext from "../context/User";
+
+export const useChatScreen = (id) => {
+ const messageContainerRef = useRef()
+ const { profile } = useContext(UserContext);
+ const { subscribeToMore: subscribeToMessages, data: chatData } = useQuery(
+ gql`
+ ${chat}
+ `,
+ {
+ variables: { order: id },
+ fetchPolicy: "network-only",
+ onError,
+ }
+ );
+ const messageSetter = useCallback(() => {
+ if (chatData) {
+ setMessages(
+ chatData.chat.map((message) => ({
+ _id: message.id,
+ text: message.message,
+ createdAt: message.createdAt,
+ user: {
+ _id: message.user.id,
+ name: message.user.name,
+ },
+ }))
+ );
+ }
+ }, [chatData]);
+
+ useEffect(() => {
+ messageSetter();
+ }, [chatData, messageSetter]);
+
+ const [send] = useMutation(
+ gql`
+ ${sendChatMessage}
+ `,
+ {
+ onError,
+ }
+ );
+ function onError(error) {
+ alert("Error onError", error.message);
+ }
+ const [messages, setMessages] = useState([]);
+
+ useEffect(() => {
+ const unsubscribe = subscribeToMessages({
+ document: gql`
+ ${subscriptionNewMessage}
+ `,
+ variables: { order: id },
+ updateQuery: (prev, { subscriptionData }) => {
+ if (!subscriptionData.data) return prev;
+ return {
+ chat: [...prev.chat, subscriptionData.data.subscriptionNewMessage],
+ };
+ },
+ });
+ return unsubscribe;
+ });
+
+ const onSend = (input) => {
+ send({
+ variables: {
+ orderId: id,
+ messageInput: {
+ message: input,
+ user: {
+ id: profile._id,
+ name: profile.name,
+ },
+ },
+ },
+ });
+ };
+
+ return {
+ messages,
+ onSend,
+ profile,
+ setMessages,
+ messageSetter,
+ messageContainerRef
+ };
+};
diff --git a/enatega-multivendor-web/src/hooks/useLocation.js b/enatega-multivendor-web/src/hooks/useLocation.js
new file mode 100644
index 0000000..0a09592
--- /dev/null
+++ b/enatega-multivendor-web/src/hooks/useLocation.js
@@ -0,0 +1,41 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import Geocode from "react-geocode";
+import ConfigurableValues from "../config/constants";
+
+export default function useLocation() {
+ const { GOOGLE_MAPS_KEY } = ConfigurableValues();
+
+ Geocode.setApiKey(GOOGLE_MAPS_KEY);
+ Geocode.setLanguage("en");
+ Geocode.enableDebug(false);
+ const latLngToGeoString = async ({ latitude, longitude }) => {
+ const location = await Geocode.fromLatLng(latitude, longitude);
+ return location.results[0].formatted_address;
+ };
+ const getCurrentLocation = (callback) => {
+ navigator.geolocation.getCurrentPosition(
+ async (position) => {
+ const { latitude, longitude } = position.coords;
+ try {
+ const location = await Geocode.fromLatLng(latitude, longitude);
+ callback(null, {
+ label: "Home",
+ latitude,
+ longitude,
+ deliveryAddress: location.results[0].formatted_address,
+ });
+ } catch (error) {
+ callback(error);
+ }
+ },
+ (error) => {
+ callback(error.message);
+ console.log(error.message);
+ }
+ );
+ };
+ return {
+ getCurrentLocation,
+ latLngToGeoString,
+ };
+}
diff --git a/enatega-multivendor-web/src/hooks/useRegistration.js b/enatega-multivendor-web/src/hooks/useRegistration.js
new file mode 100644
index 0000000..5257d20
--- /dev/null
+++ b/enatega-multivendor-web/src/hooks/useRegistration.js
@@ -0,0 +1,118 @@
+import { gql, useMutation } from "@apollo/client";
+import { useCallback, useContext, useState } from "react";
+import { login } from "../apollo/server";
+import UserContext from "../context/User";
+import Analytics from "../utils/analytics";
+
+const LOGIN = gql`
+ ${login}
+`;
+
+function useRegistration() {
+ const { setTokenAsync } = useContext(UserContext);
+ const [loading, setLoading] = useState(false);
+ const [loginError, setLoginError] = useState(false);
+ const [login, setLogin] = useState(false);
+ const [loginButton, loginButtonSetter] = useState(null);
+ const [Login] = useMutation(LOGIN, { onCompleted, onError });
+
+ const toggleSnackbar = useCallback(() => {
+ setLoginError("");
+ setLogin(false);
+ }, []);
+
+ async function onCompleted({ login }) {
+ try {
+ if (login.inNewUser) {
+ await Analytics.identify(
+ {
+ userId: login.userId,
+ name: login.name,
+ email: login.email,
+ },
+ login.userId
+ );
+ await Analytics.track(Analytics.events.USER_CREATED_ACCOUNT, {
+ userId: login.userId,
+ name: login.name,
+ email: login.email,
+ });
+ } else {
+ await Analytics.identify(
+ {
+ userId: login.userId,
+ name: login.name,
+ email: login.email,
+ },
+ login.userId
+ );
+ await Analytics.track(Analytics.events.USER_LOGGED_IN, {
+ userId: login.userId,
+ name: login.name,
+ email: login.email,
+ });
+ }
+ setLogin(true);
+ await setTokenAsync(login.token);
+ } catch (e) {
+ setLoginError("Something went wrong");
+ console.log("Error While saving token:", e);
+ } finally {
+ setLoading(false);
+ }
+ }
+
+ function onError(errors) {
+ setLoading(false);
+ setLoginError(errors.message || "Invalid credentials!");
+ }
+
+ const authenticationFailure = useCallback((response) => {
+ console.log("Authentication Failed: ", response);
+ setLoading(false);
+ loginButtonSetter(null);
+ setLoginError("Something went wrong");
+ }, []);
+
+ const mutateLogin = useCallback(
+ async (user) => {
+ Login({
+ variables: {
+ ...user,
+ },
+ });
+ },
+ [Login]
+ );
+
+ const goolgeSuccess = useCallback(
+ (response) => {
+ const user = {
+ phone: "",
+ email: response.profileObj.email,
+ password: "",
+ name: response.profileObj.name,
+ picture: response.profileObj.imageUrl,
+ type: "google",
+ };
+ mutateLogin(user);
+ },
+ [mutateLogin]
+ );
+
+ return {
+ loading,
+ setLoading,
+ loginButton,
+ loginButtonSetter,
+ mutateLogin,
+ goolgeSuccess,
+ authenticationFailure,
+ setLoginError,
+ loginError,
+ login,
+ toggleSnackbar,
+ };
+}
+
+export default useRegistration;
diff --git a/enatega-multivendor-web/src/hooks/useRestaurant.js b/enatega-multivendor-web/src/hooks/useRestaurant.js
new file mode 100644
index 0000000..8601176
--- /dev/null
+++ b/enatega-multivendor-web/src/hooks/useRestaurant.js
@@ -0,0 +1,14 @@
+import { gql, useQuery } from "@apollo/client";
+import { restaurant } from "../apollo/server";
+
+const RESTAURANT = gql`
+ ${restaurant}
+`;
+
+export default function useRestaurant(id, slug) {
+ const { data, refetch, networkStatus, loading, error } = useQuery(RESTAURANT, {
+ variables: { id, slug },
+ fetchPolicy: "network-only",
+ });
+ return { data, refetch, networkStatus, loading, error };
+}
diff --git a/enatega-multivendor-web/src/i18n.js b/enatega-multivendor-web/src/i18n.js
new file mode 100644
index 0000000..ebc855f
--- /dev/null
+++ b/enatega-multivendor-web/src/i18n.js
@@ -0,0 +1,27 @@
+import i18n from "i18next";
+import { initReactI18next } from "react-i18next";
+import ar from "./translations/ar";
+import en from "./translations/en";
+import zh from "./translations/zh";
+import de from "./translations/de";
+import km from "./translations/km";
+import fr from "./translations/fr";
+
+i18n.use(initReactI18next).init({
+ resources: {
+ ar: ar,
+ en: en,
+ de: de,
+ zh: zh,
+ fr: fr,
+ km: km,
+ },
+ lng: localStorage.getItem("enatega-language") || "en",
+ fallbackLng: "en",
+ debug: true,
+ interpolation: {
+ escapeValue: false, // not needed for react!!
+ },
+});
+
+export default i18n;
diff --git a/enatega-multivendor-web/src/index.css b/enatega-multivendor-web/src/index.css
new file mode 100644
index 0000000..7fe5c7f
--- /dev/null
+++ b/enatega-multivendor-web/src/index.css
@@ -0,0 +1,13 @@
+body {
+ margin: 0;
+ font-family: "Poppins Open Sans", -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;
+}
+
+code {
+ font-family: "Poppins Open Sans", source-code-pro, Menlo, Monaco, Consolas,
+ "Courier New", monospace;
+}
diff --git a/enatega-multivendor-web/src/index.js b/enatega-multivendor-web/src/index.js
new file mode 100644
index 0000000..833e9a8
--- /dev/null
+++ b/enatega-multivendor-web/src/index.js
@@ -0,0 +1,53 @@
+import { ApolloProvider } from "@apollo/client";
+import { ThemeProvider, StyledEngineProvider } from "@mui/material";
+import React, { useEffect } from "react";
+import ReactDOM from "react-dom";
+import setupAplloClient from "./apollo/index";
+import App from "./App";
+import { ConfigurationProvider } from "./context/Configuration";
+import { LocationProvider } from "./context/Location";
+import { UserProvider } from "./context/User";
+import "./index.css";
+import reportWebVitals from "./reportWebVitals";
+import theme from "./utils/theme";
+import * as Sentry from "@sentry/react";
+import { Integrations } from "@sentry/tracing";
+import ConfigurableValues from "./config/constants";
+
+function Main() {
+ const { SENTRY_DSN } = ConfigurableValues();
+
+ useEffect(() => {
+ if (SENTRY_DSN) {
+ Sentry.init({
+ dsn: SENTRY_DSN,
+ integrations: [new Integrations.BrowserTracing()],
+ debug: true,
+ tracesSampleRate: 0.1,
+ });
+ }
+ }, [SENTRY_DSN]);
+
+ const client = setupAplloClient();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+ReactDOM.render( , document.getElementById("root"));
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals();
diff --git a/enatega-multivendor-web/src/reportWebVitals.js b/enatega-multivendor-web/src/reportWebVitals.js
new file mode 100644
index 0000000..5253d3a
--- /dev/null
+++ b/enatega-multivendor-web/src/reportWebVitals.js
@@ -0,0 +1,13 @@
+const reportWebVitals = onPerfEntry => {
+ if (onPerfEntry && onPerfEntry instanceof Function) {
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+ getCLS(onPerfEntry);
+ getFID(onPerfEntry);
+ getFCP(onPerfEntry);
+ getLCP(onPerfEntry);
+ getTTFB(onPerfEntry);
+ });
+ }
+};
+
+export default reportWebVitals;
diff --git a/enatega-multivendor-web/src/routes/AuthRoute.js b/enatega-multivendor-web/src/routes/AuthRoute.js
new file mode 100644
index 0000000..8585138
--- /dev/null
+++ b/enatega-multivendor-web/src/routes/AuthRoute.js
@@ -0,0 +1,21 @@
+import React, { useContext } from "react";
+import { Navigate, useLocation } from "react-router-dom";
+import UserContext from "../context/User";
+
+function AuthRoute({ children }) {
+ const { isLoggedIn } = useContext(UserContext);
+ const location = useLocation();
+
+ if (isLoggedIn)
+ return (
+
+ );
+ return children;
+}
+
+export default AuthRoute;
diff --git a/enatega-multivendor-web/src/routes/PrivateRoute.js b/enatega-multivendor-web/src/routes/PrivateRoute.js
new file mode 100644
index 0000000..cd46cc3
--- /dev/null
+++ b/enatega-multivendor-web/src/routes/PrivateRoute.js
@@ -0,0 +1,21 @@
+import React, { useContext } from "react";
+import { Navigate, useLocation } from "react-router-dom";
+import UserContext from "../context/User";
+
+function PrivateRoute({ children }) {
+ const { isLoggedIn } = useContext(UserContext);
+ const location = useLocation();
+
+ if (!isLoggedIn)
+ return (
+
+ );
+ return children;
+}
+
+export default PrivateRoute;
diff --git a/enatega-multivendor-web/src/screens/Checkout/Checkout.js b/enatega-multivendor-web/src/screens/Checkout/Checkout.js
new file mode 100644
index 0000000..0c95ebb
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Checkout/Checkout.js
@@ -0,0 +1,806 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+/* eslint-disable no-unused-vars */
+import { gql, useMutation } from "@apollo/client";
+import {
+ Box,
+ CircularProgress,
+ Container,
+ Dialog,
+ Grid,
+ Typography,
+ useTheme,
+ useMediaQuery,
+ Paper,
+ Divider,
+ IconButton,
+ Button,
+} from "@mui/material";
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useState,
+ useRef,
+} from "react";
+import { useNavigate } from "react-router-dom";
+import { myOrders, placeOrder } from "../../apollo/server";
+import CodIcon from "../../assets/icons/CodIcon";
+import RiderImage from "../../assets/images/rider.png";
+import MarkerImage from "../../assets/images/marker.png";
+import {
+ CartItemCard,
+ DeliveryCard,
+ PaymentCard,
+ PersonalCard,
+ OrderOption,
+} from "../../components/Checkout";
+import CloseIcon from "@mui/icons-material/Close";
+
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import { RestaurantClose } from "../../components/Modals";
+import ConfigurationContext from "../../context/Configuration";
+import { useLocationContext } from "../../context/Location";
+import UserContext from "../../context/User";
+import { useRestaurant } from "../../hooks";
+import { DAYS } from "../../utils/constantValues";
+import { paypalCurrencies, stripeCurrencies } from "../../utils/currencies";
+import { calculateDistance } from "../../utils/customFunction";
+import useStyle from "./styles";
+
+import Analytics from "../../utils/analytics";
+import { GoogleMap, Marker } from "@react-google-maps/api";
+import { mapStyles } from "../OrderDetail/mapStyles";
+import RestMarker from "../../assets/images/rest-map-2.png";
+import NearMeIcon from "@mui/icons-material/NearMe";
+import clsx from "clsx";
+
+import { useLocation } from "../../hooks";
+import { useTranslation } from "react-i18next";
+
+import moment from "moment";
+
+const PLACEORDER = gql`
+ ${placeOrder}
+`;
+const ORDERS = gql`
+ ${myOrders}
+`;
+
+const PAYMENT = {
+ id: 2,
+ payment: "COD",
+ label: "Cash",
+ icon: ,
+};
+
+function Checkout() {
+ const { t } = useTranslation();
+ const classes = useStyle();
+ const navigate = useNavigate();
+ const [isClose, setIsClose] = useState(false);
+ const [mainError, setMainError] = useState({});
+ const [loadingData, setLoadingData] = useState(false);
+ const configuration = useContext(ConfigurationContext);
+ const [addressModal, setAddressModal] = useState(false);
+ const [orderOptionModal, setOrderOptionModal] = useState(false);
+ const fetchRef = useRef(false);
+
+ const [loadingLocation, setLoadingLocation] = useState(false);
+ const [selectedAddress, setSelectedAddress] = useState(null);
+ const {
+ profile,
+ clearCart,
+ restaurant: cartRestaurant,
+ cart,
+ cartCount,
+ addQuantity,
+ removeQuantity,
+ } = useContext(UserContext);
+
+ const { location, setLocation } = useLocationContext();
+ // const { getCurrentLocation } = useLocation();
+ const theme = useTheme();
+ const [minimumOrder, setMinimumOrder] = useState("");
+ const [selectedTip, setSelectedTip] = useState();
+ const [paymentMethod, setPaymentMethod] = useState(PAYMENT);
+ const [taxValue, setTaxValue] = useState();
+
+ const [coupon, setCoupon] = useState({});
+ const [selectedDate, handleDateChange] = useState(new Date());
+ const [isPickUp, setIsPickUp] = useState(false);
+ const [deliveryCharges, setDeliveryCharges] = useState(0);
+
+ let restCoordinates = {};
+ const { loading, data, error } = useRestaurant(cartRestaurant);
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const [mutateOrder, { loading: loadingOrderMutation }] = useMutation(
+ PLACEORDER,
+ {
+ onCompleted,
+ onError,
+ update,
+ }
+ );
+ useEffect(() => {
+ if (!location) {
+ let localStorageLocation = localStorage.getItem("location");
+ localStorageLocation = JSON.parse(localStorageLocation);
+ if (localStorageLocation) {
+ setLocation(localStorageLocation);
+ }
+ }
+ }, []);
+
+ useEffect(() => {
+ (async () => {
+ if (data && !!data.restaurant) {
+ const latOrigin = Number(data.restaurant.location.coordinates[1]);
+ const lonOrigin = Number(data.restaurant.location.coordinates[0]);
+ const latDest = Number(location.latitude);
+ const longDest = Number(location.longitude);
+ const distance = await calculateDistance(
+ latOrigin,
+ lonOrigin,
+ latDest,
+ longDest
+ );
+ const amount = Math.ceil(distance) * configuration.deliveryRate;
+ setDeliveryCharges(amount > 0 ? amount : configuration.deliveryRate);
+ }
+ })();
+ }, [data, location]);
+
+ const onLoad = useCallback(
+ (map) => {
+ const bounds = new window.google.maps.LatLngBounds();
+ map.panToBounds(bounds);
+ },
+ [restCoordinates]
+ );
+
+ const isOpen = () => {
+ const date = new Date();
+ const day = date.getDay();
+ const hours = date.getHours();
+ const minutes = date.getMinutes();
+ const todaysTimings = data.restaurant.openingTimes.find(
+ (o) => o.day === DAYS[day]
+ );
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ );
+
+ return times.length > 0;
+ };
+ const toggleAdressModal = useCallback(() => {
+ setAddressModal((prev) => !prev);
+ }, []);
+
+ useEffect(() => {
+ if (cart && cartCount > 0) {
+ if (
+ data &&
+ data.restaurant &&
+ (!data.restaurant.isAvailable || !isOpen())
+ ) {
+ setIsClose((prev) => {
+ if (!prev) return true;
+ else return prev;
+ });
+ }
+ }
+ }, [data]);
+
+ const setDeliveryAddress = (item) => {
+ setSelectedAddress(item);
+ setLocation({
+ _id: item?._id,
+ label: item?.label,
+ latitude: Number(item?.location.coordinates[1]),
+ longitude: Number(item?.location.coordinates[0]),
+ deliveryAddress: item?.deliveryAddress,
+ details: item?.details,
+ });
+ };
+
+ const toggleCloseModal = useCallback(() => {
+ setIsClose((prev) => !prev);
+ }, []);
+
+ const restaurantData = data?.restaurant ?? null;
+
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ if (loading || loadingData) {
+ return (
+
+
+
+
+
+
+ );
+ }
+
+ if (error) {
+ return (
+
+
+
+ Unable to fetch data
+
+
+ );
+ }
+ restCoordinates = {
+ lat: parseFloat(data.restaurant.location.coordinates[1]),
+ lng: parseFloat(data.restaurant.location.coordinates[0]),
+ };
+
+ function update(cache, { data: { placeOrder } }) {
+ console.log("update");
+ if (placeOrder && placeOrder.paymentMethod === "COD") {
+ const data = cache.readQuery({ query: ORDERS });
+ if (data) {
+ cache.writeQuery({
+ query: ORDERS,
+ data: { orders: [placeOrder, ...data.orders] },
+ });
+ }
+ }
+ }
+
+ function onError(error) {
+ console.log("Check-out Error", error);
+ showMessage({
+ type: "error",
+ message: error.message,
+ });
+ }
+
+ function calculateTip() {
+ if (selectedTip) {
+ let total = 0;
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ total += +calculatePrice(delivery, true);
+ total += +taxCalculation();
+ const tipPercentage = (
+ (total / 100) *
+ parseFloat(selectedTip).toFixed(2)
+ ).toFixed(2);
+ return tipPercentage;
+ } else {
+ return 0;
+ }
+ }
+
+ function taxCalculation() {
+ const tax = taxValue ?? 0;
+ if (tax === 0) {
+ return tax.toFixed(2);
+ }
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ const amount = +calculatePrice(delivery, true);
+ const taxAmount = ((amount / 100) * tax).toFixed(2);
+ return taxAmount;
+ }
+ async function onCompleted(data) {
+ await Analytics.track(Analytics.events.ORDER_PLACED, {
+ userId: data.placeOrder.user._id,
+ name: data.placeOrder.user.name,
+ email: data.placeOrder.user.email,
+ phoneNumber: data.placeOrder.user.phone,
+ orderId: data.placeOrder.orderId,
+ restaurantName: data.placeOrder.restaurant.name,
+ restaurantAddress: data.placeOrder.restaurant.address,
+ orderItems: data.placeOrder.items,
+ orderPaymentMethod: data.placeOrder.paymentMethod,
+ orderAmount: data.placeOrder.orderAmount,
+ orderPaidAmount: data.placeOrder.paidAmount,
+ tipping: data.placeOrder.tipping,
+ orderStatus: data.placeOrder.orderStatus,
+ orderDate: data.placeOrder.orderDate,
+ });
+ if (paymentMethod.payment === "COD") {
+ await clearCart();
+ navigate(`/order-detail/${data.placeOrder._id}`, { replace: true });
+ } else if (paymentMethod.payment === "PAYPAL") {
+ navigate(`/paypal?id=${data.placeOrder._id}`, { replace: true });
+ } else if (paymentMethod.payment === "STRIPE") {
+ navigate(`/stripe?id=${data.placeOrder._id}`, { replace: true });
+ }
+ }
+
+ function calculatePrice(delivery = 0, withDiscount) {
+ let itemTotal = 0;
+ cart.forEach((cartItem) => {
+ itemTotal += cartItem.price * cartItem.quantity;
+ });
+ if (withDiscount && coupon && coupon.discount) {
+ itemTotal = itemTotal - (coupon.discount / 100) * itemTotal;
+ }
+ const deliveryAmount = delivery > 0 ? deliveryCharges : 0;
+ return (itemTotal + deliveryAmount).toFixed(2);
+ }
+
+ function calculateTotal() {
+ let total = 0;
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ total += +calculatePrice(delivery, true);
+ total += +taxCalculation();
+ total += +calculateTip();
+ return parseFloat(total).toFixed(2);
+ }
+
+ function transformOrder(cartData) {
+ return cartData.map((food) => {
+ return {
+ food: food._id,
+ quantity: food.quantity,
+ variation: food.variation._id,
+ addons: food.addons
+ ? food.addons.map(({ _id, options }) => ({
+ _id,
+ options: options.map(({ _id }) => _id),
+ }))
+ : [],
+ specialInstructions: food.specialInstructions,
+ };
+ });
+ }
+
+ function checkPaymentMethod(currency) {
+ if (paymentMethod.payment === "STRIPE") {
+ return stripeCurrencies.find((val) => val.currency === currency);
+ }
+ if (paymentMethod.payment === "PAYPAL") {
+ return paypalCurrencies.find((val) => val.currency === currency);
+ }
+ return true;
+ }
+
+ async function onPayment() {
+ if (checkPaymentMethod(configuration.currency)) {
+ const items = transformOrder(cart);
+ mutateOrder({
+ variables: {
+ restaurant: cartRestaurant,
+ orderInput: items,
+ paymentMethod: paymentMethod.payment,
+ couponCode: coupon ? coupon.title : null,
+ tipping: +calculateTip(),
+ taxationAmount: +taxCalculation(),
+ address: {
+ label: location.label,
+ deliveryAddress: location.deliveryAddress,
+ details: location.details,
+ longitude: "" + location.longitude,
+ latitude: "" + location.latitude,
+ },
+ orderDate: selectedDate,
+ isPickedUp: isPickUp,
+ deliveryCharges: isPickUp ? 0 : deliveryCharges,
+ },
+ });
+ } else {
+ showMessage({
+ type: "warning",
+ message: "Payment not supported",
+ });
+ }
+ }
+
+ const locationCallback = (error, data) => {
+ setLoadingLocation(false); // Stop loading
+ if (error) {
+ console.error(error);
+ return;
+ }
+
+ // Create an object for the selected address using the current location data
+ const selectedAddress = {
+ label: "Your Location",
+ deliveryAddress: data.label,
+ details: data.details,
+ latitude: data.coords.latitude,
+ longitude: data.coords.longitude,
+ };
+
+ // Update the selected address in state
+ setSelectedAddress(selectedAddress);
+ setAddressModal((prev) => !prev);
+ };
+
+ const getCurrentLocation = () => {
+ setLoadingLocation(true); // Start loading (optional)
+
+ if ("geolocation" in navigator) {
+ navigator.geolocation.getCurrentPosition(
+ (position) => {
+ locationCallback(null, position);
+ },
+ (error) => {
+ locationCallback(error, null);
+ }
+ );
+ } else {
+ // Geolocation is not supported by the browser
+ locationCallback(new Error("Geolocation is not supported."), null);
+ }
+ };
+
+ function validateOrder() {
+ if (!data.restaurant.isAvailable || !isOpen()) {
+ toggleCloseModal();
+ return;
+ }
+ if (!cart.length) {
+ showMessage({
+ type: "error",
+ message: "Cart is Empty.",
+ });
+ return false;
+ }
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ if (calculatePrice(delivery, true) < minimumOrder) {
+ showMessage({
+ type: "warning",
+ message: `The minimum amount of (${configuration.currencySymbol} ${minimumOrder}) for your order has not been reached.`,
+ });
+ return false;
+ }
+ if (!location) {
+ showMessage({
+ alive: true,
+ type: "Warning",
+ message: "Select your address.",
+ });
+ return false;
+ }
+ if (!paymentMethod) {
+ showMessage({
+ type: "warning",
+ message: "Set payment method before checkout",
+ });
+ return false;
+ }
+ if (profile.phone.length < 1) {
+ showMessage({
+ alive: true,
+ type: "Error",
+ message: t("phoneNumMissing"),
+ });
+
+ setTimeout(() => {
+ navigate("/phone-number");
+ }, 1000);
+
+ return false;
+ }
+ if (!profile.phoneIsVerified) {
+ showMessage({
+ alive: true,
+ type: "Error",
+ message: "Phone Number is not verified",
+ });
+
+ setTimeout(() => {
+ navigate("/phone-number");
+ }, 1000);
+
+ return false;
+ }
+ return true;
+ }
+ // console.log("isPickUp", isPickUp, selectedDate);
+ return (
+
+
+
+
+
+
+
+
+ {location && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ {t("deliveryTime")}
+
+
+ {moment().format("DD-MM-YYYY")} | {moment().format("LT")}
+
+
+
+ {isPickUp ? t("pickUp") : t("delivery")}
+
+ setOrderOptionModal((prev) => !prev)}
+ >
+
+ {t("change")}
+
+
+
+
+
+
+
+
+
+
+
+ {!isPickUp && (
+
+ <>
+
+
+
+
+
+
+
+
+ {t("deliverTo")}:
+
+
+ {location?.label}
+
+
+
+ {location?.deliveryAddress}
+
+
+
+
+
+ {
+ e.preventDefault();
+ console.log("clicked");
+ getCurrentLocation();
+ }}
+ >
+
+
+
+ {t("currentLocation")}
+
+
+ {loadingLocation && (
+
+ )}
+
+
+
+
+
+ >
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Checkout;
diff --git a/enatega-multivendor-web/src/screens/Checkout/styles.js b/enatega-multivendor-web/src/screens/Checkout/styles.js
new file mode 100644
index 0000000..476efeb
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Checkout/styles.js
@@ -0,0 +1,140 @@
+import makeStyles from "@mui/styles/makeStyles";
+import { useTheme } from "@mui/material";
+import Bg from "../../assets/images/bg-invert.png";
+
+const useStyles = makeStyles((theme) => {
+ const currentTheme = useTheme();
+
+ return {
+ root: {
+ background: theme.palette.grey[100],
+ },
+ mt2: {
+ marginTop: theme.spacing(2),
+ },
+ PV3: {
+ padding: theme.spacing(3, 0),
+ },
+ contentContainer: {
+ padding: theme.spacing(0, 3),
+ },
+ mainContainer: {
+ marginTop: "-10px",
+ background: theme.palette.grey[100],
+ backgroundImage: `url(${Bg})`,
+ backgroundPositionX: "left",
+ backgroundPositionY: "bottom",
+ backgroundSize: "400px",
+ backgroundRepeat: "no-repeat",
+ },
+ center: {
+ justifyContent: "center",
+ },
+ spinnerContainer: {
+ flexDirection: "row",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ height: "100vh",
+ },
+ title: {
+ fontWeight: theme.typography.fontWeightLight,
+ fontSize: "3rem",
+ color: theme.palette.secondary.light,
+ },
+ textBold: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ disableText: {
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ },
+ heartBG: {
+ display: "flex",
+ backgroundColor: currentTheme.palette.common.white,
+ alignItems: "center",
+ justifyContent: "center",
+ width: 30,
+ height: 30,
+ borderRadius: 15,
+ boxShadow: theme.shadows[5],
+ },
+ link: {
+ textDecoration: "none",
+ },
+ paymentInfoBtn: {
+ width: "100%",
+ height: "100%",
+ justifyContent: "space-between",
+ padding: theme.spacing(1),
+ marginTop: theme.spacing(4),
+ border: `1px solid ${theme.palette.grey[300]}`,
+ },
+ containerCard: {
+ marginTop: "-90px",
+ zIndex: 99,
+ },
+ headerBar: {
+ background: "linear-gradient(260.99deg, #90EA93 2.79%, #6FCF97 96.54%)",
+ borderRadius: "20px",
+ padding: "30px 20px",
+ },
+ PH1: {
+ padding: theme.spacing(0, 1),
+ },
+ PB2: {
+ paddingBottom: theme.spacing(2),
+ },
+ PT2: {
+ paddingTop: theme.spacing(2),
+ },
+ MV1: {
+ margin: theme.spacing(1, 0),
+ },
+ MV2: {
+ margin: theme.spacing(2, 0),
+ },
+
+ divider: {
+ width: "75%",
+ background: "black",
+ margin: `${theme.spacing(2)} auto`,
+ },
+ deliveryPaperProfile: {
+ background: theme.palette.primary.main,
+ borderRadius: 10,
+ cursor: "pointer",
+ border: "none",
+ },
+ closeContainer: {
+ position: "absolute",
+ background: "black",
+ top: theme.spacing(1),
+ right: theme.spacing(1),
+ "&:hover": {
+ backgroundColor: "black",
+ },
+ },
+ footerContainer: {
+ width: "100%",
+ background: theme.palette.grey[100],
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+ };
+});
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Checkout/temp.js b/enatega-multivendor-web/src/screens/Checkout/temp.js
new file mode 100644
index 0000000..af36069
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Checkout/temp.js
@@ -0,0 +1,472 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+/* eslint-disable no-unused-vars */
+import { gql, useMutation } from "@apollo/client";
+import {
+ Box,
+ CircularProgress,
+ Container,
+ Grid,
+ Typography,
+} from "@mui/material";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import { useNavigate } from "react-router-dom";
+import { myOrders, placeOrder } from "../../apollo/server";
+import CodIcon from "../../assets/icons/CodIcon";
+import {
+ CartItemCard,
+ DeliveryCard,
+ PaymentCard,
+ PersonalCard,
+ OrderOption,
+} from "../../components/Checkout";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import { RestaurantClose } from "../../components/Modals";
+import ConfigurationContext from "../../context/Configuration";
+import { LocationContext, useLocationContext } from "../../context/Location";
+import UserContext from "../../context/User";
+import { useRestaurant } from "../../hooks";
+import { DAYS } from "../../utils/constantValues";
+import { paypalCurrencies, stripeCurrencies } from "../../utils/currencies";
+import { calculateDistance } from "../../utils/customFunction";
+import useStyle from "./styles";
+import Analytics from "../../utils/analytics";
+
+const PLACEORDER = gql`
+ ${placeOrder}
+`;
+const ORDERS = gql`
+ ${myOrders}
+`;
+
+const PAYMENT = {
+ id: 2,
+ payment: "COD",
+ label: "Cash",
+ icon: ,
+};
+
+function Checkout() {
+ const classes = useStyle();
+ const navigate = useNavigate();
+ const [isClose, setIsClose] = useState(false);
+ const [mainError, setMainError] = useState({});
+ const [loadingData, setLoadingData] = useState(false);
+ const configuration = useContext(ConfigurationContext);
+ const {
+ profile,
+ clearCart,
+ restaurant: cartRestaurant,
+ cart,
+ cartCount,
+ } = useContext(UserContext);
+ const { location, setLocation } = useLocationContext();
+
+ const [minimumOrder, setMinimumOrder] = useState("");
+ const [selectedTip, setSelectedTip] = useState();
+ const [paymentMethod, setPaymentMethod] = useState(PAYMENT);
+ const [taxValue, setTaxValue] = useState();
+ const [selectedAddress, setSelectedAddress] = useState();
+ const [coupon, setCoupon] = useState({});
+ const [selectedDate, handleDateChange] = useState(new Date());
+ const [isPickUp, setIsPickUp] = useState(false);
+ const [deliveryCharges, setDeliveryCharges] = useState(0);
+
+ const { loading, data, error } = useRestaurant(cartRestaurant);
+
+ const [mutateOrder, { loading: loadingOrderMutation }] = useMutation(
+ PLACEORDER,
+ {
+ onCompleted,
+ onError,
+ update,
+ }
+ );
+ useEffect(() => {
+ if (!location) {
+ let localStorageLocation = localStorage.getItem("location");
+ localStorageLocation = JSON.parse(localStorageLocation);
+ if (localStorageLocation) {
+ setLocation(localStorageLocation);
+ }
+ }
+ }, []);
+
+ useEffect(() => {
+ (async () => {
+ if (data && !!data.restaurant) {
+ const latOrigin = Number(data.restaurant.location.coordinates[1]);
+ const lonOrigin = Number(data.restaurant.location.coordinates[0]);
+ const latDest = Number(location.latitude);
+ const longDest = Number(location.longitude);
+ const distance = await calculateDistance(
+ latOrigin,
+ lonOrigin,
+ latDest,
+ longDest
+ );
+ const amount = Math.ceil(distance) * configuration.deliveryRate;
+ setDeliveryCharges(amount > 0 ? amount : configuration.deliveryRate);
+ }
+ })();
+ }, [data, location]);
+
+ const isOpen = () => {
+ const date = new Date();
+ const day = date.getDay();
+ const hours = date.getHours();
+ const minutes = date.getMinutes();
+ const todaysTimings = data.restaurant.openingTimes.find(
+ (o) => o.day === DAYS[day]
+ );
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ );
+
+ return times.length > 0;
+ };
+
+ useEffect(() => {
+ if (cart && cartCount > 0) {
+ if (
+ data &&
+ data.restaurant &&
+ (!data.restaurant.isAvailable || !isOpen())
+ ) {
+ setIsClose((prev) => {
+ if (!prev) return true;
+ else return prev;
+ });
+ }
+ }
+ }, [data]);
+
+ const setDeliveryAddress = (item) => {
+ setSelectedAddress(item);
+ setLocation({
+ _id: item?._id,
+ label: item?.label,
+ latitude: Number(item?.location.coordinates[1]),
+ longitude: Number(item?.location.coordinates[0]),
+ deliveryAddress: item?.deliveryAddress,
+ details: item?.details,
+ });
+ };
+
+ const toggleCloseModal = useCallback(() => {
+ setIsClose((prev) => !prev);
+ }, []);
+
+ const restaurantData = data?.restaurant ?? null;
+
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ if (loading || loadingData) {
+ return (
+
+
+
+
+
+
+ );
+ }
+
+ if (error) {
+ return (
+
+
+
+ Unable to fetch data
+
+
+ );
+ }
+
+ function update(cache, { data: { placeOrder } }) {
+ if (placeOrder && placeOrder.paymentMethod === "COD") {
+ const data = cache.readQuery({ query: ORDERS });
+ if (data) {
+ cache.writeQuery({
+ query: ORDERS,
+ data: { orders: [placeOrder, ...data.orders] },
+ });
+ }
+ }
+ }
+
+ function onError(error) {
+ showMessage({
+ type: "error",
+ message: error.message,
+ });
+ }
+
+ function calculateTip() {
+ if (selectedTip) {
+ let total = 0;
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ total += +calculatePrice(delivery, true);
+ total += +taxCalculation();
+ const tipPercentage = (
+ (total / 100) *
+ parseFloat(selectedTip).toFixed(2)
+ ).toFixed(2);
+ return tipPercentage;
+ } else {
+ return 0;
+ }
+ }
+
+ function taxCalculation() {
+ const tax = taxValue ?? 0;
+ if (tax === 0) {
+ return tax.toFixed(2);
+ }
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ const amount = +calculatePrice(delivery, true);
+ const taxAmount = ((amount / 100) * tax).toFixed(2);
+ return taxAmount;
+ }
+ async function onCompleted(data) {
+ await Analytics.track(Analytics.events.ORDER_PLACED, {
+ userId: data.placeOrder.user._id,
+ name: data.placeOrder.user.name,
+ email: data.placeOrder.user.email,
+ phoneNumber: data.placeOrder.user.phone,
+ orderId: data.placeOrder.orderId,
+ restaurantName: data.placeOrder.restaurant.name,
+ restaurantAddress: data.placeOrder.restaurant.address,
+ orderItems: data.placeOrder.items,
+ orderPaymentMethod: data.placeOrder.paymentMethod,
+ orderAmount: data.placeOrder.orderAmount,
+ orderPaidAmount: data.placeOrder.paidAmount,
+ tipping: data.placeOrder.tipping,
+ orderStatus: data.placeOrder.orderStatus,
+ orderDate: data.placeOrder.orderDate,
+ });
+ if (paymentMethod.payment === "COD") {
+ await clearCart();
+ navigate(`/order-detail/${data.placeOrder._id}`, { replace: true });
+ } else if (paymentMethod.payment === "PAYPAL") {
+ navigate(`/paypal?id=${data.placeOrder._id}`, { replace: true });
+ } else if (paymentMethod.payment === "STRIPE") {
+ navigate(`/stripe?id=${data.placeOrder._id}`, { replace: true });
+ //window.location = `${SERVER_URL}stripe/create-checkout-session?id=${data.placeOrder.orderId}&platform=web`;
+ }
+ }
+
+ function calculatePrice(delivery = 0, withDiscount) {
+ let itemTotal = 0;
+ cart.forEach((cartItem) => {
+ itemTotal += cartItem.price * cartItem.quantity;
+ });
+ if (withDiscount && coupon && coupon.discount) {
+ itemTotal = itemTotal - (coupon.discount / 100) * itemTotal;
+ }
+ const deliveryAmount = delivery > 0 ? deliveryCharges : 0;
+ return (itemTotal + deliveryAmount).toFixed(2);
+ }
+
+ function calculateTotal() {
+ let total = 0;
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ total += +calculatePrice(delivery, true);
+ total += +taxCalculation();
+ total += +calculateTip();
+ return parseFloat(total).toFixed(2);
+ }
+
+ function transformOrder(cartData) {
+ return cartData.map((food) => {
+ return {
+ food: food._id,
+ quantity: food.quantity,
+ variation: food.variation._id,
+ addons: food.addons
+ ? food.addons.map(({ _id, options }) => ({
+ _id,
+ options: options.map(({ _id }) => _id),
+ }))
+ : [],
+ specialInstructions: food.specialInstructions,
+ };
+ });
+ }
+
+ function checkPaymentMethod(currency) {
+ if (paymentMethod.payment === "STRIPE") {
+ return stripeCurrencies.find((val) => val.currency === currency);
+ }
+ if (paymentMethod.payment === "PAYPAL") {
+ return paypalCurrencies.find((val) => val.currency === currency);
+ }
+ return true;
+ }
+
+ async function onPayment() {
+ if (checkPaymentMethod(configuration.currency)) {
+ const items = transformOrder(cart);
+ mutateOrder({
+ variables: {
+ restaurant: cartRestaurant,
+ orderInput: items,
+ paymentMethod: paymentMethod.payment,
+ couponCode: coupon ? coupon.title : null,
+ tipping: +calculateTip(),
+ taxationAmount: +taxCalculation(),
+ address: {
+ label: location.label,
+ deliveryAddress: location.deliveryAddress,
+ details: location.details,
+ longitude: "" + location.longitude,
+ latitude: "" + location.latitude,
+ },
+ orderDate: selectedDate,
+ isPickedUp: isPickUp,
+ deliveryCharges: isPickUp ? 0 : deliveryCharges,
+ },
+ });
+ } else {
+ showMessage({
+ type: "warning",
+ message: "Payment not supported",
+ });
+ }
+ }
+
+ function validateOrder() {
+ if (!data.restaurant.isAvailable || !isOpen()) {
+ toggleCloseModal();
+ return;
+ }
+ if (!cart.length) {
+ showMessage({
+ type: "error",
+ message: "Cart is Empty.",
+ });
+ return false;
+ }
+ const delivery = isPickUp ? 0 : deliveryCharges;
+ if (calculatePrice(delivery, true) < minimumOrder) {
+ showMessage({
+ type: "warning",
+ message: `The minimum amount of (${configuration.currencySymbol} ${minimumOrder}) for your order has not been reached.`,
+ });
+ return false;
+ }
+ if (!location._id) {
+ showMessage({
+ alive: true,
+ type: "Warning",
+ message: "Select your address.",
+ });
+ return false;
+ }
+ if (!paymentMethod) {
+ showMessage({
+ type: "warning",
+ message: "Set payment method before checkout",
+ });
+ return false;
+ }
+ if (profile.phone.length < 1) {
+ showMessage({
+ alive: true,
+ type: "Error",
+ message: "Phone Number is missing",
+ });
+ return false;
+ }
+ if (!profile.phoneIsVerified) {
+ showMessage({
+ alive: true,
+ type: "Error",
+ message: "Phone Number is not verified",
+ });
+ return false;
+ }
+ return true;
+ }
+
+ return (
+
+
+
+
+
+
+
+
+ {!isPickUp && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Checkout;
diff --git a/enatega-multivendor-web/src/screens/EmailSent/EmailSent.js b/enatega-multivendor-web/src/screens/EmailSent/EmailSent.js
new file mode 100644
index 0000000..3d399cb
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/EmailSent/EmailSent.js
@@ -0,0 +1,35 @@
+import { Box, Button, Typography, useTheme } from "@mui/material";
+import React from "react";
+import { Link as RouterLink } from "react-router-dom";
+import EmailIcon from "../../assets/icons/EmailIcon";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+
+function EmailSent() {
+ const theme = useTheme();
+ const classes = useStyles();
+
+ return (
+
+
+
+
+ Check your email
+
+
+
+ We sent you an email with instructions to reset your password. Don't forget to look in your spam folder.
+
+
+
+
+
+ back to login
+
+
+
+
+ );
+}
+
+export default EmailSent;
diff --git a/enatega-multivendor-web/src/screens/EmailSent/styles.js b/enatega-multivendor-web/src/screens/EmailSent/styles.js
new file mode 100644
index 0000000..e7aad14
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/EmailSent/styles.js
@@ -0,0 +1,26 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.text.disabled,
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.main,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Favourites/Favourites.js b/enatega-multivendor-web/src/screens/Favourites/Favourites.js
new file mode 100644
index 0000000..66308d5
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Favourites/Favourites.js
@@ -0,0 +1,227 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useQuery } from "@apollo/client";
+import { Box, Button, CircularProgress, Grid, Typography } from "@mui/material";
+import clsx from "clsx";
+import gql from "graphql-tag";
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useRef,
+ useState,
+} from "react";
+import { Link as RouterLink, useNavigate } from "react-router-dom";
+import { FavouriteRestaurant } from "../../apollo/server";
+import FavouriteIcon from "../../assets/icons/FavouriteIcon";
+import HeartFilled from "../../assets/icons/HeartFilledIcon";
+import Favourite from "../../assets/images/favs.png";
+import FavouritesBg from "../../assets/images/fav-bg.png";
+import FlashMessage from "../../components/FlashMessage";
+import { Header } from "../../components/Header";
+import { ClearCart } from "../../components/Modals";
+import { ProductCard, Subheader } from "../../components/RestaurantComponent";
+import { LocationContext } from "../../context/Location";
+import UserContext from "../../context/User";
+import analytics from "../../utils/analytics";
+import useStyles from "./styles";
+import Footer from "../../components/Footer/Footer";
+import { useTranslation } from 'react-i18next';
+
+const RESTAURANTS = gql`
+ ${FavouriteRestaurant}
+`;
+
+function EmptyView() {
+ const { t } = useTranslation()
+ const classes = useStyles();
+ return (
+
+
+
+
+
+
+ {t('titleEmptyFav')}
+
+
+
+
+ {t('emptyFavDesc')}
+
+
+
+
+
+
+
+
+
+
+
+ {t('emptyFavBtn')}
+
+
+
+
+
+ );
+}
+function Favourites() {
+ const { t } = useTranslation()
+ const navigate = useNavigate();
+ const firstTime = useRef(true);
+ const classes = useStyles();
+ const [mainError, setMainError] = useState({});
+ const [clearModal, setClearModal] = useState(false);
+ const { location } = useContext(LocationContext);
+ const [navigateData, setNavigateData] = useState({});
+ const { clearCart, restaurant: cartRestaurant } = useContext(UserContext);
+ const { data, loading, error } = useQuery(RESTAURANTS, {
+ variables: {
+ longitude: location?.longitude ?? null,
+ latitude: location?.latitude ?? null,
+ },
+ fetchPolicy: "network-only",
+ });
+
+ const navigateClearCart = useCallback(async () => {
+ await clearCart();
+ navigate(`/restaurant/${navigateData.slug}`, { state: navigateData });
+ }, [navigateData]);
+ const toggleClearCart = useCallback(() => {
+ setClearModal((prev) => !prev);
+ }, []);
+ useEffect(async () => {
+ await analytics.track(analytics.events.NAVIGATE_TO_FAVOURITES);
+ }, []);
+ useEffect(() => {
+ if (!firstTime.current && error) {
+ setMainError({
+ type: "error",
+ message: error,
+ });
+ }
+ if (!firstTime.current) {
+ firstTime.current = true;
+ }
+ }, [error]);
+
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ const checkCart = useCallback(
+ (id, name, image, slug) => {
+ if (cartRestaurant && id !== cartRestaurant) {
+ setNavigateData({ id, name, image, slug });
+ toggleClearCart();
+ return false;
+ }
+ return true;
+ },
+ [cartRestaurant]
+ );
+
+ if (loading) {
+ return (
+
+
+
+
+
+
+
+ );
+ }
+ if (error) {
+ return (
+
+
+
+
+ Unable to fetch data
+
+
+ );
+ }
+
+ const favouriteData = data?.userFavourite ?? [];
+
+ return (
+
+
+
+
+
+
+
+ {t('titleFavourite')}
+
+
+
+
+
+
+
+
+
+ {favouriteData.length < 1 ? (
+
+ ) : (
+ favouriteData.map((item) => (
+
+
+
+ ))
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Favourites;
diff --git a/enatega-multivendor-web/src/screens/Favourites/styles.js b/enatega-multivendor-web/src/screens/Favourites/styles.js
new file mode 100644
index 0000000..a7c927c
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Favourites/styles.js
@@ -0,0 +1,89 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ backgroundColor: theme.palette.primary.dark,
+ },
+ mt2: {
+ marginTop: theme.spacing(2),
+ },
+ PV3: {
+ padding: theme.spacing(3, 0),
+ },
+ contentContainer: {
+ padding: theme.spacing(0, 3),
+ },
+ topContainer: {
+ marginTop: "165px",
+ width: "100%",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ position: "relative",
+ },
+ bg: {
+ position: "absolute",
+ left: "-100px",
+ [theme.breakpoints.down("md")]: {
+ left: "-50px",
+ },
+ maxWidth: "100%",
+ },
+ mainContainer: {
+ marginTop: "50px",
+ minHeight: "100vh",
+ },
+ center: {
+ justifyContent: "center",
+ },
+ spinnerContainer: {
+ flexDirection: "row",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ height: "100vh",
+ },
+ title: {
+ fontWeight: theme.typography.fontWeightLight,
+ fontSize: "3rem",
+ color: theme.palette.secondary.light,
+ },
+ textBold: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ disableText: {
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ btnBase: {
+ borderRadius: "0px",
+ height: "50px",
+ },
+ heartBG: {
+ display: "flex",
+ backgroundColor: theme.palette.common.white,
+ alignItems: "center",
+ justifyContent: "center",
+ width: 30,
+ height: 30,
+ borderRadius: 15,
+ boxShadow: theme.shadows[5],
+ },
+ footerContainer: {
+ background: theme.palette.success.dark,
+ width: "100%",
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/ForgotPassword/ForgotPassword.js b/enatega-multivendor-web/src/screens/ForgotPassword/ForgotPassword.js
new file mode 100644
index 0000000..a05e479
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/ForgotPassword/ForgotPassword.js
@@ -0,0 +1,154 @@
+import {
+ Avatar,
+ Box,
+ Button,
+ TextField,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import React, { useCallback, useEffect, useRef, useState } from "react";
+import {
+ Link as RouterLink,
+ useLocation,
+ useNavigate,
+} from "react-router-dom";
+import FlashMessage from "../../components/FlashMessage";
+import Analytics from "../../utils/analytics";
+import { isValidEmailAddress } from "../../utils/customFunction";
+import useStyles from "./styles";
+import ForgotPassIcon from "../../assets/images/emailLock.png";
+import { LoginWrapper } from "../Wrapper";
+
+function ForgotPassword(props) {
+ const formRef = useRef();
+ const theme = useTheme();
+ const classes = useStyles();
+ const { state } = useLocation();
+ const navigate = useNavigate();
+ const [error, setError] = useState("");
+ const [emailError, setEmailError] = useState("");
+
+ const clearErrors = () => {
+ setEmailError("");
+ setError("");
+ };
+ const handleAction = () => {
+ clearErrors();
+ let validate = true;
+ const emailValue = formRef.current["userEmail"].value;
+ if (!isValidEmailAddress(emailValue)) {
+ setEmailError("Invalid Email");
+ validate = false;
+ return;
+ }
+ if (validate) {
+ navigate("/verify-forgot-otp", {
+ replace: true,
+ state: { email: emailValue },
+ });
+ } else {
+ setError("Something is missing");
+ }
+ };
+ useEffect(() => {
+ const fetchTrack = async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_FORGOT_PASSWORD);
+ };
+ fetchTrack();
+ }, []);
+ const toggleSnackbar = useCallback(() => {
+ setError("");
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ForgotPassword;
diff --git a/enatega-multivendor-web/src/screens/ForgotPassword/styles.js b/enatega-multivendor-web/src/screens/ForgotPassword/styles.js
new file mode 100644
index 0000000..952a314
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/ForgotPassword/styles.js
@@ -0,0 +1,70 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "& fieldset": {
+ borderColor: theme.palette.grey[200],
+ },
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ },
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.text.disabled,
+ },
+ mainContainer: {
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ width: "100%",
+ height: "100vh",
+ backgroundColor: theme.palette.grey[50],
+ },
+ loginBox: {
+ background: theme.palette.common.white,
+ paddingTop: "40px",
+ paddingBottom: "40px",
+ boxShadow: theme.shadows[1],
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.main,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ customBtn: {
+ background: theme.palette.common.main,
+ width: "70%",
+ transition: "opacity 0.3s",
+ opacity: 1,
+ "&:hover": {
+ backgroundColor: theme.palette.common.main,
+ opacity: 0.8,
+ },
+ },
+ btnText: {
+ width: "inherit",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Home/Home.js b/enatega-multivendor-web/src/screens/Home/Home.js
new file mode 100644
index 0000000..b005e1f
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Home/Home.js
@@ -0,0 +1,240 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Grid,
+ Container,
+ Box,
+ useTheme,
+ useMediaQuery,
+ Typography,
+} from "@mui/material";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import FlashMessage from "../../components/FlashMessage";
+import { LoginHeader } from "../../components/Header";
+import Header from "../../components/Header/Header";
+import { SearchContainer } from "../../components/HomeScreen";
+import UserContext from "../../context/User";
+import { useLocation } from "../../hooks";
+import Analytics from "../../utils/analytics";
+import useStyles from "./styles";
+import * as Sentry from "@sentry/react";
+import CategoryCards from "../../components/HomeScreen/CategoryCards";
+import WebApp from "../../assets/images/webapp.png";
+import CustApp from "../../assets/images/cust-app.png";
+import RiderApp from "../../assets/images/rider-app.png";
+import RestaurantApp from "../../assets/images/restaurant-app.png";
+import Dashboard from "../../assets/images/dashboard.png";
+import Footer from "../../components/Footer/Footer";
+import Fruits2 from "../../assets/images/fruits-2.png";
+import AppComponent from "../../components/HomeScreen/AppComponent";
+import Banner2 from "../../assets/images/banner-2.png";
+import Banner1 from "../../assets/images/banner-1.png";
+import TawkMessengerReact from "@tawk.to/tawk-messenger-react";
+import { useTranslation } from 'react-i18next';
+
+function Home() {
+ const { t } = useTranslation()
+ const classes = useStyles();
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("md"));
+ const medium = useMediaQuery(theme.breakpoints.down("lg"));
+
+ const { error, loading } = useLocation();
+ const [open, setOpen] = useState(!!error);
+ const { isLoggedIn } = useContext(UserContext);
+ let check = false;
+
+ const handleClose = useCallback(() => {
+ setOpen(false);
+ }, []);
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_HOME);
+ }, []);
+ useEffect(() => {
+ if (check) {
+ setOpen(!!error);
+ } else {
+ check = true;
+ }
+ }, [error]);
+
+ return (
+ An error has occurred}>
+
+
+
+ {isLoggedIn ? : }
+ {/* serch container (1st) */}
+
+
+
+
+
+ {/* app container (2nd) */}
+
+
+
+ {!medium && (
+
+
+
+
+ )}
+
+
+
+
+ {/* card container (3rd) */}
+
+
+
+ FEATURES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+export default Home;
diff --git a/enatega-multivendor-web/src/screens/Home/styles.js b/enatega-multivendor-web/src/screens/Home/styles.js
new file mode 100644
index 0000000..6c7a170
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Home/styles.js
@@ -0,0 +1,250 @@
+import makeStyles from "@mui/styles/makeStyles";
+import Web from "../../assets/images/web.png";
+import Blog from "../../assets/images/blog-bg.png";
+import Contact from "../../assets/images/contact-pg.png";
+import Categories from "../../assets/images/categories-bg.png";
+import Price from "../../assets/images/price-bg.png";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ "& .MuiInputBase-root": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "&:hover fieldset": {
+ borderColor: theme.palette.common.black,
+ },
+ },
+ overflowX: "hidden",
+ },
+ cardContainer: {
+ background:
+ "linear-gradient(180deg, theme.palette.common.whiteShade 0%, theme.palette.common.white 100%)",
+ borderRadius: "0px",
+ // padding: "40px",
+ },
+ RightWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ minHeight: "90vh",
+ display: "flex",
+ marginLeft: "auto",
+ // padding: "10rem 0rem 10rem 0rem",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+ cardWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ minHeight: "90vh",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ backgroundImage: `url(${Categories})`,
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ position: "relative",
+ },
+ blogWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ minHeight: "90vh",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ backgroundImage: `url(${Blog})`,
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ backgroundSize: "cover",
+ position: "relative",
+
+ [theme.breakpoints.down("md")]: {
+ backgroundImage: "none",
+ },
+ },
+ appContainer: {
+ backgroundColor: theme.palette.common.white,
+ borderRadius: "0px",
+ width: "100%",
+ height: "auto",
+ },
+ contactContainer: {
+ background:
+ "linear-gradient(180deg, theme.palette.secondary.lightest 0%, theme.palette.primary.main 100%)",
+ borderRadius: "0px",
+ width: "100%",
+ [theme.breakpoints.down("md")]: {
+ background: theme.palette.primary.main,
+ },
+ },
+ leftWrapper: {
+ background:
+ "linear-gradient(180deg, theme.palette.common.whiteShade 0%, theme.palette.common.white 100%)",
+ width: "80%",
+ minHeight: "80vh",
+ borderTopRightRadius: "5rem",
+ borderBottomRightRadius: "5rem",
+ position: "relative",
+ },
+ appWrapper: {
+ background:
+ "linear-gradient(180deg, theme.palette.common.white 0%, theme.palette.common.whiteShade 100%)",
+ width: "80%",
+ minHeight: "110vh",
+ borderTopRightRadius: "5rem",
+ borderBottomRightRadius: "5rem",
+ position: "relative",
+ display: "flex",
+ alignItems: "flex-end",
+ justifyContent: "center",
+ [theme.breakpoints.down("md")]: {
+ width: "90%",
+ },
+ },
+ priceContainer: {
+ backgroundColor: theme.palette.primary.main,
+ borderRadius: "0px",
+ width: "100%",
+ clear: "both",
+ },
+ priceWrapper: {
+ background: "white",
+ width: "90%",
+ minHeight: "90vh",
+ borderTopRightRadius: "5rem",
+ borderBottomRightRadius: "5rem",
+ display: "flex",
+ alignItems: "center",
+ position: "relative",
+ backgroundImage: `url(${Price})`,
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ },
+ bgText: {
+ position: "absolute",
+ bottom: 100,
+ right: 200,
+ fontSize: 80,
+ fontWeight: 500,
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+ bgTextSmall: {
+ position: "absolute",
+ bottom: 10,
+ right: 10,
+ fontSize: 50,
+ fontWeight: 500,
+ color: theme.palette.common.black,
+ mixBlendMode: "normal",
+ opacity: 0.24,
+ },
+ caseContainer: {
+ backgroundColor: theme.palette.primary.main,
+ borderRadius: "0px",
+ width: "100%",
+ clear: "both",
+ },
+ caseWrapper: {
+ background:
+ "linear-gradient(180.27deg, theme.palette.info.lightest 0.09%, theme.palette.info.light 36.76%, theme.palette.success.darkest 72.67%, theme.palette.success.lightest 99.63%)",
+ width: "90%",
+ minHeight: "95vh",
+ borderTopRightRadius: "5rem",
+ borderBottomRightRadius: "5rem",
+ display: "flex",
+ position: "relative",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ techContainer: {
+ background:
+ "linear-gradient(180.62deg, theme.palette.info.darkest 0.54%, theme.palette.info.dark 100.36%)",
+ },
+ techWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ minHeight: "90vh",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ backgroundImage: `url(${Web})`,
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ },
+ blogContainer: {
+ background:
+ "linear-gradient(180deg, theme.palette.shades.main 0%, theme.palette.error.light 100%)",
+ },
+ contactWrapper: {
+ background:
+ "linear-gradient(180deg, theme.palette.shades.light 0%, theme.palette.common.white 100%)",
+ width: "95%",
+ minHeight: "80vh",
+ borderTopRightRadius: "5rem",
+ borderBottomRightRadius: "5rem",
+ display: "flex",
+ backgroundImage: `url(${Contact})`,
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ backgroundSize: "cover",
+ },
+ footerContainer: {
+ background: "white",
+ width: "100%",
+ marginTop: "60px",
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+ searchWrapper: {
+ width: "100%",
+ marginTop: -28,
+ },
+ upperFruits: {
+ position: "absolute",
+ left: 0,
+ top: 0,
+ height: "100%",
+ },
+ bannerContainer: {
+ position: "absolute",
+ left: "52%",
+ top: "5%",
+ zIndex: 1000,
+ [theme.breakpoints.down("md")]: {
+ position: "relative",
+ },
+ },
+ bannerTwo: {
+ maxWidth: "40vw",
+ width: "40%",
+ height: "40%",
+ marginTop: "15%",
+ },
+ bannerOne: {
+ width: "40%",
+ height: "40%",
+ maxWidth: "60vw",
+ marginTop: "30%",
+ },
+ topBottomMargin: {
+ marginTop: "10rem",
+ marginBottom: "10rem",
+ },
+ lowerFruits: { position: "absolute", left: 0, top: 0, height: "100%" },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Login/Login.js b/enatega-multivendor-web/src/screens/Login/Login.js
new file mode 100644
index 0000000..4ca08aa
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Login/Login.js
@@ -0,0 +1,211 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import { useTheme } from "@mui/material/styles";
+import Typography from "@mui/material/Typography";
+import React, { useCallback, useEffect, useState } from "react";
+import GoogleLogin from "react-google-login";
+import ConfigurableValues from "../../config/constants";
+import { Link as RouterLink } from "react-router-dom";
+import { useLocation } from "react-router";
+import GoogleIcon from "../../assets/icons/GoogleIcon";
+import FlashMessage from "../../components/FlashMessage";
+import useRegistration from "../../hooks/useRegistration";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+function Login() {
+
+ const { GOOGLE_CLIENT_ID } = ConfigurableValues();
+
+ const { t } = useTranslation();
+
+ const theme = useTheme();
+ const [mainError, setMainError] = useState({});
+ const classes = useStyles();
+ const {
+ goolgeSuccess,
+ authenticationFailure,
+ loading,
+ setLoading,
+ loginButton,
+ loginButtonSetter,
+ loginError,
+ } = useRegistration();
+
+ const location = useLocation();
+
+ useEffect(() => {
+ if (loginError) {
+ showMessage({
+ type: "error",
+ message: loginError,
+ });
+ }
+ }, [loginError]);
+
+ const callGoogle = useCallback(
+ (clickAction) => {
+ if (!loading) {
+ loginButtonSetter("GOOGLE");
+ setLoading(true);
+ clickAction();
+ }
+ },
+ [loading]
+ );
+
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ return (
+
+
+
+ {t('welcome')}
+
+
+
+ {t('signUpOrLogin')}
+
+ (
+ callGoogle(renderProps.onClick)}
+ disabled={renderProps.disabled || loading}
+ startIcon={
+ renderProps.disabled || loading ? (
+
+ ) : (
+
+ )
+ }
+ >
+ {loading && loginButton === "GOOGLE" ? null : (
+
+ {t('signInWithGoogle')}
+
+ )}
+
+ )}
+ onSuccess={goolgeSuccess}
+ onFailure={authenticationFailure}
+ cookiePolicy={"single_host_origin"}
+ />
+
+
+
+
+
+
+
+ {t('continueWithEmail')}
+
+
+
+
+
+ {t('bySigningUp')}
+
+
+ {t('terms')}
+
+
+ {t('and')}
+
+
+ {t('privacyPolicy')}
+
+
+
+
+
+ );
+}
+
+export default Login;
diff --git a/enatega-multivendor-web/src/screens/Login/styles.js b/enatega-multivendor-web/src/screens/Login/styles.js
new file mode 100644
index 0000000..a8c371d
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Login/styles.js
@@ -0,0 +1,62 @@
+import makeStyles from "@mui/styles/makeStyles";
+//import ConfigurableValues from "../../config/constants";
+
+// const { COLORS } = ConfigurableValues();
+const COLORS = "#dd4b39";
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.common.black,
+ },
+ fontSubHead: {
+ color: theme.palette.primary.main,
+ },
+ btnBase: {
+ height: "50px",
+ width: "80%",
+ borderRadius: 5,
+ boxShadow: theme.shadows[2],
+ },
+ appleBtn: {
+ background: "#2C2C2C",
+ marginTop: "20px",
+ },
+ customBtn: {
+ background: theme.palette.common.black,
+ width: "70%",
+ transition: "opacity 0.3s",
+ opacity: 1,
+ "&:hover": {
+ backgroundColor: theme.palette.common.black,
+ opacity: 0.8,
+ },
+ },
+ gButton: {
+ marginTop: theme.spacing(3),
+ background: COLORS.GOOGLE,
+ transition: "opacity 0.3s",
+ "&:disabled": {
+ backgroundColor: COLORS.GOOGLE,
+ },
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: COLORS.GOOGLE,
+ },
+ },
+ btnText: {
+ width: "inherit",
+ },
+ line: {
+ width: "100%",
+ height: 1,
+ backgroundColor: theme.palette.common.black,
+ margin: 10,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/LoginEmail/LoginEmail.js b/enatega-multivendor-web/src/screens/LoginEmail/LoginEmail.js
new file mode 100644
index 0000000..36da713
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/LoginEmail/LoginEmail.js
@@ -0,0 +1,217 @@
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import IconButton from "@mui/material/IconButton";
+import InputAdornment from "@mui/material/InputAdornment";
+import { useTheme } from "@mui/material/styles";
+import TextField from "@mui/material/TextField";
+import Typography from "@mui/material/Typography";
+import { Visibility, VisibilityOff } from "@mui/icons-material";
+import React, { useCallback, useEffect, useRef, useState } from "react";
+import { Link as RouterLink, useLocation } from "react-router-dom";
+import LoginEmailIcon from "../../assets/images/emailLock.png";
+import FlashMessage from "../../components/FlashMessage";
+import useRegistration from "../../hooks/useRegistration";
+import { isValidEmailAddress } from "../../utils/customFunction";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import { Avatar } from "@mui/material";
+
+function LoginEmail() {
+ const formRef = useRef();
+ const theme = useTheme();
+ const classes = useStyles();
+ const { state } = useLocation();
+ const [mainError, setMainError] = useState({});
+ const [passError, setPassError] = useState("");
+ const [emailError, setEmailError] = useState("");
+ const [showPassword, setShowPassword] = useState(false);
+ const { loading, loginError, setLoading, setLoginError, mutateLogin } =
+ useRegistration();
+
+ const handleClickShowPassword = () => {
+ setShowPassword(!showPassword);
+ };
+ const handleMouseDownPassword = (event) => {
+ event.preventDefault();
+ };
+
+ useEffect(() => {
+ if (loginError) {
+ setMainError({
+ type: "error",
+ message: loginError,
+ });
+ }
+ }, [loginError]);
+
+ const clearErrors = () => {
+ setEmailError("");
+ setPassError("");
+ setLoginError("");
+ };
+ const handleAction = () => {
+ clearErrors();
+ let validate = true;
+ const emailValue = formRef.current["userEmail"].value;
+ const passValue = formRef.current["userPass"].value;
+ if (!isValidEmailAddress(emailValue)) {
+ setEmailError("Invalid Email");
+ validate = false;
+ return;
+ }
+ if (!passValue) {
+ setPassError("Password required");
+ validate = false;
+ return;
+ }
+ if (validate) {
+ setLoading(true);
+ const user = {
+ email: emailValue,
+ password: passValue,
+ type: "default",
+ };
+ mutateLogin(user);
+ } else {
+ setLoginError("Something is missing");
+ }
+ };
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ return (
+
+
+
+
+ );
+}
+
+export default LoginEmail;
diff --git a/enatega-multivendor-web/src/screens/LoginEmail/styles.js b/enatega-multivendor-web/src/screens/LoginEmail/styles.js
new file mode 100644
index 0000000..f683b4b
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/LoginEmail/styles.js
@@ -0,0 +1,40 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.text.disabled,
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.main,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ customBtn: {
+ background: theme.palette.common.main,
+ width: "70%",
+ transition: "opacity 0.3s",
+ opacity: 1,
+ "&:hover": {
+ backgroundColor: theme.palette.common.main,
+ opacity: 0.8,
+ },
+ },
+ grayText: {
+ color: theme.palette.grey[600],
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/MyOrders/MyOrders.js b/enatega-multivendor-web/src/screens/MyOrders/MyOrders.js
new file mode 100644
index 0000000..d761ede
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/MyOrders/MyOrders.js
@@ -0,0 +1,144 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Container,
+ Grid,
+ LinearProgress,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import clsx from "clsx";
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useRef,
+ useState,
+} from "react";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import { ActiveOrderCard, PastOrderCard } from "../../components/Orders";
+import OrderTabs from "../../components/Orders/Tabs/Tabs";
+import UserContext from "../../context/User";
+import Analytics from "../../utils/analytics";
+import { ACTIVE_STATUS, INACTIVE_STATUS } from "../../utils/constantValues";
+import useStyles from "./styles";
+import FavouritesBg from "../../assets/images/fav-bg.png";
+
+function MyOrders() {
+ const firstTime = useRef(true);
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles();
+ const [error, setError] = useState({});
+ const [tab, setTab] = useState(0);
+
+ const { orders, loadingOrders, errorOrders, fetchOrders } =
+ useContext(UserContext);
+ const activeOrders = orders.filter((o) =>
+ ACTIVE_STATUS.includes(o.orderStatus)
+ );
+ const pastOrders = orders.filter((o) =>
+ INACTIVE_STATUS.includes(o.orderStatus)
+ );
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ORDER);
+ }, []);
+ useEffect(() => {
+ if (!firstTime.current && (errorOrders || fetchOrders) && !loadingOrders) {
+ setError({
+ type: "error",
+ message: errorOrders || fetchOrders,
+ });
+ }
+ if (!firstTime.current) {
+ firstTime.current = true;
+ }
+ }, [errorOrders, fetchOrders, loadingOrders]);
+
+ const toggleSnackbar = useCallback(() => {
+ setError({});
+ }, []);
+
+ if (loadingOrders) {
+ return (
+
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+
+
+ {tab === 0 ? (
+
+
+
+ {activeOrders.length > 0 ? (
+ activeOrders.map((item) => (
+
+ ))
+ ) : (
+
+ You have no active orders.
+
+ )}
+
+
+
+ ) : (
+
+
+
+ {pastOrders.length > 0 ? (
+ pastOrders.map((item) => (
+
+ ))
+ ) : (
+
+ You have no past orders.
+
+ )}
+
+
+
+ )}
+
+
+
+
+
+
+
+ );
+}
+
+export default MyOrders;
diff --git a/enatega-multivendor-web/src/screens/MyOrders/styles.js b/enatega-multivendor-web/src/screens/MyOrders/styles.js
new file mode 100644
index 0000000..6732904
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/MyOrders/styles.js
@@ -0,0 +1,74 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ backgroundColor: theme.palette.primary.dark,
+ },
+ contentContainer: {
+ padding: theme.spacing(0, 3),
+ },
+ loadingContainer: {
+ marginTop: "64px",
+ },
+ mainContainer: {
+ marginTop: "200px",
+ marginBottom: "200px",
+ position: "relative",
+ backgroundColor: theme.palette.common.white,
+ boxShadow: "0px 0px 22px rgba(0, 0, 0, 0.1)",
+ borderRadius: "20px",
+ },
+ center: {
+ justifyContent: "center",
+ marginTop: 100,
+ marginBottom: 100,
+ },
+ topContainer: {
+ position: "relative",
+ width: "100%",
+ },
+ bg: {
+ position: "absolute",
+ left: "-100px",
+ [theme.breakpoints.down("md")]: {
+ left: "-50px",
+ },
+ maxWidth: "100%",
+ marginTop: "60px",
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ line: {
+ margin: theme.spacing(2, 0),
+ },
+ titleStyle: {
+ ...theme.typography.h5,
+ fontWeight: 700,
+ color: theme.palette.text.secondary,
+ },
+ restuarantTitle: {
+ ...theme.typography.body2,
+ fontWeight: 700,
+ color: theme.palette.text.secondary,
+ },
+ smallText: {
+ ...theme.typography.caption,
+ color: theme.palette.text.disabled,
+ fontSize: "0.875rem",
+ },
+ footerContainer: {
+ background: theme.palette.primary.dark,
+ width: "100%",
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/MyOrders/temp.js b/enatega-multivendor-web/src/screens/MyOrders/temp.js
new file mode 100644
index 0000000..32d2863
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/MyOrders/temp.js
@@ -0,0 +1,168 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Divider,
+ Grid,
+ LinearProgress,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import clsx from "clsx";
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useRef,
+ useState,
+} from "react";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import { ActiveOrderCard, PastOrderCard } from "../../components/Orders";
+import UserContext from "../../context/User";
+import Analytics from "../../utils/analytics";
+import { ACTIVE_STATUS, INACTIVE_STATUS } from "../../utils/constantValues";
+import useStyles from "./styles";
+
+function MyOrders() {
+ const firstTime = useRef(true);
+ const theme = useTheme();
+ const extraSmall = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles();
+ const [error, setError] = useState({});
+ const { orders, loadingOrders, errorOrders, fetchOrders } =
+ useContext(UserContext);
+ const activeOrders = orders.filter((o) =>
+ ACTIVE_STATUS.includes(o.orderStatus)
+ );
+ const pastOrders = orders.filter((o) =>
+ INACTIVE_STATUS.includes(o.orderStatus)
+ );
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ORDER);
+ }, []);
+ useEffect(() => {
+ if (!firstTime.current && (errorOrders || fetchOrders) && !loadingOrders) {
+ setError({
+ type: "error",
+ message: errorOrders || fetchOrders,
+ });
+ }
+ if (!firstTime.current) {
+ firstTime.current = true;
+ }
+ }, [errorOrders, fetchOrders, loadingOrders]);
+
+ const toggleSnackbar = useCallback(() => {
+ setError({});
+ }, []);
+
+ if (loadingOrders) {
+ return (
+
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+
+
+ Active orders
+
+
+
+
+ {activeOrders.length > 0 ? (
+ activeOrders.map((item) => (
+
+ ))
+ ) : (
+
+ You have no active orders.
+
+ )}
+
+
+
+
+
+
+
+ Past orders
+
+
+
+
+ {pastOrders.length > 0 ? (
+ pastOrders.map((item) => (
+
+ ))
+ ) : (
+
+ You have no past orders.
+
+ )}
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default MyOrders;
diff --git a/enatega-multivendor-web/src/screens/NewLogin/NewLogin.js b/enatega-multivendor-web/src/screens/NewLogin/NewLogin.js
new file mode 100644
index 0000000..f6b4591
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/NewLogin/NewLogin.js
@@ -0,0 +1,156 @@
+import { gql, useMutation } from "@apollo/client";
+import { Avatar } from "@mui/material";
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import { useTheme } from "@mui/material/styles";
+import TextField from "@mui/material/TextField";
+import Typography from "@mui/material/Typography";
+import React, { useCallback, useRef, useState } from "react";
+import { useNavigate, useLocation } from "react-router-dom";
+import { emailExist } from "../../apollo/server";
+import EmailImage from "../../assets/images/email.png";
+import FlashMessage from "../../components/FlashMessage";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import { useTranslation } from 'react-i18next';
+
+function isValidEmailAddress(address) {
+ return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(address);
+}
+
+const EMAIL = gql`
+ ${emailExist}
+`;
+
+function NewLogin() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const [error, setError] = useState("");
+ const formRef = useRef(null);
+ const navigate = useNavigate();
+ const location = useLocation();
+ const [EmailEixst, { loading }] = useMutation(EMAIL, {
+ onCompleted,
+ onError,
+ });
+
+ function onCompleted({ emailExist }) {
+ if (emailExist?._id !== null) {
+ navigate("/login-email", {
+ replace: true,
+ state: {
+ email: formRef.current["email"].value,
+ from: location.state?.from,
+ },
+ });
+ } else {
+ navigate("/registration", {
+ replace: true,
+ state: {
+ email: formRef.current["email"].value,
+ from: location.state?.from,
+ },
+ });
+ }
+ }
+ function onError({ error }) {
+ setError("Something went wrong");
+ }
+
+ const handleAction = () => {
+ const emailValue = formRef.current["email"].value;
+ if (isValidEmailAddress(emailValue)) {
+ setError("");
+ EmailEixst({ variables: { email: emailValue } });
+ } else {
+ setError("Invalid Email");
+ }
+ };
+
+ const toggleSnackbar = useCallback(() => {
+ setError("");
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('whatsYourEmail')}
+
+
+
+ {t('checkAccount')}
+
+
+
+
+ );
+}
+
+export default NewLogin;
diff --git a/enatega-multivendor-web/src/screens/NewLogin/styles.js b/enatega-multivendor-web/src/screens/NewLogin/styles.js
new file mode 100644
index 0000000..791e766
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/NewLogin/styles.js
@@ -0,0 +1,40 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.text.disabled,
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.main,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ customBtn: {
+ background: theme.palette.common.main,
+ width: "70%",
+ transition: "opacity 0.3s",
+ opacity: 1,
+ "&:hover": {
+ backgroundColor: theme.palette.common.main,
+ opacity: 0.8,
+ },
+ },
+ textField: {
+ boxShadow: theme.shadows[5],
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/OrderDetail/Background.js b/enatega-multivendor-web/src/screens/OrderDetail/Background.js
new file mode 100644
index 0000000..00fa7aa
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/OrderDetail/Background.js
@@ -0,0 +1,20 @@
+import { Paper } from "@mui/material";
+import React from "react";
+import makeStyles from "@mui/styles/makeStyles";
+import Image from "../../assets/images/food-plate.png";
+
+const useStyles = makeStyles((theme) => ({
+ paperContainer: {
+ background: `url(${Image})`,
+ width: "100%",
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ backgroundAttachment: "fixed",
+ },
+}));
+export default function Background({ children }) {
+ const classes = useStyles();
+
+ return {children} ;
+}
diff --git a/enatega-multivendor-web/src/screens/OrderDetail/OrderDetail.js b/enatega-multivendor-web/src/screens/OrderDetail/OrderDetail.js
new file mode 100644
index 0000000..df8e79a
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/OrderDetail/OrderDetail.js
@@ -0,0 +1,339 @@
+/* eslint-disable react-hooks/rules-of-hooks */
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ CircularProgress,
+ Container,
+ Grid,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
+import useMediaQuery from "@mui/material/useMediaQuery";
+import { GoogleMap, Marker } from "@react-google-maps/api";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import { useNavigate, useParams, useLocation } from "react-router-dom";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import {
+ DetailCard,
+ StatusCard,
+ AmountCard,
+ ModalView,
+} from "../../components/Orders";
+import UserContext from "../../context/User";
+import Analytics from "../../utils/analytics";
+import { ORDER_STATUS } from "../../utils/constantValues";
+import Background from "./Background";
+import useStyles from "./styles";
+import { mapStyles } from "./mapStyles";
+import { useLocationContext } from "../../context/Location";
+import Promotion from "../../components/Promotion/Promotion";
+import { Chat } from "../../components/Chat";
+import RestMarker from "../../assets/images/rest-map-2.png";
+import DestMarker from "../../assets/images/dest-map-2.png";
+import MarkerImage from "../../assets/images/marker.png";
+import TrackingRider from "../../components/Orders/OrderDetail/TrackingRider";
+import { useSubscription } from "@apollo/client";
+import { subscriptionOrder } from "../../apollo/server";
+import gql from "graphql-tag";
+import Modal from "react-modal";
+import { reviewOrder } from "../../apollo/server";
+import { useMutation } from "@apollo/client";
+import FlashMessage from "../../components/FlashMessage";
+import ThreeDots from "../../components/ThreeDots/ThreeDots";
+import StarRatings from "react-star-ratings";
+
+const REVIEWORDER = gql`
+ ${reviewOrder}
+`;
+
+function useQuery() {
+ return new URLSearchParams(useLocation().search);
+}
+
+function OrderDetail() {
+ const theme = useTheme();
+ const small = useMediaQuery(theme.breakpoints.down("sm"));
+ const classes = useStyles();
+ let { id } = useParams();
+ const navigate = useNavigate();
+ let destCoordinates = null;
+ let restCoordinates = {};
+ const queryParams = useQuery();
+ const [toggleChat, setToggleChat] = useState(false);
+ const { location } = useLocationContext();
+ const [isOpen, setIsOpen] = useState(false);
+ const [rating, setRating] = useState(0);
+ const [description, setDescription] = useState("");
+ const mobile = useMediaQuery(theme.breakpoints.down("md"));
+ const [mutate, { loading: loadingMutation }] = useMutation(REVIEWORDER, {
+ onError,
+ onCompleted,
+ });
+
+ useEffect(() => {
+ async function Track() {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RATEANDREVIEW);
+ }
+ Track();
+ }, []);
+
+ function onFinishRating(rating) {
+ setRating(rating);
+ }
+
+ function onChangeText(description) {
+ setDescription(description);
+ }
+
+ function onSubmit() {
+ mutate({
+ variables: {
+ order: id,
+ rating: rating,
+ description: description,
+ },
+ });
+ }
+
+ function onCompleted(data) {
+ closeModal();
+ }
+
+ function onError(error) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message,
+ });
+ }
+
+ const openModal = () => {
+ setIsOpen(true);
+ };
+
+ const closeModal = () => {
+ setIsOpen(false);
+ };
+
+ useSubscription(
+ gql`
+ ${subscriptionOrder}
+ `,
+ { variables: { id } }
+ );
+
+ const onLoad = useCallback(
+ (map) => {
+ const bounds = new window.google.maps.LatLngBounds();
+ bounds.extend(restCoordinates);
+ bounds.extend(destCoordinates);
+ map.fitBounds(bounds);
+ map.panToBounds(bounds);
+ },
+ [restCoordinates, destCoordinates]
+ );
+
+ const { loadingOrders, errorOrders, orders, clearCart } =
+ useContext(UserContext);
+
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_ORDER_DETAIL, {
+ orderId: id,
+ });
+ }, []);
+ useEffect(() => {
+ if (!id) {
+ navigate("/orders");
+ }
+ if (queryParams.get("clearCart")) {
+ clearCart();
+ }
+ }, [id]);
+
+ if (errorOrders) {
+ return (
+
+
+ {errorOrders.message}
+
+ );
+ }
+ const order = orders.find((o) => o._id === id);
+ if (loadingOrders || !order) {
+ return (
+
+
+
+
+ );
+ }
+ restCoordinates = {
+ lat: parseFloat(order.restaurant.location.coordinates[1]),
+ lng: parseFloat(order.restaurant.location.coordinates[0]),
+ };
+ if (!ORDER_STATUS.includes(order.orderStatus)) {
+ restCoordinates = {
+ lat: parseFloat(order.restaurant.location.coordinates[1]),
+ lng: parseFloat(order.restaurant.location.coordinates[0]),
+ };
+ destCoordinates = {
+ lat: parseFloat(order.deliveryAddress.location.coordinates[1]),
+ lng: parseFloat(order.deliveryAddress.location.coordinates[0]),
+ };
+ }
+ return (
+ <>
+
+
+
+ {loadingOrders || !order ? (
+
+ ) : errorOrders ? (
+ Unable to load data
+ ) : order?.orderStatus !== "CANCELLED" ? (
+
+ {!["CANCELLED"].includes(order.orderStatus) && (
+
+
+ {location && (
+
+ )}
+
+
+ {order.rider && }
+
+
+
+
+
+
+ )}
+ {order?.rider && (
+ {
+ setToggleChat(true);
+ }}
+ >
+
+ Chat with rider
+
+
+ )}
+ {order.orderStatus === "DELIVERED" && !order.review && (
+ {
+ openModal();
+ }}
+ >
+
+ Review your order
+
+
+ )}
+ {toggleChat && (
+
+ )}
+
+
+
+
+
+
+
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+
+
+
+
Write a Review
+
+
+
+ onChangeText(e.target.value)}
+ placeholder="More detailed reviews get more visibility..."
+ />
+
+
+
+ {loadingMutation && }
+ {!loadingMutation && (
+
+ Submit
+
+ )}
+
+
+
+
+
+ >
+ );
+}
+
+export default OrderDetail;
diff --git a/enatega-multivendor-web/src/screens/OrderDetail/mapStyles.js b/enatega-multivendor-web/src/screens/OrderDetail/mapStyles.js
new file mode 100644
index 0000000..88f4a79
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/OrderDetail/mapStyles.js
@@ -0,0 +1,347 @@
+export const mapStyles = [
+ {
+ featureType: "all",
+ elementType: "geometry",
+ stylers: [
+ {
+ color: "#ffffff",
+ },
+ ],
+ },
+ {
+ featureType: "all",
+ elementType: "labels.text.fill",
+ stylers: [
+ {
+ gamma: 0.01,
+ },
+ {
+ lightness: 20,
+ },
+ ],
+ },
+ {
+ featureType: "all",
+ elementType: "labels.text.stroke",
+ stylers: [
+ {
+ saturation: -31,
+ },
+ {
+ lightness: -33,
+ },
+ {
+ weight: 2,
+ },
+ {
+ gamma: 0.8,
+ },
+ ],
+ },
+ {
+ featureType: "all",
+ elementType: "labels.icon",
+ stylers: [
+ {
+ visibility: "off",
+ },
+ ],
+ },
+ {
+ featureType: "administrative.locality",
+ elementType: "labels.text.fill",
+ stylers: [
+ {
+ color: "#050505",
+ },
+ ],
+ },
+ {
+ featureType: "administrative.locality",
+ elementType: "labels.text.stroke",
+ stylers: [
+ {
+ color: "#fef3f3",
+ },
+ {
+ weight: "3.01",
+ },
+ ],
+ },
+ {
+ featureType: "administrative.neighborhood",
+ elementType: "labels.text.fill",
+ stylers: [
+ {
+ color: "#0a0a0a",
+ },
+ {
+ visibility: "off",
+ },
+ ],
+ },
+ {
+ featureType: "administrative.neighborhood",
+ elementType: "labels.text.stroke",
+ stylers: [
+ {
+ color: "#fffbfb",
+ },
+ {
+ weight: "3.01",
+ },
+ {
+ visibility: "off",
+ },
+ ],
+ },
+ {
+ featureType: "landscape",
+ elementType: "geometry",
+ stylers: [
+ {
+ lightness: 30,
+ },
+ {
+ saturation: 30,
+ },
+ ],
+ },
+ {
+ featureType: "poi",
+ elementType: "geometry",
+ stylers: [
+ {
+ saturation: 20,
+ },
+ ],
+ },
+ {
+ featureType: "poi.attraction",
+ elementType: "labels.icon",
+ stylers: [
+ {
+ visibility: "off",
+ },
+ ],
+ },
+ {
+ featureType: "poi.park",
+ elementType: "geometry",
+ stylers: [
+ {
+ lightness: 20,
+ },
+ {
+ saturation: -20,
+ },
+ ],
+ },
+ {
+ featureType: "road",
+ elementType: "geometry",
+ stylers: [
+ {
+ lightness: 10,
+ },
+ {
+ saturation: -30,
+ },
+ ],
+ },
+ {
+ featureType: "road",
+ elementType: "geometry.stroke",
+ stylers: [
+ {
+ saturation: 25,
+ },
+ {
+ lightness: 25,
+ },
+ ],
+ },
+ {
+ featureType: "road.highway",
+ elementType: "geometry.fill",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#a1a1a1",
+ },
+ ],
+ },
+ {
+ featureType: "road.highway",
+ elementType: "geometry.stroke",
+ stylers: [
+ {
+ color: "#292929",
+ },
+ ],
+ },
+ {
+ featureType: "road.highway",
+ elementType: "labels.text.fill",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#202020",
+ },
+ ],
+ },
+ {
+ featureType: "road.highway",
+ elementType: "labels.text.stroke",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#ffffff",
+ },
+ ],
+ },
+ {
+ featureType: "road.highway",
+ elementType: "labels.icon",
+ stylers: [
+ {
+ visibility: "simplified",
+ },
+ {
+ hue: "#0006ff",
+ },
+ {
+ saturation: "-100",
+ },
+ {
+ lightness: "13",
+ },
+ {
+ gamma: "0.00",
+ },
+ ],
+ },
+ {
+ featureType: "road.arterial",
+ elementType: "geometry.fill",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#686868",
+ },
+ ],
+ },
+ {
+ featureType: "road.arterial",
+ elementType: "geometry.stroke",
+ stylers: [
+ {
+ visibility: "off",
+ },
+ {
+ color: "#8d8d8d",
+ },
+ ],
+ },
+ {
+ featureType: "road.arterial",
+ elementType: "labels.text.fill",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#353535",
+ },
+ {
+ lightness: "6",
+ },
+ ],
+ },
+ {
+ featureType: "road.arterial",
+ elementType: "labels.text.stroke",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#ffffff",
+ },
+ {
+ weight: "3.45",
+ },
+ ],
+ },
+ {
+ featureType: "road.local",
+ elementType: "geometry.fill",
+ stylers: [
+ {
+ color: "#d0d0d0",
+ },
+ ],
+ },
+ {
+ featureType: "road.local",
+ elementType: "geometry.stroke",
+ stylers: [
+ {
+ lightness: "2",
+ },
+ {
+ visibility: "on",
+ },
+ {
+ color: "#999898",
+ },
+ ],
+ },
+ {
+ featureType: "road.local",
+ elementType: "labels.text.fill",
+ stylers: [
+ {
+ color: "#383838",
+ },
+ ],
+ },
+ {
+ featureType: "road.local",
+ elementType: "labels.text.stroke",
+ stylers: [
+ {
+ color: "#faf8f8",
+ },
+ ],
+ },
+ {
+ featureType: "transit.line",
+ elementType: "geometry.fill",
+ stylers: [
+ {
+ visibility: "on",
+ },
+ {
+ color: "#000000",
+ },
+ ],
+ },
+ {
+ featureType: "water",
+ elementType: "all",
+ stylers: [
+ {
+ lightness: -20,
+ },
+ ],
+ },
+];
diff --git a/enatega-multivendor-web/src/screens/OrderDetail/styles.js b/enatega-multivendor-web/src/screens/OrderDetail/styles.js
new file mode 100644
index 0000000..6be807e
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/OrderDetail/styles.js
@@ -0,0 +1,203 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme, mobile) => ({
+ contentContainer: {
+ padding: theme.spacing(0, 3),
+ },
+ center: {
+ justifyContent: "center",
+ },
+ textBold: {
+ fontWeight: 700,
+ },
+ heading: {
+ fontSize: "2.175rem",
+ },
+ topContainer: {
+ position: "relative",
+ marginTop: "40px",
+ },
+ orderStatus: {
+ position: "absolute",
+ bottom: -80,
+ height: 180,
+ marginLeft: theme.spacing(8),
+ backgroundColor: theme.palette.common.black,
+ borderRadius: 10,
+ display: "flex",
+ justifyContent: "center",
+ flexDirection: "column",
+ [theme.breakpoints.down("md")]: {
+ marginLeft: theme.spacing(0),
+ },
+ [theme.breakpoints.down("sm")]: {
+ marginLeft: theme.spacing(0),
+ height: "fit-content",
+ borderRadius: 20,
+ backgroundColor: theme.palette.grey[200],
+ },
+ },
+ greyText: {
+ color: theme.palette.grey[700],
+ },
+ lightGrey: {
+ color: theme.palette.primary.main,
+ },
+ bottomContainer: {
+ marginTop: theme.spacing(10),
+ backgroundColor: theme.palette.grey[100],
+ },
+ spinnerContainer: {
+ height: "100vh",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ chat: {
+ position: "fixed",
+ right: "20px",
+ bottom: "130px",
+ background: theme.palette.common.black,
+ padding: theme.spacing(2, 3),
+ borderRadius: 10,
+ borderBottomRightRadius: 0,
+ cursor: "pointer",
+ [theme.breakpoints.down("sm")]: {
+ right: "10px",
+ bottom: "10px",
+ },
+ },
+ review: {
+ position: "fixed",
+ right: "20px",
+ bottom: "200px",
+ background: theme.palette.common.black,
+ padding: theme.spacing(2, 3),
+ borderRadius: 10,
+ borderBottomRightRadius: 0,
+ cursor: "pointer",
+ [theme.breakpoints.down("sm")]: {
+ right: "10px",
+ bottom: "10px",
+ },
+ },
+ w70: {
+ width: "70%",
+ },
+ mv2: {
+ margin: theme.spacing(2, 0),
+ },
+ mt3: {
+ marginTop: theme.spacing(3),
+ },
+ ph1: {
+ padding: theme.spacing(0, 1),
+ },
+
+ cardContainer: {
+ background: theme.palette.common.white,
+ borderRadius: 0,
+ },
+ disabledText: {
+ color: theme.palette.text.disabled,
+ },
+ smallText: {
+ fontSize: "0.875rem",
+ },
+ mediumText: {
+ fontSize: "1.0rem",
+ },
+ mediumBoldText: {
+ fontSize: "1.2rem",
+ color: theme.palette.common.black,
+ fontWeight: "600",
+ },
+ cardRow: {
+ display: "flex",
+ justifyContent: "space-between",
+ padding: theme.spacing(0.1, 0),
+ },
+ btnBase: {
+ borderRadius: "0px",
+ },
+ paperContainer: {
+ width: "fit-content",
+ },
+ modal: {
+ content: {
+ top: "50%",
+ left: "50%",
+ right: "auto",
+ bottom: "auto",
+ transform: "translate(-50%, -50%)",
+ width: mobile ? "80%" : "50%", // Add the desired width here
+ height: mobile ? "40%" : "35%", // Add the desired height here
+ },
+ overlay: {
+ backgroundColor: theme.palette.secondary.dark,
+ },
+ },
+ modalContainer: {
+ flex: 1,
+ textAlign: "-webkit-center",
+ padding: mobile ? 0 : "30px",
+ },
+ title: {
+ width: "100%",
+ height: "100%",
+ },
+ starContainer: {
+ width: "100%",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ starWrapper: {
+ width: "70%",
+ height: "60%",
+ },
+ inputContainer: {
+ width: "100%",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ input: {
+ marginTop: "30px",
+ height: "100%",
+ color: theme.palette.common.black,
+ width: mobile ? "100%" : "40%",
+ // border: "none",
+ // borderBottom: "1px solid theme.palette.secondary.light",
+ borderColor: theme.palette.grey[300],
+ borderWidth: "1px",
+ borderStyle: "groove",
+ outline: "none",
+ padding: "0.6%",
+ },
+ submitContainer: {
+ width: "100%",
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ submit: {
+ width: "80%",
+ height: "10%",
+ },
+ submitButton: {
+ width: "40%",
+ color: "white",
+ backgroundColor: theme.palette.primary.main,
+ marginTop: "20px",
+ border: "none",
+ padding: "10px",
+ },
+ backdrop: {
+ backgroundColor: theme.palette.common.black,
+ },
+ closeButton: {
+ position: 'absolute',
+ top: 30, // Adjust the top value as needed
+ right: 10, // Adjust the right value as needed
+ cursor: 'pointer',
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Paypal/Paypal.js b/enatega-multivendor-web/src/screens/Paypal/Paypal.js
new file mode 100644
index 0000000..d81ebe5
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Paypal/Paypal.js
@@ -0,0 +1,177 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useApolloClient, useQuery } from "@apollo/client";
+import { Box, CircularProgress, Grid, Typography } from "@mui/material";
+import gql from "graphql-tag";
+import React, { useCallback, useContext, useState, useEffect } from "react";
+import { PayPalButton } from "react-paypal-button-v2";
+import { useLocation, useNavigate } from "react-router";
+import { myOrders, orderPaypal } from "../../apollo/server";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import { PaymentOrderCard } from "../../components/Orders";
+import ConfigurableValues from "../../config/constants";
+import UserContext from "../../context/User";
+import useStyles from "./styles";
+import Analytics from "../../utils/analytics";
+const ORDER_PAYPAL = gql`
+ ${orderPaypal}
+`;
+
+const ORDERS = gql`
+ ${myOrders}
+`;
+
+function Paypal() {
+ const { SERVER_URL, PAYPAL_KEY } = ConfigurableValues();
+ const classes = useStyles();
+ const navigate = useNavigate();
+ const client = useApolloClient();
+ let query = new URLSearchParams(useLocation().search);
+ const id = query.get("id") ?? null;
+ const [loader, setLoader] = useState(false);
+ const [mainError, setMainError] = useState({});
+ const { clearCart } = useContext(UserContext);
+ const { data, loading, error } = useQuery(ORDER_PAYPAL, {
+ variables: {
+ id: id,
+ },
+ });
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PAYPAL);
+ }, []);
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+ async function handleResponse() {
+ await clearCart();
+ const result = await client.query({
+ query: ORDERS,
+ fetchPolicy: "network-only",
+ });
+ const order = result.data.orders.find(
+ (item) => item.orderId === data.orderPaypal.orderId
+ );
+ setLoader(false);
+ navigate(`/order-detail/${order._id}`, { replace: true });
+ }
+
+ if (error) {
+ return (
+
+
+
+
+ {error.message}
+
+
+
+ );
+ }
+
+ const order = data?.orderPaypal ?? undefined;
+
+ return (
+
+
+
+
+ {loading || loader ? (
+
+
+
+ ) : (
+ <>
+ {order && }
+
+
+ {
+ setLoader(true);
+ return await fetch(
+ `${SERVER_URL}paypal/paypal-transaction-complete?id=${
+ order?.orderId
+ }&paymentDetails=${JSON.stringify(details)}`,
+ {
+ method: "GET",
+ }
+ )
+ .then((response) => response.json())
+ .then((result) => {
+ if (!result.error) {
+ handleResponse();
+ } else {
+ setLoader(false);
+ showMessage({
+ type: "error",
+ message: result.message,
+ alive: true,
+ });
+ }
+ });
+ }}
+ />
+
+
+ >
+ )}
+
+
+
+ );
+}
+
+export default React.memo(Paypal);
diff --git a/enatega-multivendor-web/src/screens/Paypal/styles.js b/enatega-multivendor-web/src/screens/Paypal/styles.js
new file mode 100644
index 0000000..45b6207
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Paypal/styles.js
@@ -0,0 +1,19 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ background: theme.palette.grey[100],
+ minHeight: "100vh",
+ },
+ mainContainer: {
+ marginTop: "70px",
+ padding: theme.spacing(6, 0),
+ justifyContent: "center",
+ background: theme.palette.grey[100],
+ },
+ link: {
+ textDecoration: "none",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/PhoneNumber/PhoneNumber.js b/enatega-multivendor-web/src/screens/PhoneNumber/PhoneNumber.js
new file mode 100644
index 0000000..d7d7787
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/PhoneNumber/PhoneNumber.js
@@ -0,0 +1,194 @@
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import { useTheme } from "@mui/material/styles";
+import Typography from "@mui/material/Typography";
+import React, { useRef, useState, useContext } from "react";
+import { useLocation, useNavigate } from "react-router-dom";
+import FlashMessage from "../../components/FlashMessage";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import RegistrationIcon from "../../assets/images/emailLock.png";
+import { Avatar } from "@mui/material";
+import PhoneInput from "react-phone-input-2";
+import "react-phone-input-2/lib/style.css";
+import { phoneExist, updateUser } from "../../apollo/server";
+import { gql, useMutation } from "@apollo/client";
+
+import UserContext from "../../context/User";
+import ConfigurationContext from "../../context/Configuration";
+
+import { useTranslation } from "react-i18next";
+
+const PHONE = gql`
+ ${phoneExist}
+`;
+
+const UPDATEUSER = gql`
+ ${updateUser}
+`;
+
+function PhoneNumber() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const [error, setError] = useState("");
+ const navigate = useNavigate();
+ const formRef = useRef(null);
+ const { state } = useLocation();
+ const [loading, setLoading] = useState(false); // State to manage loading animation
+ const [phone, setPhone] = useState("");
+ const [phoneError, setPhoneError] = useState(""); // State to manage phone input error
+
+ const [mutate] = useMutation(UPDATEUSER);
+ const { profile } = useContext(UserContext);
+ const configuration = useContext(ConfigurationContext);
+
+ const [PhoneExist] = useMutation(PHONE, {
+ onCompleted,
+ onError,
+ });
+
+ async function onCompleted({ phoneExist }) {
+ if (phoneExist?._id !== null) {
+ setError("Phone number already associated with some other user");
+ setLoading(false); // Turn off loading animation if an error occurs
+ } else {
+ try {
+ if (configuration?.twilioEnabled) {
+ // Fetch twilioEnabled from state
+ navigate("/verify-phone", {
+ replace: true,
+ state: {
+ phone: `+${phone}`,
+ },
+ });
+ } else {
+ // If twilioEnabled is not true, mutate and navigate to "/"
+ await mutate({
+ variables: {
+ name: profile.name,
+ phone: `+${phone}`,
+ phoneIsVerified: true,
+ },
+ });
+
+ navigate("/", {
+ replace: true,
+ });
+ }
+ } catch (error) {
+ console.error("Error:", error);
+ }
+ }
+ }
+
+ function onError({ error }) {
+ setError("Something went wrong");
+ setLoading(false); // Turn off loading animation if an error occurs
+ }
+
+ const handleAction = async () => {
+ setError("");
+ setPhoneError(""); // Reset phone error state to clear any previous errors
+ let validate = true;
+ if (!phone) {
+ setPhoneError("Phone number required");
+ validate = false;
+ }
+ if (validate) {
+ if (`+${phone}` !== state?.prevPhone) {
+ setLoading(true); // Turn on loading animation before making the mutation call
+ await PhoneExist({ variables: { phone: `+${phone}` } });
+ } else {
+ setPhoneError("New phone number must be different from previous one");
+ }
+ }
+ };
+
+
+ return (
+
+
+
+
+
+
+
+
+ {t("updatePhone")} {t("number")}
+
+
+
+ {t("secureAcc")}
+
+
+
+
+ );
+}
+
+export default PhoneNumber;
diff --git a/enatega-multivendor-web/src/screens/PhoneNumber/styles.js b/enatega-multivendor-web/src/screens/PhoneNumber/styles.js
new file mode 100644
index 0000000..9f2edd6
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/PhoneNumber/styles.js
@@ -0,0 +1,36 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.grey[500],
+ },
+ rowField: {
+ display: "flex",
+ flexDirection: "row",
+ justifyContent: "space-between",
+ margin: theme.spacing(2, 0),
+ },
+ btnBase: {
+ height: "50px",
+ backgroundColor: theme.palette.common.black,
+ transition: "opacity 0.3s",
+ opacity: 1,
+ "&:hover": {
+ backgroundColor: theme.palette.common.black,
+ opacity: 0.8,
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ form: {
+ display: "flex",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Pickup/Pickup.js b/enatega-multivendor-web/src/screens/Pickup/Pickup.js
new file mode 100644
index 0000000..873719b
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Pickup/Pickup.js
@@ -0,0 +1,241 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { gql, useLazyQuery } from "@apollo/client";
+import { Box, CircularProgress, Grid, Typography, Button } from "@mui/material";
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useState,
+ useRef,
+} from "react";
+import { useNavigate } from "react-router";
+import { restaurantList } from "../../apollo/server";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import { ClearCart } from "../../components/Modals";
+import RestaurantGridForPickup from "../../components/RestaurantComponent/RestaurantGridForPickup/RestaurantGridForPickup";
+import Subheader from "../../components/RestaurantComponent/Subheader/Subheader";
+import { LocationContext } from "../../context/Location";
+import UserContext from "../../context/User";
+import useStyles from "./styles";
+import { GoogleMap, Marker } from "@react-google-maps/api";
+import MarkerImage from "../../assets/images/marker.png";
+
+const RESTAURANTS = gql`
+ ${restaurantList}
+`;
+
+function Pickup() {
+ const navigate = useNavigate();
+ const { location } = useContext(LocationContext);
+ const [center, setCenter] = useState({
+ lat: 0,
+ lng: 0,
+ });
+ const [message, setMessage] = useState({});
+ const { isLoggedIn } = useContext(UserContext);
+ const [clearModal, setClearModal] = useState(false);
+ const [navigateData, setNavigateData] = useState({});
+ const classes = useStyles();
+ const { clearCart, restaurant: cartRestaurant } = useContext(UserContext);
+ const mapRef = useRef(null);
+ const fetchRef = useRef(false);
+ const [loader, setLoader] = useState(true);
+
+ const [fetchRestaurants, { data, loading, error, refetch }] = useLazyQuery(
+ RESTAURANTS,
+ {
+ fetchPolicy: "network-only",
+ onCompleted,
+ }
+ );
+ function onCompleted(data) {
+ setLoader(false);
+ }
+ const navigateClearCart = useCallback(async () => {
+ await clearCart();
+ navigate(`/restaurant/${navigateData.slug}`, { state: navigateData });
+ }, [navigateData]);
+
+ const checkCart = useCallback(
+ (id, name, image, slug) => {
+ if (cartRestaurant && id !== cartRestaurant) {
+ setNavigateData({ id, name, image, slug });
+ toggleClearCart();
+ return false;
+ }
+ return true;
+ },
+ [cartRestaurant]
+ );
+
+ const toggleClearCart = useCallback(() => {
+ setClearModal((prev) => !prev);
+ }, []);
+
+ useEffect(() => {
+ if (!fetchRef.current) return;
+ (async () => {
+ const cen = {
+ lat: parseFloat(location.latitude),
+ lng: parseFloat(location.longitude),
+ };
+ const variables = {
+ longitude: parseFloat(location.longitude) || null,
+ latitude: parseFloat(location.latitude) || null,
+ };
+ await refetch(variables);
+ setCenter(cen);
+ })();
+ }, [location]);
+
+ useEffect(() => {
+ if (!location) return;
+ if (fetchRef.current) return;
+ const cen = {
+ lat: parseFloat(location.latitude),
+ lng: parseFloat(location.longitude),
+ };
+ const variables = {
+ longitude: parseFloat(location.longitude) || null,
+ latitude: parseFloat(location.latitude) || null,
+ };
+ fetchRestaurants({ variables });
+ setCenter(cen);
+ fetchRef.current = true;
+ }, [location]);
+
+ const showMessage = useCallback((messageObj) => {
+ setMessage(messageObj);
+ }, []);
+ const toggleSnackbar = useCallback(() => {
+ setMessage({});
+ }, []);
+
+ if (loader || loading || error) {
+ return (
+
+ {isLoggedIn ? : }
+
+
+ {loading ? (
+
+ ) : (
+ Unable to load data
+ )}
+
+
+ );
+ }
+ const { restaurants } = data?.nearByRestaurants ?? {};
+
+ const containerStyle = {
+ width: "100%",
+ height: "700px",
+ marginTop: "-50px",
+ };
+
+ function handleLoad(map) {
+ mapRef.current = map;
+ }
+
+ const searchArea = async () => {
+ const cen = {
+ lat: parseFloat(mapRef.current.getCenter().toJSON().lat),
+ lng: parseFloat(mapRef.current.getCenter().toJSON().lng),
+ };
+ const variables = {
+ longitude: parseFloat(cen.lng) || null,
+ latitude: parseFloat(cen.lat) || null,
+ };
+ setCenter(cen);
+ await refetch(variables);
+ };
+
+ const onClickMarker = item => {
+ const element = document.querySelector(
+ `[id="${item._id}"]`
+ );
+ element.scrollIntoView({
+ behavior: "smooth",
+ block: "center",
+ });
+
+ element.focus({ preventScroll: true });
+ }
+
+ return (
+
+
+ {isLoggedIn ? : }
+
+
+
+
+ searchArea()}>
+ Search area
+
+
+
+ {restaurants?.map((item) => {
+ return (
+ onClickMarker(item)}
+ title={item.name}
+ />
+ );
+ })}
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Pickup;
diff --git a/enatega-multivendor-web/src/screens/Pickup/styles.js b/enatega-multivendor-web/src/screens/Pickup/styles.js
new file mode 100644
index 0000000..7b013af
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Pickup/styles.js
@@ -0,0 +1,45 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ marginHeader: {
+ marginTop: "100px",
+ },
+ rowReverse: {
+ display: "flex",
+ flexDirection: "row-reverse",
+ },
+ spinnerContainer: {
+ flexDirection: "row",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ marginTop: "100px",
+ },
+ mapGrid: {
+ height: "700px",
+ width: "100%",
+ overflow: "hidden",
+ },
+ restaurants: {
+ height: "700px",
+ overflow: "scroll",
+ },
+ btn: {
+ zIndex: 1,
+ marginLeft: "40%",
+ background: theme.palette.primary.main,
+ color: theme.palette.common.white,
+ fontWeight: "bold",
+ boxShadow: `0 0 5px ${theme.palette.grey[300]}`,
+ "&:hover": {
+ background: theme.palette.success.main,
+ },
+ },
+ cardFocus: {
+ boxShadow: `0 0 10px ${theme.palette.grey[300]}`,
+ border: `2px solid ${theme.palette.primary.main}`,
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Privacy/Privacy.js b/enatega-multivendor-web/src/screens/Privacy/Privacy.js
new file mode 100644
index 0000000..8c4afcd
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Privacy/Privacy.js
@@ -0,0 +1,195 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, Grid, Typography } from "@mui/material";
+import React, { useContext, useEffect } from "react";
+
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import UserContext from "../../context/User";
+import useStyle from "./styles";
+import Analytics from "../../utils/analytics";
+
+function PrivacyPolicy() {
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PRIVACY_POLICY);
+ }, []);
+ const classes = useStyle();
+ const { isLoggedIn } = useContext(UserContext);
+ return (
+
+ {isLoggedIn ? : }
+
+
+
+ Privacy Policy
+
+
+
+
+
+
+ This policy explains how we, enatega, a brand of
+
+
+ {"https://enatega.com"}
+
+
+ , use your personal information which you provide to us when using
+ our service, including but not limited to our website and mobile
+ applications (apps).
+
+
+ What information we collect about you?
+
+
+ We collect personal information from you when you order goods or
+ services from us or use our website. We also collect information
+ when you complete any customer survey. Website usage information
+ may also be collected using cookies.
+
+
+ Cookies and Google Analytics
+
+
+ Cookies are small text files that are placed on your computer by
+ websites that you visit. They are widely used in order to make
+ websites work, or work more efficiently, as well as to provide
+ information to the owners of the site.
+
+
+ This website uses Google Analytics, a web analytics service
+ provided by Google, Inc. ("Google"). Google Analytics uses
+ "cookies", which are text files saved on your computer, to help
+ the website analyze how you use the site. The information
+ generated by the cookie about your use of the website will be
+ transmitted to and stored by Google on servers in the United
+ States. If this website anonymizes IP addresses, your IP address
+ will be truncated by Google within a EU member state or other EEA
+ state before being transmitted to the US. Only in exceptional
+ situations will your full IP address be transmitted to Google
+ servers in the United States and truncated there. Google will use
+ this information for the purpose of evaluating your use of the
+ website, compiling reports on website activity for website
+ operators and providing other services relating to website
+ activity and internet usage. Google will not associate your IP
+ address with any other data held by Google. You may refuse the use
+ of cookies by selecting the appropriate settings on your browser,
+ however please note that if you do this you may not be able to use
+ the full functionality of this website. By using this website, you
+ consent to the processing of data about you by Google in the
+ manner and for the purposes set out above. You can also prevent
+ Google from collecting information (including your IP address) via
+ cookies and processing this information by downloading this
+ browser plugin and installing it:{" "}
+
+
+ {"https://tools.google.com/dlpage/gaoptout"}
+
+
+
+ Most web browsers allow some control of most cookies through the
+ browser settings. To find out more about cookies, including how
+ to see what cookies have been set and how to manage and delete
+ them, visit
+
+
+ {"www.allaboutcookies.org"}
+
+
+
+
+
+ How will we use the information we collect from you?
+
+
+ Information that we collect from you is used to process your order
+ and to manage your account. We may also use your information to
+ email you about other products or services that we think may be of
+ interest to you.
+
+
+ In processing your order we may send your information to credit
+ reference and fraud prevention agencies.
+
+
+ From time to time we may send your information to third parties
+ which we consider may have goods or services which are of interest
+ to you. If you do not wish to be contacted by third parties please
+ email us at
+
+ {" info@enatega.com"}
+
+
+
+ Access to your information
+
+
+ You have a right to request a copy of the information we hold on
+ you at any time. Please email us if you would like to receive a
+ copy of this information –{" "}
+
+ {" info@enatega.com"}
+
+ . There will be a small charge for processing this request.
+
+
+ Other Websites
+
+
+ Our website may have links to other websites. This privacy policy
+ only applies to this website. You should therefore read the
+ privacy policies of the other websites when you are using those
+ sites.
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(PrivacyPolicy);
diff --git a/enatega-multivendor-web/src/screens/Privacy/styles.js b/enatega-multivendor-web/src/screens/Privacy/styles.js
new file mode 100644
index 0000000..00ebd43
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Privacy/styles.js
@@ -0,0 +1,43 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyles = makeStyles((theme) => ({
+ mainContainer: {
+ display: "flex",
+ paddingTop: "70px",
+ minWidth: "100%",
+ backgroundColor: "transparent",
+ color: theme.palette.secondary.light,
+ },
+ imageContainer: {
+ width: "100%",
+ height: "400px",
+ backgroundImage:
+ "url(https://images.deliveryhero.io/image/foodpanda/cms-hero.jpg?width=2000&height=500|https://images.deliveryhero.io/image/foodpanda/cms-hero.jpg?width=4000&height=1000)",
+ backgroundSize: "cover",
+ backgroundPositionX: "50%",
+ backgroundPositionY: "center",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ title: {
+ fontWeight: theme.typography.fontWeightBold,
+ textTransform: "uppercase",
+ },
+ linkDecoration: {
+ textDecoration: "none",
+ alignSelf: "center",
+ },
+ link: {
+ fontSize: 16,
+ },
+ boldText: {
+ fontWeight: 600,
+ },
+ MV3: {
+ margin: theme.spacing(3, 0),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Profile/Profile.js b/enatega-multivendor-web/src/screens/Profile/Profile.js
new file mode 100644
index 0000000..9dfbc24
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Profile/Profile.js
@@ -0,0 +1,53 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, Grid, Typography } from "@mui/material";
+import React, { useEffect, useContext } from "react";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import {
+ AddressCard,
+ PasswordCard,
+ ProfileCard,
+} from "../../components/Profile";
+import useStyles from "./styles";
+import Analytics from "../../utils/analytics";
+import FavouritesBg from "../../assets/images/fav-bg.png";
+import ProfileImage from "../../assets/images/profile.png";
+import UserContext from "../../context/User";
+
+function Profile() {
+ const { profile } = useContext(UserContext);
+ const classes = useStyles();
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PROFILE);
+ }, []);
+ return (
+
+
+
+
+ {profile && profile?.name[0].toUpperCase()}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Profile;
diff --git a/enatega-multivendor-web/src/screens/Profile/styles.js b/enatega-multivendor-web/src/screens/Profile/styles.js
new file mode 100644
index 0000000..af144c0
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Profile/styles.js
@@ -0,0 +1,66 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ "& .MuiTextField-root": {
+ marginBottom: theme.spacing(3),
+ },
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "& fieldset": {
+ borderColor: theme.palette.grey[200],
+ },
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ "& .MuiButton-contained": {
+ borderRadius: "0px",
+ height: "50px",
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ backgroundColor: theme.palette.primary.dark,
+ },
+ marginHeader: {
+ marginTop: "140px",
+ },
+ topContainer: {
+ marginTop: "210px",
+ width: "100%",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ position: "relative",
+ },
+ bg: {
+ position: "absolute",
+ left: "-100px",
+ [theme.breakpoints.down("md")]: {
+ left: "-50px",
+ },
+ maxWidth: "100%",
+ },
+ footerContainer: {
+ background: theme.palette.primary.dark,
+ width: "100%",
+ marginTop: 100,
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Registration/Registration.js b/enatega-multivendor-web/src/screens/Registration/Registration.js
new file mode 100644
index 0000000..f5ca237
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Registration/Registration.js
@@ -0,0 +1,320 @@
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import IconButton from "@mui/material/IconButton";
+import InputAdornment from "@mui/material/InputAdornment";
+import { useTheme } from "@mui/material/styles";
+import TextField from "@mui/material/TextField";
+import Typography from "@mui/material/Typography";
+import { Visibility, VisibilityOff } from "@mui/icons-material";
+import React, { useCallback, useRef, useState } from "react";
+import { useLocation, useNavigate } from "react-router-dom";
+import FlashMessage from "../../components/FlashMessage";
+import { isValidEmailAddress } from "../../utils/customFunction";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import RegistrationIcon from "../../assets/images/emailLock.png";
+import { Avatar } from "@mui/material";
+import PhoneInput from "react-phone-input-2";
+import "react-phone-input-2/lib/style.css";
+import { gql, useMutation } from "@apollo/client";
+import { phoneExist } from "../../apollo/server";
+import { useEffect } from "react";
+import { useTranslation } from 'react-i18next';
+
+const PHONE = gql`
+ ${phoneExist}
+`;
+
+function Registration() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const [error, setError] = useState("");
+ const navigate = useNavigate();
+ const formRef = useRef(null);
+ const { state } = useLocation();
+ const [loading, setLoading] = useState(false);
+ const [showPassword, setShowPassword] = useState(false);
+ const [passError, setPassError] = useState("");
+ const [emailError, setEmailError] = useState("");
+ const [fNameError, setFNameError] = useState("");
+ const [lNameError, setLNameError] = useState("");
+ const [phone, setPhone] = useState("");
+
+ const [phoneError, setPhoneError] = useState(null);
+ const [PhoneEixst] = useMutation(PHONE, {
+ onCompleted,
+ onError,
+ });
+ const handleBackNavigation = () => {
+ // Use history.push to navigate to the desired route
+ navigate("/new-login");
+ };
+
+ useEffect(() => {
+ // Add an event listener for the popstate event
+ window.addEventListener("popstate", handleBackNavigation);
+
+ // Remove the event listener when the component unmounts
+ return () => {
+ window.removeEventListener("popstate", handleBackNavigation);
+ };
+ });
+ function onCompleted({ phoneExist }) {
+ if (phoneExist?._id !== null) {
+ setError("Phone number already assocaited with some other user");
+ setLoading(false);
+ } else {
+ navigate("/verify-email", {
+ replace: true,
+ state: {
+ email: formRef.current["email"].value.toLowerCase().trim(),
+ password: formRef.current["userPass"].value,
+ name:
+ formRef.current["firstName"].value +
+ " " +
+ formRef.current["lastName"].value,
+ phone: `+${phone}`,
+ picture: "",
+ },
+ });
+ }
+ }
+ function onError({ error }) {
+ setError("Something went wrong");
+ }
+
+ const handleClickShowPassword = () => {
+ setShowPassword(!showPassword);
+ };
+ const handleMouseDownPassword = (event) => {
+ event.preventDefault();
+ };
+ const clearErrors = () => {
+ setEmailError("");
+ setFNameError("");
+ setFNameError("");
+ setPassError("");
+ setError("");
+ };
+
+ const handleAction = () => {
+ clearErrors();
+ let validate = true;
+ const emailValue = formRef.current["email"].value;
+ const firstNameValue = formRef.current["firstName"].value;
+ const lastNameValue = formRef.current["lastName"].value;
+ const userPass = formRef.current["userPass"].value;
+ const passRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).+$/;
+
+ if (!isValidEmailAddress(emailValue)) {
+ setEmailError(t('emailErr2'));
+ validate = false;
+ }
+ if (!firstNameValue.trim()) {
+ setFNameError(t('firstnameErr2'));
+ validate = false;
+ }
+ if (!lastNameValue.trim()) {
+ setLNameError(t('lastnameErr2'));
+ validate = false;
+ }
+ if (!userPass) {
+ setPassError(t('passwordErr2'));
+ validate = false;
+ }
+ if (!phone) {
+ setPhoneError(t('mobileErr2'));
+ validate = false;
+ }
+ if (!passRegex.test(userPass)) {
+ setPassError(
+ t('passwordErr1')
+ );
+ validate = false;
+ }
+ if (validate) {
+ setLoading(true);
+ PhoneEixst({ variables: { phone: `+${phone}` } });
+ } else {
+ setError(t('generalErr'));
+ }
+ };
+
+
+ const toggleSnackbar = useCallback(() => {
+ setError("");
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+ {t('letsGetStarted')}
+
+
+
+ {t('createAccount')}
+
+
+
+
+ );
+}
+
+export default Registration;
diff --git a/enatega-multivendor-web/src/screens/Registration/styles.js b/enatega-multivendor-web/src/screens/Registration/styles.js
new file mode 100644
index 0000000..b04e318
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Registration/styles.js
@@ -0,0 +1,40 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.text.disabled,
+ },
+ rowField: {
+ display: "flex",
+ flexDirection: "row",
+ justifyContent: "space-between",
+ margin: theme.spacing(1, 0),
+ },
+ btnBase: {
+ height: "50px",
+ backgroundColor: theme.palette.common.black,
+ opacity: 1,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ backgroundColor: theme.palette.common.black,
+ opacity: 0.8,
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ codePicker: {
+ width: "100%",
+ marginRight: theme.spacing(2),
+ },
+ form: {
+ display: "flex",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/ResetPassword/ResetPassword.js b/enatega-multivendor-web/src/screens/ResetPassword/ResetPassword.js
new file mode 100644
index 0000000..103009c
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/ResetPassword/ResetPassword.js
@@ -0,0 +1,200 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { useMutation } from "@apollo/client";
+import {
+ Avatar,
+ Box,
+ Button,
+ CircularProgress,
+ TextField,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import gql from "graphql-tag";
+import React, { useCallback, useEffect, useRef, useState } from "react";
+import { useLocation, useNavigate, Navigate } from "react-router-dom";
+import { resetPassword } from "../../apollo/server";
+import FlashMessage from "../../components/FlashMessage";
+import Analytics from "../../utils/analytics";
+import useStyles from "./styles";
+import VerifyEmailIcon from "../../assets/images/emailLock.png";
+import { LoginWrapper } from "../Wrapper";
+
+const RESET_PASSWORD = gql`
+ ${resetPassword}
+`;
+
+function ResetPassword() {
+ const formRef = useRef();
+ const theme = useTheme();
+ const classes = useStyles();
+ const { state } = useLocation();
+ const navigate = useNavigate();
+ const [error, setError] = useState("");
+ const [loading, setLoading] = useState(false);
+ const [passError, setPassError] = useState("");
+
+ const [mutate] = useMutation(RESET_PASSWORD, { onCompleted, onError });
+
+ function onCompleted() {
+ try {
+ FlashMessage({
+ message: "Password reset done",
+ });
+ setError("Password reset done successfully");
+ navigate("/login", { replace: true });
+ } catch (e) {
+ setError("Something went wrong");
+ console.log(e);
+ } finally {
+ setLoading(false);
+ }
+ }
+
+ function onError(e) {
+ setLoading(false);
+ setError(e.message);
+ }
+ const clearErrors = () => {
+ setPassError("");
+ setError("");
+ };
+ const handleAction = () => {
+ const passRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/;
+ clearErrors();
+ let validate = true;
+ const newPass = formRef.current["newPassword"].value;
+ const retypePass = formRef.current["retypePassword"].value;
+ if (!passRegex.test(newPass) || !newPass) {
+ setPassError("Invalid Password");
+ validate = false;
+ return;
+ }
+ if (!retypePass) {
+ setPassError("confirm password required");
+ validate = false;
+ return;
+ }
+ if (validate) {
+ if (newPass === retypePass) {
+ setLoading(true);
+ mutate({
+ variables: {
+ password: newPass,
+ email: state?.email.toLowerCase().trim(),
+ },
+ });
+ } else {
+ setPassError("Password must match with confirm password");
+ }
+ }
+ };
+
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_FORGOT_PASSWORD);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setError("");
+ }, []);
+
+ return state.email ? (
+
+
+
+
+
+
+
+
+
+ ) : (
+
+ );
+}
+
+export default ResetPassword;
diff --git a/enatega-multivendor-web/src/screens/ResetPassword/styles.js b/enatega-multivendor-web/src/screens/ResetPassword/styles.js
new file mode 100644
index 0000000..84d6b49
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/ResetPassword/styles.js
@@ -0,0 +1,50 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.grey[500],
+ },
+ rowField: {
+ display: "flex",
+ flexDirection: "row",
+ justifyContent: "space-between",
+ margin: theme.spacing(2, 0),
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.main,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ customBtn: {
+ background: theme.palette.common.main,
+ width: "70%",
+ transition: "opacity 0.3s",
+ opacity: 1,
+ "&:hover": {
+ backgroundColor: theme.palette.common.main,
+ opacity: 0.8,
+ },
+ },
+ form: {
+ display: "flex",
+ },
+ codePicker: {
+ width: 80,
+ marginRight: theme.spacing(2),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/RestaurantDetail/RestaurantDetail.js b/enatega-multivendor-web/src/screens/RestaurantDetail/RestaurantDetail.js
new file mode 100644
index 0000000..4090b44
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/RestaurantDetail/RestaurantDetail.js
@@ -0,0 +1,403 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ Button,
+ CircularProgress,
+ Container,
+ Divider,
+ Grid,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import { useLocation, useParams } from "react-router-dom";
+import { Link } from "react-scroll";
+import Scrollspy from "react-scrollspy";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import Analytics from "../../utils/analytics";
+import {
+ RestaurantClose,
+ RestaurantInfo,
+ VariationModal,
+} from "../../components/Modals";
+import {
+ ItemCard,
+ MRestaurantCart,
+ RestaurantCart,
+ RestaurantHeader,
+} from "../../components/RestaurantDetailComponent";
+import UserContext from "../../context/User";
+import { useRestaurant } from "../../hooks";
+import { DAYS } from "../../utils/constantValues";
+import useStyles from "./styles";
+import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
+
+function RestaurantDetail() {
+ const theme = useTheme();
+ const isTablet = useMediaQuery(theme.breakpoints.down("lg"));
+ const classes = useStyles();
+ const { state } = useLocation();
+ const query = useParams();
+ const [isClose, setIsClose] = useState(false);
+ const [mainError, setMainError] = useState({});
+ const [addonData, setAddonData] = useState(null);
+ const [reviewModal, setReviewModal] = useState(false);
+ const [variationModal, setVariationModal] = useState(false);
+ const { data, loading, error } = useRestaurant(state?.id, query.slug);
+ const allDeals = data?.restaurant?.categories.filter(
+ (cat) => cat.foods.length
+ );
+ const {
+ restaurant: restaurantCart,
+ setCartRestaurant,
+ checkItemCart,
+ addCartItem,
+ addQuantity,
+ cart,
+ clearCart,
+ isLoggedIn,
+ } = useContext(UserContext);
+ const deals = allDeals?.map((c, index) => ({
+ ...c,
+ index,
+ }));
+ const headerData = {
+ name: data?.restaurant?.name ?? "...",
+ averageReview: data?.restaurant?.reviewData.ratings ?? "...",
+ averageTotal: data?.restaurant?.reviewData.total ?? "...",
+ isAvailable: data?.restaurant?.isAvailable ?? true,
+ openingTimes: data?.restaurant?.openingTimes ?? [],
+ deals: deals,
+ deliveryTime: data?.restaurant?.deliveryTime,
+ };
+ const restaurantInfo = {
+ _id: data?.restaurant._id ?? "",
+ name: data?.restaurant?.name ?? "...",
+ image: data?.restaurant?.image ?? "",
+ deals: deals,
+ reviewData: data?.restaurant?.reviewData ?? {},
+ address: data?.restaurant?.address ?? "",
+ deliveryCharges: data?.restaurant?.deliveryCharges ?? "",
+ deliveryTime: data?.restaurant?.deliveryTime ?? "...",
+ isAvailable: data?.restaurant?.isAvailable ?? true,
+ openingTimes: data?.restaurant?.openingTimes ?? [],
+ };
+
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, []);
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RESTAURANTS_DETAIL);
+ }, []);
+ useEffect(() => {
+ if (data?.restaurant && (!isOpen || !data?.restaurant?.isAvailable)) {
+ toggleCloseModal();
+ }
+ }, [data?.restaurant]);
+
+ const toggleVariationModal = useCallback(() => {
+ setVariationModal((prev) => !prev);
+ }, []);
+
+ const toggleReviewModal = useCallback(() => {
+ setReviewModal((prev) => !prev);
+ }, []);
+
+ const toggleCloseModal = useCallback(() => {
+ setIsClose((prev) => !prev);
+ }, []);
+
+ const isOpen = useCallback(() => {
+ if (data) {
+ if (data.restaurant.openingTimes.length < 1) return false;
+ const date = new Date();
+ const day = date.getDay();
+ const hours = date.getHours();
+ const minutes = date.getMinutes();
+ const todaysTimings = data.restaurant.openingTimes.find(
+ (o) => o.day === DAYS[day]
+ );
+ if (todaysTimings === undefined) return false;
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ );
+
+ return times.length > 0;
+ } else return false;
+ }, [data]);
+
+ const addFoodToCart = async (food) => {
+ if (!restaurantInfo.isAvailable || !isOpen()) {
+ toggleCloseModal();
+ return;
+ }
+ if (!restaurantCart || food.restaurant === restaurantCart) {
+ await addToCart(food, food.restaurant !== restaurantCart);
+ }
+ };
+
+ const addToCart = async (food, clearFlag) => {
+ if (
+ food.variations.length === 1 &&
+ food.variations[0].addons.length === 0
+ ) {
+ await setCartRestaurant(food.restaurant);
+ const result = checkItemCart(food._id);
+ if (result.exist) await addQuantity(result.key);
+ else
+ await addCartItem(food._id, food.variations[0]._id, 1, [], clearFlag);
+ } else {
+ if (clearFlag) await clearCart();
+ setAddonData({
+ food,
+ addons: data?.restaurant.addons,
+ options: data?.restaurant.options,
+ restaurant: data?.restaurant._id,
+ image: data?.restaurant?.image,
+ });
+ toggleVariationModal();
+ }
+ await Analytics.track(Analytics.events.ADD_TO_CART, {
+ title: food.title,
+ restaurantName: food.restaurantName,
+ variations: food.variations,
+ });
+ };
+
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ if (loading || error) {
+ return (
+
+
+ {isLoggedIn ? : }
+
+ {/*
*/}
+
+
+
+
+
+
+
+
+
+
+ {error ? (
+ Unable to fetch data {error.message}
+ ) : (
+
+ )}
+
+
+
+
+
+
+
+
+
+ );
+ }
+
+ return (
+ <>
+
+
+
+ {isLoggedIn ? : }
+
+ {/*
*/}
+
+ {!isTablet && }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ item._id)}
+ currentClassName={classes.active}
+ >
+ {deals.map((item, index) => (
+
+
+
+ {item.title}
+
+
+
+ ))}
+
+
+
+
+
+ {deals.map((item, index) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+ {isTablet && cart.length && (
+
+ )}
+
+ >
+ );
+}
+
+export default RestaurantDetail;
diff --git a/enatega-multivendor-web/src/screens/RestaurantDetail/styles.js b/enatega-multivendor-web/src/screens/RestaurantDetail/styles.js
new file mode 100644
index 0000000..d73eb48
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/RestaurantDetail/styles.js
@@ -0,0 +1,108 @@
+import makeStyles from "@mui/styles/makeStyles";
+import Bg from "../../assets/images/bg-invert.png";
+const useStyles = makeStyles((theme) => ({
+ marginHeader: {
+ marginTop: "200px",
+ },
+ active: {
+ color: theme.palette.primary.main,
+ borderBottom: `6px solid ${theme.palette.primary.main}`,
+ marginBottom: "-4px",
+ },
+ anchorStyle: {
+ textDecoration: "none",
+ textTransform: "uppercase",
+ whiteSpace: "nowrap",
+ cursor: "pointer",
+ },
+ tabTextStyle: {
+ ...theme.typography.subtitle2,
+ color: theme.palette.common.black,
+ fontWeight: 600,
+ [theme.breakpoints.down("md")]: {
+ fontSize: "0.6rem",
+ },
+ },
+ tabListStyle: {
+ padding: "16px 16px 16px 16px",
+ [theme.breakpoints.down("md")]: {
+ padding: "8px",
+ },
+ },
+ imageContainer: {
+ width: "100%",
+ height: "324px",
+ backgroundImage: `url('https://images.deliveryhero.io/image/fd-pk/LH/v1bq-hero.jpg?width=2000&height=500')`,
+ backgroundSize: "cover",
+ backgroundPositionX: "center",
+ backgroundPositionY: "center",
+ position: "relative",
+ borderBottomLeftRadius: 40,
+ boxShadow:
+ "inset 0 0 0 1000px rgba(0, 0, 0, 0), inset 0 0 0 1000px theme.palette.common.lightBlack",
+ borderBottomRightRadius: 40,
+ },
+ tabContainer: {
+ width: "100%",
+ background: theme.palette.primary.light,
+ height: "71px",
+ display: "flex",
+ alignItems: "center",
+ position: "sticky",
+ top: "140px",
+ zIndex: 1200,
+ borderRadius: 10,
+ },
+ scrollpyStyles: {
+ display: "flex",
+ alignItems: "center",
+ listStyleType: "none",
+ justifyContent: "space-evenly",
+ width: "100%",
+ paddingLeft: 0,
+ borderBottom: `2px solid ${theme.palette.primary.main}`,
+ overflow: "visible",
+ },
+
+ categoriesStyle: {
+ ...theme.typography.subtitle2,
+ color: theme.palette.text.disabled,
+ },
+ spinnerContainer: {
+ flexDirection: "row",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ padding: theme.spacing(20, 0),
+ },
+ footerContainer: {
+ background: theme.palette.success.dark,
+ width: "100%",
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+ restaurantDetail: {
+ position: "absolute",
+ left: "50%",
+ top: "50%",
+ transform: "translate(-50%,-50%)",
+ backgroundColor: theme.palette.common.darkBlack,
+ minWidth: "250px",
+ },
+ bg: {
+ backgroundImage: `url(${Bg})`,
+ backgroundPositionX: "left",
+ backgroundPositionY: "bottom",
+ backgroundSize: "400px",
+ backgroundRepeat: "no-repeat",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/RestaurantDetail/temp.js b/enatega-multivendor-web/src/screens/RestaurantDetail/temp.js
new file mode 100644
index 0000000..a335cc2
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/RestaurantDetail/temp.js
@@ -0,0 +1,361 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import {
+ Box,
+ CircularProgress,
+ Container,
+ Divider,
+ Grid,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import { useLocation, useParams } from "react-router-dom";
+import { Link } from "react-scroll";
+import Scrollspy from "react-scrollspy";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import Analytics from "../../utils/analytics";
+import {
+ RestaurantClose,
+ RestaurantInfo,
+ VariationModal,
+} from "../../components/Modals";
+import { Subheader } from "../../components/RestaurantComponent";
+import {
+ ItemCard,
+ MRestaurantCart,
+ RestaurantCart,
+ RestaurantHeader,
+} from "../../components/RestaurantDetailComponent";
+import UserContext from "../../context/User";
+import { useRestaurant } from "../../hooks";
+import { DAYS } from "../../utils/constantValues";
+import useStyles from "./styles";
+
+function RestaurantDetail() {
+ const theme = useTheme();
+ const isTablet = useMediaQuery(theme.breakpoints.down("lg"));
+ const classes = useStyles();
+ const { state } = useLocation();
+ const query = useParams();
+ const [isClose, setIsClose] = useState(false);
+ const [mainError, setMainError] = useState({});
+ const [addonData, setAddonData] = useState(null);
+ const [reviewModal, setReviewModal] = useState(false);
+ const [variationModal, setVariationModal] = useState(false);
+ const { data, loading, error } = useRestaurant(state?.id, query.slug);
+ const allDeals = data?.restaurant?.categories.filter(
+ (cat) => cat.foods.length
+ );
+ const {
+ restaurant: restaurantCart,
+ setCartRestaurant,
+ checkItemCart,
+ addCartItem,
+ addQuantity,
+ cart,
+ clearCart,
+ isLoggedIn,
+ } = useContext(UserContext);
+ const deals = allDeals?.map((c, index) => ({
+ ...c,
+ index,
+ }));
+ const headerData = {
+ name: data?.restaurant?.name ?? "...",
+ averageReview: data?.restaurant?.reviewData.ratings ?? "...",
+ averageTotal: data?.restaurant?.reviewData.total ?? "...",
+ isAvailable: data?.restaurant?.isAvailable ?? true,
+ openingTimes: data?.restaurant?.openingTimes ?? [],
+ deals: deals,
+ };
+ const restaurantInfo = {
+ _id: data?.restaurant._id ?? "",
+ name: data?.restaurant?.name ?? "...",
+ image: data?.restaurant?.image ?? "",
+ deals: deals,
+ reviewData: data?.restaurant?.reviewData ?? {},
+ address: data?.restaurant?.address ?? "",
+ deliveryCharges: data?.restaurant?.deliveryCharges ?? "",
+ deliveryTime: data?.restaurant?.deliveryTime ?? "...",
+ isAvailable: data?.restaurant?.isAvailable ?? true,
+ openingTimes: data?.restaurant?.openingTimes ?? [],
+ };
+
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, []);
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RESTAURANTS_DETAIL);
+ }, []);
+ useEffect(() => {
+ if (data?.restaurant && (!isOpen || !data?.restaurant?.isAvailable)) {
+ toggleCloseModal();
+ }
+ }, [data?.restaurant]);
+
+ const toggleVariationModal = useCallback(() => {
+ setVariationModal((prev) => !prev);
+ }, []);
+
+ const toggleReviewModal = useCallback(() => {
+ setReviewModal((prev) => !prev);
+ }, []);
+
+ const toggleCloseModal = useCallback(() => {
+ setIsClose((prev) => !prev);
+ }, []);
+
+ const isOpen = useCallback(() => {
+ if (data) {
+ if (data.restaurant.openingTimes.length < 1) return false;
+ const date = new Date();
+ const day = date.getDay();
+ const hours = date.getHours();
+ const minutes = date.getMinutes();
+ const todaysTimings = data.restaurant.openingTimes.find(
+ (o) => o.day === DAYS[day]
+ );
+ if (todaysTimings === undefined) return false;
+ const times = todaysTimings.times.filter(
+ (t) =>
+ hours >= Number(t.startTime[0]) &&
+ minutes >= Number(t.startTime[1]) &&
+ hours <= Number(t.endTime[0]) &&
+ minutes <= Number(t.endTime[1])
+ );
+
+ return times.length > 0;
+ } else return false;
+ }, [data]);
+
+ const addFoodToCart = async (food) => {
+ if (!restaurantInfo.isAvailable || !isOpen()) {
+ toggleCloseModal();
+ return;
+ }
+ if (!restaurantCart || food.restaurant === restaurantCart) {
+ await addToCart(food, food.restaurant !== restaurantCart);
+ }
+ };
+
+ const addToCart = async (food, clearFlag) => {
+ if (
+ food.variations.length === 1 &&
+ food.variations[0].addons.length === 0
+ ) {
+ await setCartRestaurant(food.restaurant);
+ const result = checkItemCart(food._id);
+ if (result.exist) await addQuantity(result.key);
+ else
+ await addCartItem(food._id, food.variations[0]._id, 1, [], clearFlag);
+ } else {
+ if (clearFlag) await clearCart();
+ setAddonData({
+ food,
+ addons: data?.restaurant.addons,
+ options: data?.restaurant.options,
+ restaurant: data?.restaurant._id,
+ });
+ toggleVariationModal();
+ }
+ await Analytics.track(Analytics.events.ADD_TO_CART, {
+ title: food.title,
+ restaurantName: food.restaurantName,
+ variations: food.variations,
+ });
+ };
+
+ const showMessage = useCallback((messageObj) => {
+ setMainError(messageObj);
+ }, []);
+
+ const toggleSnackbar = useCallback(() => {
+ setMainError({});
+ }, []);
+
+ if (loading || error) {
+ return (
+
+
+ {isLoggedIn ? : }
+
+
+
+
+
+
+
+
+
+
+
+
+ {error ? (
+ Unable to fetch data {error.message}
+ ) : (
+
+ )}
+
+
+
+
+
+
+
+ );
+ }
+
+ return (
+ <>
+
+
+
+ {isLoggedIn ? : }
+
+
+
+ {!isTablet && }
+
+
+
+
+
+
+
+
+
+
+
+ item._id)}
+ currentClassName={classes.active}
+ >
+ {deals.map((item, index) => (
+
+
+
+ {item.title}
+
+
+
+ ))}
+
+
+
+
+
+ {deals.map((item, index) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+ {isTablet && cart.length && (
+
+ )}
+
+ >
+ );
+}
+
+export default RestaurantDetail;
diff --git a/enatega-multivendor-web/src/screens/Restaurants/Restaurants.js b/enatega-multivendor-web/src/screens/Restaurants/Restaurants.js
new file mode 100644
index 0000000..0b921a1
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Restaurants/Restaurants.js
@@ -0,0 +1,231 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { gql, useQuery } from "@apollo/client";
+import {
+ Box,
+ CircularProgress,
+ Grid,
+ Typography,
+ useMediaQuery,
+ useTheme,
+} from "@mui/material";
+
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import { useNavigate } from "react-router";
+import { restaurantList } from "../../apollo/server";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import { ClearCart } from "../../components/Modals";
+
+import {
+ RestaurantGrid,
+ RestaurantRow,
+ Subheader,
+} from "../../components/RestaurantComponent";
+
+import SearchContainer from "../../components/HomeScreen/SearchContainer/SearchContainer";
+import { useLocationContext } from "../../context/Location";
+import UserContext from "../../context/User";
+import Analytics from "../../utils/analytics";
+import useStyles from "./styles";
+import DetailedOrderCard from "../../components/Orders/DetailedOrderCard/DetailedOrderCard";
+import { ACTIVE_STATUS } from "../../utils/constantValues";
+import TawkMessengerReact from "@tawk.to/tawk-messenger-react";
+
+const RESTAURANTS = gql`
+ ${restaurantList}
+`;
+
+function Restaurants() {
+ const navigate = useNavigate();
+ const { location } = useLocationContext();
+ const [message, setMessage] = useState({});
+ const [search, setSearch] = useState("");
+ const { isLoggedIn } = useContext(UserContext);
+ const [clearModal, setClearModal] = useState(false);
+ const [navigateData, setNavigateData] = useState({});
+ const classes = useStyles();
+ const {
+ orders,
+ clearCart,
+ restaurant: cartRestaurant,
+ } = useContext(UserContext);
+ const theme = useTheme();
+ const mobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const activeOrders = orders.filter((o) =>
+ ACTIVE_STATUS.includes(o.orderStatus)
+ );
+ const navigateClearCart = useCallback(async () => {
+ await clearCart();
+ navigate(`/restaurant/${navigateData.slug}`, { state: navigateData });
+ }, [navigateData]);
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RESTAURANTS);
+ }, []);
+ const checkCart = useCallback(
+ (id, name, image, slug) => {
+ if (cartRestaurant && id !== cartRestaurant) {
+ setNavigateData({ id, name, image, slug });
+ toggleClearCart();
+ return false;
+ }
+ return true;
+ },
+ [cartRestaurant]
+ );
+
+ const toggleClearCart = useCallback(() => {
+ setClearModal((prev) => !prev);
+ }, []);
+
+ const showMessage = useCallback((messageObj) => {
+ setMessage(messageObj);
+ }, []);
+ const toggleSnackbar = useCallback(() => {
+ setMessage({});
+ }, []);
+
+ const { data, loading, error } = useQuery(RESTAURANTS, {
+ variables: {
+ longitude: location?.longitude || null,
+ latitude: location?.latitude || null,
+ ip: null,
+ },
+ fetchPolicy: "network-only",
+ skip: !location,
+ });
+
+ if (loading || error) {
+ return (
+
+ {isLoggedIn ? : }
+
+
+
+ {loading ? (
+
+ ) : (
+ Unable to load data
+ )}
+
+
+ );
+ }
+ const { restaurants, sections } = data?.nearByRestaurants ?? {
+ restaurants: [],
+ sections: [],
+ };
+ const restaurantSections = sections.map((sec) => ({
+ ...sec,
+ restaurants: sec.restaurants
+ .map((id) => restaurants.filter((res) => res._id === id))
+ .flat(),
+ }));
+
+ const searchRestaurants = (searchText) => {
+ const data = [];
+ restaurants.forEach((restaurant) => {
+ const regex = new RegExp(
+ searchText.replace(/[\\[\]()+?.*]/g, (c) => "\\" + c),
+ "i"
+ );
+ const result = restaurant.name.search(regex);
+ if (result < 0) {
+ const result = restaurant.categories.some((category) => {
+ const result = category.title.search(regex);
+ if (result < 0) {
+ const result = category.foods.some((food) => {
+ const result = food.title.search(regex);
+ return result > -1;
+ });
+ return result;
+ }
+ return true;
+ });
+ if (!result) return;
+ }
+ data.push(restaurant);
+ });
+ return data;
+ };
+ return (
+
+
+
+ {isLoggedIn ? : }
+
+
+
+
+
+
+ {activeOrders.length > 0 ? (
+
+
+ {activeOrders.map((item) => (
+
+ {mobile ? null : }
+
+ ))}
+
+
+ ) : null}
+ {restaurantSections.length < 1 ? null : (
+
+
+
+
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Restaurants;
diff --git a/enatega-multivendor-web/src/screens/Restaurants/styles.js b/enatega-multivendor-web/src/screens/Restaurants/styles.js
new file mode 100644
index 0000000..0b57b33
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Restaurants/styles.js
@@ -0,0 +1,83 @@
+import makeStyles from "@mui/styles/makeStyles";
+import bg from "../../assets/images/img-map-background.jpeg";
+
+const useStyles = makeStyles((theme) => ({
+ marginHeader: {
+ marginTop: "200px",
+ },
+ spinnerContainer: {
+ flexDirection: "row",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ height: "100vh",
+ marginTop: "100px",
+ },
+ mapGrid: {
+ height: "200px",
+ width: "100%",
+ },
+ mapImage: {
+ backgroundImage: `url(${bg})`,
+ backgroundPosition: "center",
+ backgroundSize: "cover",
+ backgroundRepeat: "no-repeat",
+ marginLeft: "8%",
+ marginTop: "20px",
+ height: "150px",
+ width: "80%",
+ borderRadius: "10px",
+ },
+ mapText: {
+ marginLeft: "20px",
+ marginTop: "20px",
+ },
+ mapButton: {
+ background: theme.palette.primary.main,
+ color: theme.palette.common.white,
+ fontWeight: "bold",
+ marginLeft: "20px",
+ boxShadow: `0 0 5px ${theme.palette.grey[300]}`,
+ "&:hover": {
+ background: theme.palette.success.main,
+ },
+ },
+ searchWrapper: {
+ width: "100%",
+ marginTop: "-26px",
+ },
+ topRestContainer: {
+ backgroundColor: theme.palette.button.lightest,
+ borderRadius: "0px",
+ width: "100%",
+ paddingBottom: 10,
+ },
+ topRestWrapper: {
+ background: theme.palette.button.dark,
+ width: "90%",
+ minHeight: "60vh",
+ borderTopRightRadius: "5rem",
+ borderBottomRightRadius: "5rem",
+ display: "flex",
+ alignItems: "center",
+ position: "relative",
+ [theme.breakpoints.down("md")]: {
+ width: "100%",
+ },
+ },
+ footerContainer: {
+ background: theme.palette.success.dark,
+ width: "100%",
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Restaurants/temp.js b/enatega-multivendor-web/src/screens/Restaurants/temp.js
new file mode 100644
index 0000000..78d628e
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Restaurants/temp.js
@@ -0,0 +1,206 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { gql, useQuery } from "@apollo/client";
+import { Box, CircularProgress, Grid, Typography, Button } from "@mui/material";
+import React, { useCallback, useContext, useEffect, useState } from "react";
+import { useNavigate } from "react-router";
+import { restaurantList } from "../../apollo/server";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import { ClearCart } from "../../components/Modals";
+import {
+ RestaurantGrid,
+ RestaurantRow,
+ SearchRestaurant,
+ Subheader,
+} from "../../components/RestaurantComponent";
+import { useLocationContext } from "../../context/Location";
+import ActiveOrder from "../../components/Orders/ActiveOrder/Card/ActiveOrder";
+import UserContext from "../../context/User";
+import Analytics from "../../utils/analytics";
+import useStyles from "./styles";
+import DeliveryTabs from "../../components/Tabs/Tabs";
+
+const RESTAURANTS = gql`
+ ${restaurantList}
+`;
+
+function Restaurants() {
+ const navigate = useNavigate();
+ const { location } = useLocationContext();
+ const [message, setMessage] = useState({});
+ const [search, setSearch] = useState("");
+ const { isLoggedIn } = useContext(UserContext);
+ const [clearModal, setClearModal] = useState(false);
+ const [navigateData, setNavigateData] = useState({});
+ const classes = useStyles();
+ const { clearCart, restaurant: cartRestaurant } = useContext(UserContext);
+ const [active, setActive] = useState("delivery");
+
+ const navigateClearCart = useCallback(async () => {
+ await clearCart();
+ navigate(`/restaurant/${navigateData.slug}`, { state: navigateData });
+ }, [navigateData]);
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_RESTAURANTS);
+ }, []);
+ const checkCart = useCallback(
+ (id, name, image, slug) => {
+ if (cartRestaurant && id !== cartRestaurant) {
+ setNavigateData({ id, name, image, slug });
+ toggleClearCart();
+ return false;
+ }
+ return true;
+ },
+ [cartRestaurant]
+ );
+
+ const toggleClearCart = useCallback(() => {
+ setClearModal((prev) => !prev);
+ }, []);
+
+ const showMessage = useCallback((messageObj) => {
+ setMessage(messageObj);
+ }, []);
+ const toggleSnackbar = useCallback(() => {
+ setMessage({});
+ }, []);
+
+ const { data, loading, error } = useQuery(RESTAURANTS, {
+ variables: {
+ longitude: location?.longitude || null,
+ latitude: location?.latitude || null,
+ ip: null,
+ },
+ fetchPolicy: "network-only",
+ skip: !location,
+ });
+
+ if (loading || error) {
+ return (
+
+ {isLoggedIn ? : }
+
+
+ {}} />
+
+
+ {loading ? (
+
+ ) : (
+ Unable to load data
+ )}
+
+
+ );
+ }
+ const { restaurants, sections } = data?.nearByRestaurants ?? {
+ restaurants: [],
+ sections: [],
+ };
+ const restaurantSections = sections.map((sec) => ({
+ ...sec,
+ restaurants: sec.restaurants
+ .map((id) => restaurants.filter((res) => res._id === id))
+ .flat(),
+ }));
+
+ const searchRestaurants = (searchText) => {
+ const data = [];
+ restaurants.forEach((restaurant) => {
+ const regex = new RegExp(
+ searchText.replace(/[\\[\]()+?.*]/g, (c) => "\\" + c),
+ "i"
+ );
+ const result = restaurant.name.search(regex);
+ if (result < 0) {
+ const result = restaurant.categories.some((category) => {
+ const result = category.title.search(regex);
+ if (result < 0) {
+ const result = category.foods.some((food) => {
+ const result = food.title.search(regex);
+ return result > -1;
+ });
+ return result;
+ }
+ return true;
+ });
+ if (!result) return;
+ }
+ data.push(restaurant);
+ });
+ return data;
+ };
+
+ const activeTabChange = () => {
+ setActive("delivery");
+ };
+ const inactiveTabChange = () => {
+ setActive("pickup");
+ };
+
+ const Map = () => {
+ return (
+
+ Explore restaurants around you
+ navigate("/pickup")}
+ >
+ Show map
+
+
+ );
+ };
+
+ return (
+
+
+ {isLoggedIn ? : }
+
+
+
+
+ {active === "pickup" && }
+
+
+
+
+
+ {search ? null : (
+
+
+
+ )}
+
+
+
+
+
+
+ );
+}
+
+export default Restaurants;
diff --git a/enatega-multivendor-web/src/screens/Settings/Settings.js b/enatega-multivendor-web/src/screens/Settings/Settings.js
new file mode 100644
index 0000000..bc1474c
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Settings/Settings.js
@@ -0,0 +1,43 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, Grid, Typography } from "@mui/material";
+import React, { useEffect, useContext } from "react";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import useStyles from "./styles";
+import Analytics from "../../utils/analytics";
+import FavouritesBg from "../../assets/images/fav-bg.png";
+import ProfileImage from "../../assets/images/profile.png";
+import UserContext from "../../context/User";
+import LanguageCard from "../../components/Language/LanguageCard";
+
+function Settings() {
+ const { profile } = useContext(UserContext);
+ const classes = useStyles();
+ useEffect(async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_PROFILE);
+ }, []);
+ return (
+
+
+
+
+ {profile && profile?.name[0].toUpperCase()}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Settings;
\ No newline at end of file
diff --git a/enatega-multivendor-web/src/screens/Settings/styles.js b/enatega-multivendor-web/src/screens/Settings/styles.js
new file mode 100644
index 0000000..045ffd9
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Settings/styles.js
@@ -0,0 +1,66 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ "& .MuiTextField-root": {
+ marginBottom: theme.spacing(3),
+ },
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "& fieldset": {
+ borderColor: theme.palette.grey[200],
+ },
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ "& .MuiButton-contained": {
+ borderRadius: "0px",
+ height: "50px",
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main,
+ },
+ },
+ backgroundColor: theme.palette.primary.dark,
+ },
+ marginHeader: {
+ marginTop: "140px",
+ },
+ topContainer: {
+ marginTop: "210px",
+ width: "100%",
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ position: "relative",
+ },
+ bg: {
+ position: "absolute",
+ left: "-100px",
+ [theme.breakpoints.down("md")]: {
+ left: "-50px",
+ },
+ maxWidth: "100%",
+ },
+ footerContainer: {
+ background: theme.palette.primary.dark,
+ width: "100%",
+ marginTop: 100,
+ },
+ footerWrapper: {
+ backgroundColor: theme.palette.primary.main,
+ width: "90%",
+ display: "flex",
+ marginLeft: "auto",
+ borderTopLeftRadius: "5rem",
+ borderBottomLeftRadius: "5rem",
+ },
+}));
+
+export default useStyles;
\ No newline at end of file
diff --git a/enatega-multivendor-web/src/screens/Stripe/Stripe.js b/enatega-multivendor-web/src/screens/Stripe/Stripe.js
new file mode 100644
index 0000000..7adcde2
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Stripe/Stripe.js
@@ -0,0 +1,157 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+
+import { useQuery } from "@apollo/client";
+import {
+ Box,
+ Button,
+ CircularProgress,
+ Grid,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import gql from "graphql-tag";
+import React, { useEffect, useState } from "react";
+import { useLocation } from "react-router";
+import { orderStripe } from "../../apollo/server";
+import MastercardIcon from "../../assets/icons/MastercardIcon";
+import VisaIcon from "../../assets/icons/VisaIcon";
+import FlashMessage from "../../components/FlashMessage";
+import Footer from "../../components/Footer/Footer";
+import { Header } from "../../components/Header";
+import { PaymentOrderCard } from "../../components/Orders";
+import ConfigurableValues from "../../config/constants";
+import Analytics from "../../utils/analytics";
+import useStyles from "./styles";
+
+const ORDER_STRIPE = gql`
+ ${orderStripe}
+`;
+
+
+function Stripe() {
+ const { SERVER_URL } = ConfigurableValues();
+ const classes = useStyles();
+ const theme = useTheme();
+ let query = new URLSearchParams(useLocation().search);
+ const id = query.get("id") ?? null;
+ const [loader] = useState(false);
+ const [mainError] = useState({});
+ const { data, loading, error } = useQuery(ORDER_STRIPE, {
+ variables: {
+ id: id,
+ },
+ });
+
+ const redirectToStripeCheckout = () => {
+ window.location.href = `${SERVER_URL}stripe/create-checkout-session?id=${order.orderId}&platform=web`;
+ };
+
+ useEffect(() => {
+ const trackEvent = async () => {
+ await Analytics.track(Analytics.events.NAVIGATE_TO_STRIPE);
+ };
+ trackEvent();
+ }, []);
+
+ if (error) {
+ return (
+
+
+
+
+ {error.message}
+
+
+
+ );
+ }
+
+ const order = data && data.orderStripe;
+
+ return (
+
+
+
+
+ {loading || loader ? (
+
+
+
+ ) : (
+ <>
+ {order && }
+
+
+
+
+
+ {"Stripe"}
+
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+
+
+ );
+}
+
+export default React.memo(Stripe);
diff --git a/enatega-multivendor-web/src/screens/Stripe/styles.js b/enatega-multivendor-web/src/screens/Stripe/styles.js
new file mode 100644
index 0000000..027ee8a
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Stripe/styles.js
@@ -0,0 +1,33 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ background: theme.palette.grey[100],
+ minHeight: "100vh",
+ },
+ mainContainer: {
+ marginTop: "70px",
+ padding: theme.spacing(6, 0),
+ justifyContent: "center",
+ background: theme.palette.grey[100],
+ },
+ link: {
+ textDecoration: "none",
+ },
+ btn: {
+ backgroundColor: theme.palette.button.light,
+ minWidth: "50%",
+ height: "100%",
+ borderRadius: 5,
+ boxShadow: theme.shadows[0],
+ justifyContent: "space-between",
+ padding: theme.spacing(1.5),
+ border: `1px solid ${theme.palette.grey[300]}`,
+ "&:hover": {
+ backgroundColor: theme.palette.button.light,
+ opacity: 0.8,
+ },
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Terms/Terms.js b/enatega-multivendor-web/src/screens/Terms/Terms.js
new file mode 100644
index 0000000..2cd5774
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Terms/Terms.js
@@ -0,0 +1,888 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import { Box, Grid, Typography } from "@mui/material";
+import clsx from "clsx";
+import React, { useContext, useEffect } from "react";
+import Footer from "../../components/Footer/Footer";
+import { Header, LoginHeader } from "../../components/Header";
+import UserContext from "../../context/User";
+import Analytics from "../../utils/analytics";
+import useStyle from "./styles";
+
+function Terms() {
+ useEffect(async()=>{
+ await Analytics.track(Analytics.events.NAVIGATE_TO_TERMS)
+ },[])
+ const classes = useStyle();
+ const { isLoggedIn } = useContext(UserContext);
+ return (
+
+ {isLoggedIn ? : }
+
+
+
+ TERMS AND CONDITIONS | ENATEGA
+
+
+
+
+
+
+
+ Published: 2021
+
+
+
+ TERMS OF USE
+
+
+ These Terms of Use (“Terms ”) govern your use of the websites and mobile applications provided
+ by enatega (collectively the “Platforms ”). Please read these Terms carefully. By accessing and
+ using the Platforms, you agree that you have read, understood and accepted the Terms including any
+ additional terms and conditions and any policies referenced herein, available on the Platforms or
+ available by hyperlink. If you do not agree or fall within the Terms, please do not use the Platforms.
+
+
+ The Platforms may be used by (i) natural persons who have reached 18 years of age and (ii) corporate
+ legal entities, e.g companies. Where applicable, these Terms shall be subject to country-specific
+ provisions as set out herein.
+
+
+ Users below the age of 18 must obtain consent from parent(s) or legal guardian(s), who by accepting
+ these Terms shall agree to take responsibility for your actions and any charges associated with your
+ use of the Platforms and/or purchase of Goods. If you do not have consent from your parent(s) or legal
+ guardian(s), you must stop using/accessing the Platforms immediately.
+
+
+ Enatega reserves the right to change or modify these Terms (including our policies which are
+ incorporated into these Terms) at any time. You are strongly recommended to read these Terms
+ regularly. You will be deemed to have agreed to the amended Terms by your continued use of the
+ Platforms following the date on which the amended Terms are posted.
+
+
+
+
+ Enatega
+
+
+
+ What we do
+
+ Through our Platforms, enatega links you to the vendors (“Vendors ”) for you to order a
+ variety of goods including prepared meals, non-prepared food and miscellaneous non-food items
+ (hereinafter collectively referred to as "Goods ") to be delivered to you. When you place an
+ order for Goods from our Vendors (“Order ”), enatega acts as an agent on behalf of that
+ Vendor to facilitate, process and conclude the order and subsequently for either us or the Vendor
+ to deliver your Order to you. Vendors may be owned and operated by third party vendors, our
+ affiliate companies, or us.
+
+
+
+ How to contact us
+
+ For customer support, you may reach out to us via email or through our in-app customer support
+ chat feature.{" "}
+
+
+
+
+
+
+ Use of the Platforms and enatega Account
+
+
+ You will need to register for a enatega account for you to use the Platform. When you register for a
+ enatega account we will ask you to provide your personal information including a valid email address,
+ a mobile phone number and a unique password. To purchase an Order, depending on which payment method
+ you opt for, you may need to provide us with your credit card details. Your unique password should not
+ be shared with anyone and you agree to keep it secret at all times. You are solely responsible for
+ keeping your password safe. Save for cases of fraud or abuse which are not your fault, you accept that
+ all Orders placed under your enatega account are your sole responsibility.
+
+
+ enatega shall not be liable for Orders that encounter delivery issues due to incomplete, incorrect or
+ missing information provided by you. You are obliged to provide information that is complete, accurate
+ and truthful for the proper processing of the Order, including your delivery address and contact
+ information.
+
+
+ If you wish to delete your enatega account, please send us an email requesting the same. We may
+ restrict, suspend or terminate your enatega account and/or use of the Platforms, if we reasonably
+ believe that:
+
+
+ someone other than you is using your enatega account; or
+
+
+ where you are suspected or discovered to have been involved in any activity or conduct that is in
+ breach of these Terms, our policies and guidelines, or involved in activity or conduct which we deem
+ in our sole discretion to be an abuse of the Platforms.
+
+
+
+
+ Restrictions
+
+ Activities Prohibited on the Platforms
+
+ In processing your order we may send your information to credit reference and fraud prevention
+ agencies.
+
+
+ The following is a non-exhaustive list of the types of conduct that are illegal or prohibited on the
+ Platforms. Enatega reserves the right to investigate and take appropriate legal action against anyone
+ who, in enatega's sole discretion, engages in any of the prohibited activities. Prohibited activities
+ include, but are not limited to the following:
+
+
+
+
+ using the Platforms for any purpose in violation of local, state, or federal laws or regulations;
+
+
+
+
+ posting any content that infringes the intellectual property rights, privacy rights, publicity
+ rights, trade secret rights, or any other rights of any party;
+
+
+
+
+ posting content that is unlawful, obscene, defamatory, threatening, harassing, abusive,
+ slanderous, hateful, or embarrassing to any other person or entity as determined by enatega in its
+ sole discretion or pursuant to local community standards;
+
+
+
+
+ posting content that constitutes cyber-bullying, as determined by enatega in its sole discretion;
+
+
+
+
+ posting content that depicts any dangerous, life-threatening, or otherwise risky behavior;
+
+
+
+
+ posting telephone numbers, street addresses, or last names of any person;
+
+
+
+
+ posting URLs to external websites or any form of HTML or programming code;
+
+
+
+
+ posting anything that may be “spam,” as determined by enatega in its sole discretion;
+
+
+
+ impersonating another person when posting content;
+
+
+
+ harvesting or otherwise collecting information about others, including e-mail addresses, without
+ their consent;
+
+
+
+
+ allowing any other person or entity to use your identification for posting or viewing comments;
+
+
+
+
+ harassing, threatening, stalking, or abusing any person on the Platforms;
+
+
+
+
+ engaging in any other conduct that restricts or inhibits any other person from using or enjoying
+ the Websites, or which, in the sole discretion of enatega, exposes enatega or any of its
+ customers, suppliers, or any other parties to any liability or detriment of any type; or
+
+
+
+
+ encouraging other people to engage in any prohibited activities as described herein.
+
+
+
+
+ enatega reserves the right but is not obligated to do any or all of the following:
+
+
+
+
+ investigate an allegation that any content posted on the Platforms does not conform to these Terms
+ and determine in its sole discretion to remove or request the removal of the content;
+
+
+
+
+ remove content which is abusive, illegal, or disruptive, or that otherwise fails to conform with
+ these Terms;
+
+
+
+
+ suspend or terminate a user’s access to the Platforms or their enatega Account upon any breach of
+ these Terms;
+
+
+
+
+ monitor, edit, or disclose any content on the Platforms; and
+
+
+
+
+ edit or delete any content posted on the Platforms, regardless of whether such content violates
+ these standards.
+
+
+
+
+
+
+ Intellectual Property
+
+
+ All trademarks, logos, images, and service marks, including these Terms as displayed on the Platforms
+ or in our marketing material, whether registered or unregistered, are the intellectual property of
+ enatega and/or third parties who have authorised us with the use (collectively the “Trademarks
+ ”). You may not use, copy, reproduce, republish, upload, post, transmit, distribute, or modify these
+ Trademarks in any way without our prior express written consent. The use of enatega's trademarks on
+ any other website not approved by us is strictly prohibited. Enatega will aggressively enforce its
+ intellectual property rights to the fullest extent of the law, including criminal prosecution. Enatega
+ neither warrants nor represents that your use of materials displayed on the Platforms will not
+ infringe rights of third parties not owned by or affiliated with enatega. Use of any materials on the
+ Platforms is at your own risk.
+
+
+
+
+ Restrictions on Goods
+
+
+
+
+ Some of the Goods we offer on our Platforms are subject to restrictions for purchase (“
+ Restricted Goods ”)
+
+
+
+
+ Alcohol / Alcoholic Products (“Alcohol ”){" "}
+
+
+ To purchase Alcohol, you must be of the statutory legal age. Enatega, the Vendor and their
+ delivery riders, as the case may be, reserve the right in their sole discretion:
+
+
+
+
+ to ask for valid proof of age (e.g. ID card) to any persons before they deliver Alcohol;
+
+
+
+
+ to refuse delivery if you are unable to prove you are of legal age; and/or
+
+
+
+
+ to refuse delivery to any persons for any reason whatsoever.
+
+
+
+
+ Cigarettes/Tobacco Products (“Tobacco ”)
+
+
+
+
+ We may offer Tobacco on some of our Platforms where the laws allow. By offering Tobacco for sale
+ on our Platforms, we do not purport to advertise, promote or encourage the purchase or use of
+ Tobacco in any way.
+
+
+
+
+ To purchase Tobacco, you must be of the statutory legal age. Enatega, the Vendor and their
+ delivery riders, as the case may be, reserve the right in their sole discretion:
+
+
+
+
+ to ask for valid proof of age (e.g. ID card) to any persons before they deliver Tobacco;
+
+
+
+
+ to refuse delivery if you are unable to prove you are of legal age; and/or
+
+
+
+
+ to refuse delivery to any persons for any reason whatsoever.
+
+
+
+
+
+
+ Any offer for any Alcohol and Tobacco made on the Platforms is void when it is prohibited by law.
+
+
+
+
+
+
+ Orders
+
+
+
+
+ When you place an Order with enatega, enatega will confirm your order by sending you a
+ confirmation email containing the Order receipt. Where applicable, Orders will include delivery
+ fees and any applicable tax (e.g. goods and services tax, value-added tax, etc.).
+
+
+
+
+ Minimum Order Value - Some of our Vendors require a minimum order value (“MOV ”) before an
+ Order can be placed and delivered to you. Where an applicable Order fails to meet the MOV, you
+ will have the option of paying the difference to meet the MOV or to add more Goods to your Order.
+
+
+
+
+ Special Instructions – enatega and the Vendor (as the case may be) reasonably endeavour to comply
+ with your special instructions for an Order. However in some cases where this is not feasible,
+ possible or commercially reasonable, enatega and/or the Vendor reserve the right to proceed to
+ prepare the Order in accordance with standard operating procedures. Neither enatega nor the Vendor
+ shall be responsible to replace or refund an Order which does not conform to special instructions
+ provided by you.
+
+
+
+
+ Allergens – enatega is not obligated to provide ingredient information or allergen information on
+ the Platforms. Further, enatega does not guarantee that the Goods sold by Vendors are free of
+ allergens. If you have allergies, allergic reactions or dietary restrictions and requirements,
+ please contact the Vendor before placing an Order on our Platforms.
+
+
+
+
+ Please note that your Order may be subject to additional terms and conditions provided by the
+ Vendor.
+
+
+
+ Prior to placing the Order
+
+
+
+ You are required to provide the delivery address in order for the Platform to display the
+ Vendors available in your delivery area.
+
+
+
+
+ Once you select a Vendor, you will be taken to that Vendor’s menu page for you to select and
+ add your Goods to the cart.
+
+
+
+
+
+ Placing the Order
+
+
+
+ To complete an Order, please follow the onscreen instructions after clicking ‘Checkout’. You
+ may be required to provide additional details for us to complete your Order. You are required
+ to review and confirm that all the information you provide, including the amounts, delivery
+ details, personal details, payment information, and voucher codes (if applicable) is true,
+ accurate and complete before you click “PLACE ORDER”. An Order is successfully placed when you
+ receive an email confirmation containing your Order receipt from us.
+
+
+
+
+
+ Cancelling an Order
+
+
+
+ Please contact us immediately via our in-app customer support chat feature if you wish to
+ cancel your Order after it has been placed. You have the right to cancel your Order provided a
+ Vendor has not yet accepted your Order.
+
+
+
+ Refunds
+
+
+ Online Payment Orders
+
+ You have the right to a refund for a cancelled Order only if a Vendor has not yet accepted
+ your Order. Should you still decide to cancel your Order after it has been accepted by the
+ Vendor, you understand that no refunds (whether in whole or in part) will be issued to you
+ and you forfeit the delivery of your cancelled Order.
+
+
+
+ Cash-on-Delivery Orders
+
+ You have the right to cancel your Order only if a Vendor has not yet accepted your Order.
+ Should you still decide to cancel your Order after it has been accepted by the Vendor, you
+ understand that you shall forfeit the delivery of your cancelled Order and
+ cash-on-delivery may be removed from your list of available payment methods for your
+ future orders.
+
+
+
+
+
+
+
+
+ Enatega reserves the right to cancel any Order and/or suspend, deactivate or terminate your
+ enatega account in its sole discretion if it reasonably suspects or detects fraudulent behavior or
+ activity associated with your enatega account and/or with your Order.{" "}
+
+
+
+
+
+
+ Prices and Payments
+
+
+
+
+ Prices quoted on the Platform shall be displayed in the applicable country’s national currency and
+ subject to applicable tax. Prices and offers on the Platforms may vary from the prices and you
+ accept that offers offered by our Vendors (either on their own websites, mobile applications, or
+ at their brick-and-mortar outlets).
+
+
+
+ include TAX, VAT or such other equivalent tax; or
+
+
+ exclude TAX, VAT or such other equivalent tax.
+
+ A breakdown of the prices and additional charges are displayed before Checkout. When you place an
+ Order, you agree to all amounts, additional charges and the final ‘Total’ amount which is
+ displayed to you.{" "}
+
+
+
+ Delivery fees are chargeable on every Order unless:
+
+
+
+ you opt to collect your Order directly from the Vendor (“Pick-Up ”);
+
+
+
+
+ you have a valid promotional or discount voucher and apply it at Checkout; or
+
+
+
+ unless stated otherwise.
+
+
+
+ Prices indicated on the Platforms are as at the time of each Order and may be subject to change.
+
+
+
+ You can choose to pay for an Order using any of the different payment methods offered on the
+ Platforms including:
+
+
+
+
+ Our payment partners: Visa, Mastercard, American Express, Google Pay, PayPal, Apple Pay;
+
+
+
+ Cash-on-Delivery; or
+
+
+
+ Such other payment method we offer from time to time.
+
+
+
+ If you have existing credit in your enatega account or valid promotional or discount vouchers, you
+ can use this pay for part or all of your Order as the case may be.
+
+
+
+
+ After an Order is successfully placed, you will receive an email confirmation from us with your
+ Order receipt. Delivery fees will not appear in your Order receipt if you opt for Pick-Up.
+
+
+
+ Payment Methods
+
+ Enatega reserves the right to offer additional payment methods and/or remove existing payment
+ methods at anytime in its sole discretion. If you choose to pay using an online payment method,
+ the payment shall be processed by our third party payment service provider(s). With your consent,
+ your credit card / payment information will be stored with our third party payment service
+ provider(s) for future orders. Enatega does not store your credit card or payment information.
+
+
+
+
+ You must ensure that you have sufficient funds on your credit and debit card to fulfil payment of
+ an Order. Insofar as required, enatega takes responsibility for payments made on our Platforms
+ including refunds, chargebacks, cancellations and dispute resolution, provided if reasonable and
+ justifiable and in accordance with these Terms.
+
+
+
+
+
+
+ Delivery, Pick-Up and Vendor Delivery
+
+
+
+ Delivery Areas
+
+ You understand that our Vendors offer their Goods in specific delivery areas and our Vendors vary
+ from delivery area to delivery area. By entering your delivery address on the Platforms, you will
+ see the Vendors that we make available to you at that time. Delivery areas may expand, shrink or
+ change depending on weather and traffic conditions and situations of force majeure.{" "}
+
+
+
+ Delivery Time
+
+
+
+ Enatega shall deliver your Order to the delivery address provided by You. You may choose for your
+ Order to be delivered “ASAP” or scheduled for a specific time. An estimated delivery time will be
+ provided to you in your email confirmation but delivery times shall vary depending on factors that
+ are not controlled by us (e.g. order quantity, distance, time of day (peak periods), weather
+ conditions, traffic conditions, etc.). You can view the remaining delivery time of an Order when
+ you click on ‘My orders’ on the Platforms. You acknowledge that the delivery time we provide is
+ only an estimate and Orders may arrive earlier or later. To ensure that you do not miss a delivery
+ of an Order, you should ensure that either you or someone is at the delivery location to receive
+ the Order once an Order is placed. If your Order contains Alcohol or Tobacco (if applicable) and
+ you or the recipient is or appears to be below the legal age, or fails to provide a valid proof of
+ ID, enatega reserves the right not to deliver your Order to you.
+
+
+
+ Unsuccessful or Failed Deliveries
+
+
+
+
+ In cases where we attempt to deliver an Order but we are unable to do so due to the reasons
+ caused by you, including but not limited to:
+
+
+
+
+ no one was present or available to receive the Order; or
+
+
+
+
+ customer was uncontactable despite attempts to reach the customer via the phone number
+ provided; or
+
+
+
+
+ lack of appropriate or sufficient access to deliver the Order successfully;
+
+
+
+
+ lack of a suitable or secure location to leave the Order; or
+
+
+
+
+ in the case of Restricted Goods, customer did not meet the statutory age requirements or
+ delivery did not deem it safe or appropriate for the customer to receive the Restricted
+ Goods.
+
+
+
+
+ No-show Cancellations
+
+ If you remain uncontactable or fail to receive the Order within ten (10) minutes from the time
+ the Order arrives at your delivery address, enatega reserves the right to cancel the Order
+ without refund or remedy to you.
+
+
+
+
+
+ Wrong Order, Missing Items, Defective Goods
+
+ Upon receipt of your Order, if you discover that there are issues with your Order (e.g. wrong
+ order, defective order, or missing items) please contact customer support via one of the methods
+ indicated in Clause 1.3 above immediately. In some cases, enatega may request for photographic
+ proof and/or additional information to properly investigate the issue with your Order. If we
+ determine that the Order and/or Goods you received are not of satisfactory condition or quality,
+ we will compensate you for your Order or parts of your Order.
+
+
+ Order Pick-Up
+
+
+
+
+ Where available, you will have the option of collecting your Order in-person directly from the
+ Vendor’s premises ("Pick-Up ") instead of having the Order delivered to You. Your email
+ confirmation will indicate the time for you to Pick-Up the Order (“Collection Time”). The
+ Vendor will prepare the Order by the Collection Time. In some cases, a reasonable delay may be
+ expected. The Vendor agrees to hold the Order for you at the Vendor’s premises for no more
+ than a reasonable period of twenty (20) minutes from the Collection Time (“Holding Time
+ ”) and shall not be obliged to provide the Order to you if you fail to Pick-Up your Order
+ within the Holding Time.
+
+
+
+
+ In the event of unreasonable delays in Pick-Up attributable to you, you bear the risk of any
+ damage or loss of Goods or any deterioration in quality or change in condition of the Goods
+ (e.g. changes in the temperature fit for consumption). In this case, you shall not be entitled
+ to a replacement, refund or replacement of the Goods. You alone are responsible for inspecting
+ the Goods/Order when you Pick-Up your Order and shall report any issues and/or defects to the
+ Vendor before leaving the Vendor’s premises.
+
+
+
+
+
+ Vendor Delivery
+
+ In some cases, our Vendors will deliver the Order to you (“Vendor Delivery”). While we will use
+ reasonable efforts to provide prior notice to you on Vendor Delivery, this may not always be
+ possible. Where Vendor Delivery applies, we may ask you to contact the Vendor directly in the
+ event of issues or delays in your delivery. Enatega shall not be responsible in any way for Orders
+ or Goods that are delivered by Vendors.{" "}
+
+
+
+
+
+
+ Vouchers, Discounts and Promotions
+
+
+
+
+ From time to time, enatega may run marketing and promotional campaigns which offer voucher codes,
+ discounts, and other promotional offers to be used on the Platforms (“Vouchers ”). Vouchers
+ are subject to validity periods, redemption periods, and in certain cases, may only be used once.
+
+
+
+
+ Unless otherwise stated, Vouchers can only be used on our Platforms.{" "}
+
+
+
+ Vouchers cannot be exchanged for cash.
+
+
+
+ Enatega reserves the right to void, discontinue or reject the use of any Voucher without prior
+ notice Individual restaurants terms & conditions apply
+
+
+
+
+ We may exclude certain Vendors from the use of Vouchers at any time without prior notice to you.
+
+
+
+
+
+
+ Representations, Warranties and Limitation of Liabilities
+
+
+
+ Representations and Warranties
+
+ You acknowledge and agree that the content on the Platforms are provided on an “as is” and “as
+ available” basis, and that your use of or reliance upon the Platforms and any content, goods,
+ products or services accessed or obtained thereby is at your sole risk and discretion. While
+ enatega makes reasonable efforts to ensure the provision of the Platforms and the services we
+ offer, are available at all times, we do not warrant or represent that the Platforms shall be
+ provided in a manner which is secure, timely, uninterrupted, error-free, free of technical
+ difficulties, defects or viruses. Please expect temporary interruptions of the Platform due to
+ scheduled or regular system maintenance work, downtimes attributable to internet or electronic
+ communications or events of force majeure.
+
+ Limitation of Liability
+
+ To the extent permitted by law, enatega (which shall include its employees, directors, agents,
+ representatives, affiliates and parent company) exclude all liability (whether arising in
+ contract, in negligence or otherwise) for loss or damage which you or any third party may incur in
+ connection with our Platforms, our services, and any website linked to our Platforms and any
+ content or material posted on it. Your exclusive remedy with respect to your use of the Platforms
+ is to discontinue your use of the Platforms. The enatega entities, their agents, representatives,
+ and service providers shall not be liable for any indirect, special, incidental, consequential, or
+ exemplary damages arising from your use of the Platforms or for any other claim related in any way
+ to your use of the Platforms. These exclusions for indirect, special, consequential, and exemplary
+ damages include, without limitation, damages for lost profits, lost data, loss of goodwill, work
+ stoppage, work stoppage, computer failure, or malfunction, or any other commercial damages or
+ losses, even if the enatega entities, their agents, representatives, and service providers have
+ been advised of the possibility thereof and regardless of the legal or equitable theory upon which
+ the claim is based. Because some states or jurisdictions do not allow the exclusion or the
+ limitation of liability for consequential or incidental damages, in such states or jurisdictions,
+ enatega, the enatega entities, its agents, representatives and service providers' liability shall
+ be limited to the extent permitted by law.
+
+
+
+ Vendor’s representations
+
+ Enatega shall neither be liable for actions or omissions of the Vendor nor you in regard to
+ provision of the Goods and where Vendor Delivery applies to your Order. Enatega does not assume
+ any liability for the quantity, quality, condition or other representations of the Goods and/or
+ services provided by Vendors or guarantee the accuracy or completeness of the information
+ (including menu information, photos and images of the Goods) displayed on the Vendor’s
+ listing/offering on the Platform. Nothing in these Terms shall exclude Vendor’s liability for
+ death or personal injury arising from Vendor’s gross negligence or willful misconduct.
+
+
+
+
+
+
+ Vendor Liability
+
+
+ Vendors are responsible for the preparation, condition and quality of Goods. In cases of Vendor
+ Delivery, Vendors are responsible for delivery of the Goods and/or Orders. Enatega shall not be liable
+ for any loss or damage arising from your contractual relationship with the Vendor.
+
+
+
+
+ Personal Data (Personal Information) Protection
+
+
+ You agree and consent to enatega and any of its affiliate companies collecting, using, processing and
+ disclosing your Personal Data in accordance with these Terms and as further described in our Privacy
+ Policy. Our Privacy Policy is available via the links on our Platforms, and shall form a part of these
+ Terms.
+
+
+
+
+ Indemnity
+
+
+ You agree to indemnify, defend, hold harmless enatega, its directors, officers, employees,
+ representatives, agents, and affiliates, from any and all third party claims, liability, damages
+ and/or costs (including but not limited to, legal fees) arising from your use of the Platforms or your
+ breach of these Terms.
+
+
+
+
+ Third Party Links and Websites
+
+
+ The Platforms may contain links to other third party websites and by clicking on these links, you
+ agree to do so at your own risk. Enatega does not control or endorse these third party websites or
+ links and shall not be responsible for the content of these linked pages. Enatega accepts no liability
+ or responsibility for any loss or damage which may be suffered by you in relation to your access and
+ use of these third party links and websites.
+
+
+
+
+ Termination
+
+
+ Enatega has the right to terminate, suspend or delete your account and access to the Platforms,
+ including any delivery service we provide to you in respect of an Order, for any reason, including,
+ without limitation, if enatega, in its sole discretion, considers your use to be unacceptable, or in
+ the event of any breach by you of the Terms. Enatega may, but shall be under no obligation to, provide
+ you a warning prior to termination of your use of the Websites.
+
+
+
+
+ Amendments
+
+
+ Enatega may amend these Terms at any time in its sole discretion. The amended Terms shall be effective
+ immediately upon posting and you agree to the new Terms by continued use of the Platforms. It is your
+ responsibility to check the Terms regularly. If you do not agree with the amended Terms, whether in
+ whole or in part, you must stop using the Platforms immediately.
+
+
+
+
+ Severability
+
+
+ If any provision of these Terms of Use is found to be invalid by any court having competent
+ jurisdiction, the invalidity of such provision shall not affect the validity of the remaining
+ provisions of these Terms of Use, which shall remain in full force and effect. No waiver of any
+ provision in these Terms of Use shall be deemed a further or continuing waiver of such provision or
+ any other provision.
+
+
+
+
+ Governing Law
+
+
+ These Terms shall be governed and construed in accordance with the laws of the country / courts of
+ jurisdiction.
+
+
+
+
+ Contact Us
+
+
+ If you wish to contact us regarding any questions or comments you may have, please send an email to
+ our customer support email or via our in-app customer support chat feature.
+
+
+
+
+ Prevailing Language
+
+
+ In the event of a dispute as to the Terms, the English version shall prevail. The English language
+ version of these Terms shall control in all respects and shall prevail in case of any inconsistencies
+ with translated versions.
+
+
+
+
+
+
+
+
+ );
+}
+
+export default React.memo(Terms);
diff --git a/enatega-multivendor-web/src/screens/Terms/styles.js b/enatega-multivendor-web/src/screens/Terms/styles.js
new file mode 100644
index 0000000..44d5b0f
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Terms/styles.js
@@ -0,0 +1,55 @@
+import makeStyles from '@mui/styles/makeStyles';
+
+const useStyles = makeStyles((theme) => ({
+ mainContainer: {
+ display: "flex",
+ paddingTop: "70px",
+ minWidth: "100%",
+ backgroundColor: "transparent",
+ color: theme.palette.secondary.light,
+ },
+ imageContainer: {
+ width: "100%",
+ height: "400px",
+ backgroundImage:
+ "url(https://images.deliveryhero.io/image/foodpanda/cms-hero.jpg?width=2000&height=500|https://images.deliveryhero.io/image/foodpanda/cms-hero.jpg?width=4000&height=1000)",
+ backgroundSize: "cover",
+ backgroundPositionX: "50%",
+ backgroundPositionY: "center",
+ display: "flex",
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ },
+ title: {
+ fontWeight: theme.typography.fontWeightBold,
+ textTransform: "uppercase",
+ },
+ linkDecoration: {
+ textDecoration: "none",
+ alignSelf: "center",
+ },
+ link: {
+ fontSize: 16,
+ },
+ boldText: {
+ fontWeight: 600,
+ fontSize: "1rem",
+ },
+ bullet: {
+ listStyleType: "disc",
+ margin: theme.spacing(3, 0),
+ },
+ circle: {
+ listStyleType: "circle",
+ },
+ MV3: {
+ width: "100%",
+ margin: theme.spacing(3, 0),
+ },
+ MV2: {
+ margin: theme.spacing(2, 0),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/VerifyEmail/VerifyEmail.js b/enatega-multivendor-web/src/screens/VerifyEmail/VerifyEmail.js
new file mode 100644
index 0000000..ceb475b
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/VerifyEmail/VerifyEmail.js
@@ -0,0 +1,284 @@
+import { useMutation } from "@apollo/client";
+import {
+ Avatar,
+ Box,
+ Button,
+ CircularProgress,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import gql from "graphql-tag";
+import React, {
+ useCallback,
+ useEffect,
+ useRef,
+ useState,
+ useContext,
+} from "react";
+import { Navigate, useLocation, useNavigate } from "react-router-dom";
+import FlashMessage from "../../components/FlashMessage";
+import Analytics from "../../utils/analytics";
+import useStyles from "./styles";
+import VerifyEmailIcon from "../../assets/images/emailLock.png";
+import { LoginWrapper } from "../Wrapper";
+import { createUser, sendOtpToEmail } from "../../apollo/server";
+import UserContext from "../../context/User";
+import OtpInput from "react-otp-input";
+import { useTranslation } from 'react-i18next';
+import ConfigurableValues from "../../config/constants";
+
+const SEND_OTP_TO_EMAIL = gql`
+ ${sendOtpToEmail}
+`;
+const CREATEUSER = gql`
+ ${createUser}
+`;
+function VerifyEmail() {
+ const { t } = useTranslation();
+ const formRef = useRef();
+ const theme = useTheme();
+ const classes = useStyles();
+ const navigate = useNavigate();
+ const { state: user } = useLocation();
+ const [error, setError] = useState("");
+ const [loading, setLoading] = useState(false);
+ const { setTokenAsync } = useContext(UserContext);
+ const [otpError, setOtpError] = useState(false);
+ const [seconds, setSeconds] = useState(30);
+ const [otp, setOtp] = useState("");
+ const { SKIP_EMAIL_VERIFICATION } = ConfigurableValues()
+ const handleBackNavigation = () => {
+ // Use history.push to navigate to the desired route
+ navigate("/registration");
+ };
+
+ useEffect(() => {
+ // Add an event listener for the popstate event
+ window.addEventListener("popstate", handleBackNavigation);
+
+ // Remove the event listener when the component unmounts
+ return () => {
+ window.removeEventListener("popstate", handleBackNavigation);
+ };
+ });
+ const [otpFrom, setOtpFrom] = useState(
+ Math.floor(100000 + Math.random() * 900000).toString()
+ );
+ const [createUser, { loading: createLoading }] = useMutation(CREATEUSER, {
+ onCompleted: onCompletedCreate,
+ onError: onErrorCreate,
+ });
+ const [sendOtp] = useMutation(SEND_OTP_TO_EMAIL, {
+ onCompleted: onCompletedOtp,
+ onError: onErrorOtp,
+ });
+
+ function onErrorOtp(e) {
+ setLoading(false);
+ setError(e.message);
+ }
+
+ function onCompletedOtp(e) {
+ console.log("otp sent");
+ }
+
+ function onErrorCreate(e) {
+ setLoading(false);
+ setError(e.message);
+ }
+ async function onCompletedCreate({ createUser }) {
+ try {
+ await Analytics.identify(
+ {
+ userId: createUser.userId,
+ name: createUser.name,
+ email: createUser.email,
+ },
+ createUser.userId
+ );
+ await Analytics.track(Analytics.events.USER_CREATED_ACCOUNT, {
+ userId: createUser.userId,
+ name: createUser.name,
+ email: createUser.email,
+ });
+ navigate("/", {
+ replace: true,
+ });
+ setTokenAsync(createUser.token);
+ } catch (e) {
+ setError("Something went wrong");
+ console.log(e);
+ } finally {
+ setLoading(false);
+ }
+ }
+ useEffect(() => {
+ sendOtp({
+ variables: { email: user?.email, otp: otpFrom },
+ });
+ setSeconds(30);
+ }, [otpFrom, user?.email, sendOtp]);
+
+ useEffect(() => {
+ const myInterval = setInterval(() => {
+ if (seconds > 0) {
+ setSeconds(seconds - 1);
+ }
+ if (seconds === 0) {
+ clearInterval(myInterval);
+ }
+ }, 1000);
+ return () => {
+ clearInterval(myInterval);
+ };
+ });
+
+ const toggleSnackbar = useCallback(() => {
+ setError("");
+ }, []);
+
+ const onCodeFilled = useCallback((code) => {
+ if (SKIP_EMAIL_VERIFICATION || code === otpFrom) {
+ createUser({
+ variables: {
+ phone: user.phone,
+ email: user.email,
+ password: user.password,
+ name: user.name,
+ picture: "",
+ },
+ });
+ } else {
+ setOtpError(true);
+ }
+ },[SKIP_EMAIL_VERIFICATION, createUser, otpFrom, user.email, user.name, user.password, user.phone]);
+
+ const resendOtp = () => {
+ setOtpFrom(Math.floor(100000 + Math.random() * 900000).toString());
+ };
+ const handleCreateUser = useCallback((val) => {
+ setOtp(val);
+ if (val.length === 6) {
+ onCodeFilled(val);
+ }
+ },[onCodeFilled]);
+
+ useEffect(()=>{
+ let timer = null
+ if(!SKIP_EMAIL_VERIFICATION) return
+ setOtp('111111')
+ timer = setTimeout(()=>{
+ handleCreateUser('111111')
+ },3000)
+ return ()=>{timer && clearTimeout(timer)}
+ },[SKIP_EMAIL_VERIFICATION,handleCreateUser])
+
+ return user?.email ? (
+
+
+
+
+
+
+
+
+ {createLoading ? (
+
+ ) : (
+
+ )}
+
+ ) : (
+
+ );
+}
+
+export default VerifyEmail;
diff --git a/enatega-multivendor-web/src/screens/VerifyEmail/styles.js b/enatega-multivendor-web/src/screens/VerifyEmail/styles.js
new file mode 100644
index 0000000..901b8cd
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/VerifyEmail/styles.js
@@ -0,0 +1,40 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.grey[500],
+ },
+ rowField: {
+ display: "flex",
+ flexDirection: "row",
+ justifyContent: "space-between",
+ margin: theme.spacing(2, 0),
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.black,
+ transition: "opacity 0.3s",
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.main,
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ form: {
+ display: "flex",
+ },
+ codePicker: {
+ width: 80,
+ marginRight: theme.spacing(2),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/VerifyForgotOtp/VerifyForgotOtp.js b/enatega-multivendor-web/src/screens/VerifyForgotOtp/VerifyForgotOtp.js
new file mode 100644
index 0000000..1474138
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/VerifyForgotOtp/VerifyForgotOtp.js
@@ -0,0 +1,193 @@
+import { useEffect } from "react";
+import { useMutation, gql } from "@apollo/client";
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import { useTheme } from "@mui/material/styles";
+import Typography from "@mui/material/Typography";
+import React, { useState } from "react";
+import { useNavigate, useLocation } from "react-router-dom";
+import FlashMessage from "../../components/FlashMessage";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import RegistrationIcon from "../../assets/images/emailLock.png";
+import { Avatar } from "@mui/material";
+import OtpInput from "react-otp-input";
+import { forgotPassword } from "../../apollo/server";
+
+const FORGOT_PASSWORD = gql`
+ ${forgotPassword}
+`;
+function VerifyForgotOtp() {
+ const theme = useTheme();
+ const classes = useStyles();
+ const [otp, setOtp] = useState("");
+ const [error, setError] = useState("");
+ const navigate = useNavigate();
+ const [seconds, setSeconds] = useState(30);
+ const [otpError, setOtpError] = useState(false);
+ const [loading, setLoading] = useState(false);
+ const [otpFrom, setOtpFrom] = useState(
+ Math.floor(100000 + Math.random() * 900000).toString()
+ );
+ const [sendOtp] = useMutation(FORGOT_PASSWORD, { onCompleted, onError });
+ const { state } = useLocation();
+ useEffect(() => {
+ const myInterval = setInterval(() => {
+ if (seconds > 0) {
+ setSeconds(seconds - 1);
+ }
+ if (seconds === 0) {
+ clearInterval(myInterval);
+ }
+ }, 1000);
+ return () => {
+ clearInterval(myInterval);
+ };
+ });
+
+ useEffect(() => {
+ sendOtp({ variables: { email: state?.email, otp: otpFrom } });
+ setSeconds(30);
+ }, [otpFrom, sendOtp, state?.email]);
+
+ function onCompleted() {
+ try {
+ setLoading(true);
+ } catch (e) {
+ setError("Something went wrong");
+ console.log(e);
+ } finally {
+ setLoading(false);
+ }
+ }
+
+ function onError(e) {
+ setLoading(false);
+ setError(e.message);
+ }
+
+ const onCodeFilled = async (code) => {
+ if (code === otpFrom) {
+ navigate("/new-password", {
+ replace: true,
+ state: {
+ email: state?.email,
+ },
+ });
+ } else {
+ setOtpError(true);
+ }
+ };
+
+ const resendOtp = () => {
+ setOtpFrom(Math.floor(100000 + Math.random() * 900000).toString());
+ };
+ const handleCode = (val) => {
+ const code = val;
+ setOtp(val);
+ if (code.length === 6) {
+ onCodeFilled(code);
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ Forgot password ?
+
+
+
+ Please enter the otp we sent to your
+ email
+
+
+
+ }
+ />
+
+ {otpError && (
+
+ Invalid code, please check and enter again
+
+ )}
+
+
+
+ {
+ e.preventDefault();
+ resendOtp();
+ }}
+ >
+ {loading ? (
+
+ ) : (
+
+ Resend Code
+
+ )}
+
+
+
+ {seconds !== 0 ? `Retry after ${seconds}s` : ""}
+
+
+ );
+}
+
+export default VerifyForgotOtp;
diff --git a/enatega-multivendor-web/src/screens/VerifyForgotOtp/styles.js b/enatega-multivendor-web/src/screens/VerifyForgotOtp/styles.js
new file mode 100644
index 0000000..7c12e22
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/VerifyForgotOtp/styles.js
@@ -0,0 +1,40 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.grey[500],
+ },
+ rowField: {
+ display: "flex",
+ flexDirection: "row",
+ justifyContent: "space-between",
+ margin: theme.spacing(2, 0),
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.black,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.black
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ form: {
+ display: "flex",
+ },
+ codePicker: {
+ width: 80,
+ marginRight: theme.spacing(2),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/VerifyPhone/VerifyPhone.js b/enatega-multivendor-web/src/screens/VerifyPhone/VerifyPhone.js
new file mode 100644
index 0000000..6a0df2e
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/VerifyPhone/VerifyPhone.js
@@ -0,0 +1,259 @@
+import { useCallback, useEffect } from "react";
+import { useMutation, gql } from "@apollo/client";
+import Box from "@mui/material/Box";
+import Button from "@mui/material/Button";
+import CircularProgress from "@mui/material/CircularProgress";
+import { useTheme } from "@mui/material/styles";
+import Typography from "@mui/material/Typography";
+import React, { useContext, useState } from "react";
+import { useLocation, useNavigate } from "react-router-dom";
+import FlashMessage from "../../components/FlashMessage";
+import UserContext from "../../context/User";
+import { LoginWrapper } from "../Wrapper";
+import useStyles from "./styles";
+import RegistrationIcon from "../../assets/images/emailLock.png";
+import { Avatar } from "@mui/material";
+import OtpInput from "react-otp-input";
+import { Link as RouterLink } from "react-router-dom";
+import { sendOtpToPhoneNumber, updateUser } from "../../apollo/server";
+import { useTranslation } from 'react-i18next';
+import ConfigurableValues from "../../config/constants";
+
+const SEND_OTP_TO_PHONE = gql`
+ ${sendOtpToPhoneNumber}
+`;
+const UPDATEUSER = gql`
+ ${updateUser}
+`;
+function VerifyPhone() {
+ const { t } = useTranslation();
+ const theme = useTheme();
+ const classes = useStyles();
+ const [otp, setOtp] = useState("");
+ const [error, setError] = useState("");
+ const navigate = useNavigate();
+ const { state } = useLocation();
+ const [seconds, setSeconds] = useState(30);
+ const [otpError, setOtpError] = useState(false);
+ const [otpFrom, setOtpFrom] = useState(
+ Math.floor(100000 + Math.random() * 900000).toString()
+ );
+ const { profile } = useContext(UserContext);
+ const { SKIP_MOBILE_VERIFICATION } = ConfigurableValues()
+
+ const [sendOtp, { loading: loadingOtp }] = useMutation(SEND_OTP_TO_PHONE, {
+ onCompleted: onOtpCompleted,
+ onError: onOtpError,
+ });
+
+ useEffect(() => {
+ const myInterval = setInterval(() => {
+ if (seconds > 0) {
+ setSeconds(seconds - 1);
+ }
+ if (seconds === 0) {
+ clearInterval(myInterval);
+ }
+ }, 1000);
+ return () => {
+ clearInterval(myInterval);
+ };
+ });
+
+ useEffect(() => {
+ if (state?.phone) {
+ sendOtp({ variables: { phone: state?.phone, otp: otpFrom } });
+ } else {
+ sendOtp({ variables: { phone: profile?.phone, otp: otpFrom } });
+ }
+ setSeconds(30);
+ }, [otpFrom, sendOtp, state?.phone, profile?.phone]);
+
+ function onOtpError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message,
+ });
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message,
+ });
+ }
+ }
+ function onOtpCompleted(data) {
+ FlashMessage({
+ message: "OTP sent to your phone.",
+ });
+ }
+ function onUpdateUserError(error) {
+ if (error.networkError) {
+ FlashMessage({
+ message: error.networkError.result.errors[0].message,
+ });
+ } else if (error.graphQLErrors) {
+ FlashMessage({
+ message: error.graphQLErrors[0].message,
+ });
+ }
+ }
+
+ function onUpdateUserCompleted() {
+ FlashMessage({
+ message: "Phone number has been verified successfully!.",
+ });
+ }
+
+ const [mutate, { loading: updateUserLoading }] = useMutation(UPDATEUSER, {
+ onCompleted: onUpdateUserCompleted,
+ onError: onUpdateUserError,
+ });
+
+ const onCodeFilled = useCallback((code) => {
+ if (SKIP_MOBILE_VERIFICATION || code === otpFrom) {
+ mutate({
+ variables: {
+ name: profile.name,
+ phone: state?.phone ? state.phone : profile.phone,
+ phoneIsVerified: true,
+ },
+ });
+ navigate(-1, {
+ replace: true,
+ });
+ } else {
+ setOtpError(true);
+ setError("Invalid Code");
+ }
+ },[SKIP_MOBILE_VERIFICATION, mutate, navigate, otpFrom, profile?.name, profile?.phone, state?.phone]);
+
+ const resendOtp = () => {
+ setOtpFrom(Math.floor(100000 + Math.random() * 900000).toString());
+ };
+ const handleCode = useCallback((val) => {
+ const code = val;
+ setOtp(val);
+ if (code.length === 6) {
+ onCodeFilled(code);
+ }
+ },[onCodeFilled]);
+
+ useEffect(()=>{
+ let timer = null
+ if(!SKIP_MOBILE_VERIFICATION) return
+ setOtp('111111')
+ timer = setTimeout(()=>{
+ handleCode('111111')
+ },3000)
+ return ()=>{timer && clearTimeout(timer)}
+ },[SKIP_MOBILE_VERIFICATION,handleCode])
+
+ return (
+
+
+
+
+
+
+
+
+ {t('verifyPhone')} {t('number')}
+
+
+
+ {t('enterOtpPhone')}
+
+
+
+ }
+ />
+
+ {otpError && (
+
+ {t('invalidCode')}
+
+ )}
+
+
+
+ {
+ e.preventDefault();
+ resendOtp();
+ }}
+ >
+ {loadingOtp || updateUserLoading ? (
+
+ ) : (
+
+ {t('resendCode')}
+
+ )}
+
+
+
+ {seconds !== 0 ? `${t('retryAfter')} ${seconds}s` : ""}
+
+
+
+
+ {t('skipNow')}
+
+
+
+ );
+}
+
+export default VerifyPhone;
diff --git a/enatega-multivendor-web/src/screens/VerifyPhone/styles.js b/enatega-multivendor-web/src/screens/VerifyPhone/styles.js
new file mode 100644
index 0000000..23d8eda
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/VerifyPhone/styles.js
@@ -0,0 +1,41 @@
+import makeStyles from "@mui/styles/makeStyles";
+
+const useStyles = makeStyles((theme) => ({
+ font700: {
+ fontWeight: theme.typography.fontWeightBold,
+ },
+ caption: {
+ fontSize: "0.875rem",
+ },
+ fontGrey: {
+ color: theme.palette.grey[500],
+ },
+ rowField: {
+ display: "flex",
+ flexDirection: "row",
+ justifyContent: "space-between",
+ margin: theme.spacing(2, 0),
+ },
+ btnBase: {
+ height: "50px",
+ opacity: 1,
+ backgroundColor: theme.palette.primary.black,
+ transition: 'opacity 0.3s',
+ "&:hover": {
+ opacity: 0.8,
+ backgroundColor: theme.palette.primary.black,
+ transition: 'opacity 0.3s',
+ },
+ width: "70%",
+ borderRadius: 10,
+ },
+ form: {
+ display: "flex",
+ },
+ codePicker: {
+ width: 80,
+ marginRight: theme.spacing(2),
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Wrapper/LoginWrapper/LoginWrapper.js b/enatega-multivendor-web/src/screens/Wrapper/LoginWrapper/LoginWrapper.js
new file mode 100644
index 0000000..5f073d5
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Wrapper/LoginWrapper/LoginWrapper.js
@@ -0,0 +1,19 @@
+import { Box, Container } from "@mui/material";
+import React from "react";
+import { LoginHeader } from "../../../components/Header";
+import useStyles from "./styles";
+
+function LoginWrapper({ children }) {
+ const classes = useStyles();
+ return (
+
+
+
+
+ {children}
+
+
+
+ );
+}
+export default React.memo(LoginWrapper);
diff --git a/enatega-multivendor-web/src/screens/Wrapper/LoginWrapper/styles.js b/enatega-multivendor-web/src/screens/Wrapper/LoginWrapper/styles.js
new file mode 100644
index 0000000..bd34680
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Wrapper/LoginWrapper/styles.js
@@ -0,0 +1,42 @@
+import makeStyles from "@mui/styles/makeStyles";
+import bg from "../../../assets/images/bg.png";
+
+const useStyles = makeStyles((theme) => ({
+ root: {
+ "& .MuiInputBase-input": {
+ color: theme.palette.text.secondary,
+ },
+ "& .MuiOutlinedInput-root": {
+ "& fieldset": {
+ borderColor: theme.palette.grey[200],
+ },
+ "&:hover fieldset": {
+ borderColor: theme.palette.text.disabled,
+ },
+ "&.Mui-focused fieldset": {
+ borderColor: theme.palette.primary.main,
+ },
+ },
+ },
+ mainContainer: {
+ display: "flex",
+ justifyContent: "center",
+ alignItems: "center",
+ width: "100%",
+ height: "100vh",
+ backgroundColor: theme.palette.grey[50],
+ background: `url(${bg})`,
+ backgroundRepeat: "no-repeat",
+ backgroundSize: "cover",
+ backgroundPosition: "center center",
+ },
+ loginBox: {
+ background: theme.palette.common.white,
+ paddingTop: "40px",
+ paddingBottom: "40px",
+ borderRadius: 20,
+ textAlign: "center",
+ },
+}));
+
+export default useStyles;
diff --git a/enatega-multivendor-web/src/screens/Wrapper/index.js b/enatega-multivendor-web/src/screens/Wrapper/index.js
new file mode 100644
index 0000000..1643701
--- /dev/null
+++ b/enatega-multivendor-web/src/screens/Wrapper/index.js
@@ -0,0 +1,3 @@
+import LoginWrapper from "./LoginWrapper/LoginWrapper";
+
+export { LoginWrapper };
diff --git a/enatega-multivendor-web/src/translations/ar.js b/enatega-multivendor-web/src/translations/ar.js
new file mode 100644
index 0000000..2bfab24
--- /dev/null
+++ b/enatega-multivendor-web/src/translations/ar.js
@@ -0,0 +1,206 @@
+const ar = {
+ translation: {
+ selectLanguage: "اللغة المختارة",
+ saveButton: "يحفظ",
+ footerText:
+ "Enatega عبارة عن منصة مفتوحة المصدر لإدارة التسليم لـ مستقبل. نحن نعطي الأولوية للابتكار والمرونة والقدرة على تحمل التكاليف، وتقديم حل قابل للتطوير وقابل للتخصيص يعمل على تبسيط عملك عمليات التسليم.",
+ footerLinkHome: "الصفحة الرئيسية",
+ footerLinkPP: "سياسة الخصوصية",
+ footerLinkTC: "الشروط والأحكام",
+ footerEndText: "إناتيغا - © 2022 جميع الحقوق محفوظة",
+ followUs: "تابعنا",
+ poweredBy: "يعمل بواسطة",
+ linksTitle: "روابط",
+ subTotal: "المجموع الفرعي",
+ deliveryFee: "رسوم التوصيل",
+ haveVoucher: "هل لديك قسيمة ؟",
+ remove: "إزالة",
+ change: "يتغيرون",
+ tip: "نصيحة",
+ taxFee: "الرسوم الضريبية",
+ total: "مجموع",
+ discount: "خصم",
+ name: "اسم",
+ phone: "هاتف",
+ email: "بريد إلكتروني",
+ address: "عنوان",
+ changeAddress: "تغيير العنوان",
+ contactInfo: "معلومات الاتصال",
+ paymentMethod: "طريقة الدفع او السداد",
+ orderBtn: "مكان الامر",
+ deliveryTime: "وقت التوصيل",
+ delivery: "توصيل",
+ searchRestaurantPlaceholder: "البحث عن المطاعم والأطباق",
+ allRestaurant: "جميع المطاعم",
+ pending: "قيد الانتظار",
+ accepted: "تم قبوله",
+ assigned: "تم تعيينه",
+ picked: "تم الاختيار",
+ delivered: "تم التوصيل",
+ completed: "تم الانتهاء",
+ titleOrders: "طلباتي",
+ titleProfile: "الملف الشخصي",
+ titleSettings: "الإعدادات",
+ titleHelp: "مساعدة",
+ titleChat: "محادثة",
+ titleLogout: "تسجيل خروج",
+ passwordInfo: "معلومات كلمة المرور",
+ myAddresses: "عناويني",
+ edit: "تعديل",
+ creditDebitCard: "بطاقة الائتمان / الخصم",
+ paypal: "باي بال",
+ cash: "نقداً",
+ deliverTo: "توصيل إلى",
+ ASSIGNED: "مُكَلَّف",
+ PENDING: "قيد الانتظار",
+ PICKED: "اختار",
+ ACCEPTED: "قبلت",
+ DELIVERED: "تم التوصيل",
+ COMPLETED: "مكتمل",
+ orderPlaced: "تم الطلب",
+ "Order ID": "رقم الأمر",
+ "Order status: PENDING": "حالة الطلب: في انتظار",
+ "Order status: ACCEPTED": "حالة الطلب: مقبول",
+ "Order status: ASSIGNED": "حالة الطلب: مُعيَّن",
+ "Order status: PICKED": "حالة الطلب: تم اختياره",
+ "Order status: DELIVERED": "حالة الطلب: تم التسليم",
+ "Order status: Order Placed": "حالة الطلب: تم تقديم الطلب",
+ deliveryAddress: "عنوان التسليم",
+ orderDetail: "تفاصيل الطلب",
+ orderFrom: "طلبك من",
+ orderNo: "رقم طلبك",
+ findRestaurants: "العثور على المطاعم",
+ putUsInYourPocket: "ضعنا في جيبك.",
+ containerText:
+ "كلها بين يديك - المطاعم التي تحبها. ابحث عن الطعام المناسب لمزاجك واجعل اللقمة الأولى تدوم. تفضل، قم بتنزيلنا.",
+ findingAddress:
+ "العثور على العنوان باستخدام دمج نظام تحديد المواقع العالمي (GPS)",
+ zonesFunctionality: "وظيفة المناطق للمطاعم والمندوبين",
+ multipleRestaurants: "ميزة إضافة مطاعم متعددة",
+ realTimeOrder: "تحديثات استلام الطلبات في الوقت الحقيقي",
+ differentSections: "ميزة الأقسام المختلفة للترويج للمطاعم",
+ previousOrder: "تاريخ الطلبات السابقة وإضافة المطاعم المفضلة",
+ ourDelivery: "نظام إدارة التوصيل الخاص بنا مصمم للمستقبل",
+ builtOnCommunity: "بنيت على مبادئ توجيه المجتمع",
+ yourCart: "سلة التسوق الخاصة بك",
+ startAdding: "ابدأ في إضافة العناصر إلى سلة التسوق الخاصة بك",
+ goToCheckout: "انتقل إلى السداد",
+ activeOrders: "الطلبات النشطة",
+ pastOrders: "الطلبات السابقة",
+ deliveringTo: "توصيل إلى",
+ restaurantDeliver: "نحن نسأل المطعم كم سيستغرق توصيل طعامك",
+ riderDeliver: "نحن نسأل السائق كم سيستغرق توصيل طعامك",
+ orderPending: "طلبك قيد الانتظار لا يزال",
+ areYouSure: "هل أنت متأكد؟",
+ clearCartText: "بتغيير المطعم، سيتم مسح العناصر التي أضفتها إلى السلة",
+ ok: "حسنًا",
+ cancel: "إلغاء",
+ submit: "إرسال",
+ titleFavourite: "المفضلة",
+ titleEmptyFav: "لا توجد المفضلة المحفوظة",
+ emptyFavDesc: "سترى كل ما تفضله هنا ، لجعل الطلب أسرع",
+ emptyFavBtn: "دعونا نجد بعض المفضلة",
+ exactLocation: "هل هذا موقعك الدقيق؟",
+ yourArea: "أدخل منطقتك",
+ currentLocation: "استخدم الموقع الحالي",
+ deliveryDetails: "التفاصيل المطلوبة - على سبيل المثال. الطابق / المبنى",
+ deliveryDetailError: "مطلوب تفاصيل التوصيل",
+ currentPassword: "كلمة المرور الحالية",
+ newPassword: "كلمة مرور جديدة",
+ deliver: "توصيل",
+ time: "وقت",
+ pickup: "الاستلام",
+ selectTime: "اختر الوقت",
+ am: "صباحًا",
+ pm: "مساءً",
+ set: "تعيين",
+ apply: "تطبيق",
+ applyAVoucher: "تطبيق قسيمة",
+ readAll: "اقرأ الكل",
+ readMore: "اقرأ المزيد",
+ demo: "عرض توضيحي",
+ getQuote: "الحصول على اقتباس",
+ restaurantCloseText:
+ "المطعم مغلق الآن. تحقق من المطاعم الأخرى المفتوحة أو شاهد القائمة للتخطيط لوجبتك القادمة.",
+ seeOtherRestaurants: "انظر لمطاعم أخرى",
+ goToMenu: "الانتقال إلى القائمة",
+ deliveryHours: "ساعات التوصيل",
+ about: "حول",
+ reviews: "التقييمات",
+ closedAllDay: "مغلق طوال اليوم",
+ minute: "دقيقة",
+ welcome: "مرحبًا!",
+ signUpOrLogin: "قم بالتسجيل أو تسجيل الدخول للمتابعة",
+ signInWithGoogle: "المتابعة باستخدام Google",
+ or: "أو",
+ continueWithEmail: "المتابعة باستخدام البريد الإلكتروني",
+ terms: "الشروط والأحكام",
+ privacyPolicy: "سياسة الخصوصية",
+ bySigningUp: "بالتسجيل، أنت توافق على ",
+ and: " و ",
+ whatsYourEmail: "ما هو بريدك الإلكتروني؟",
+ checkAccount: "سنتحقق مما إذا كان لديك حساب",
+ continue: "استمر",
+ invalidEmail: "بريد إلكتروني غير صالح",
+ letsGetStarted: "لنبدأ!",
+ createAccount: "أنشئ حسابك في إناتيجا",
+ firstnameErr1: "الاسم الأول مطلوب!",
+ firstnameErr2: "اسم أول غير صالح!",
+ lastnameErr1: "الاسم الأخير مطلوب!",
+ lastnameErr2: "اسم أخير غير صالح!",
+ mobileErr1: "رقم الهاتف مطلوب!",
+ mobileErr2: "رقم هاتف غير صالح!",
+ emailErr2: "بريد إلكتروني غير صالح",
+ passwordErr1:
+ "كلمة مرور غير صالحة. يجب أن تحتوي كلمة المرور على حرف كبير وحرف صغير ورقم واحد على الأقل.",
+ passwordErr2: "كلمة مرور غير صالحة",
+ generalErr: "هناك شيء ناقص",
+ verifyEmail: "تحقق من بريدك الإلكتروني",
+ enterOtp: "الرجاء إدخال رمز OTP الذي أرسلناه إلى بريدك الإلكتروني المحدث",
+ enterOtpPhone: "الرجاء إدخال رمز OTP الذي أرسلناه إلى رقم هاتفك الإلكتروني",
+ invalidCode: "الرمز غير صالح، الرجاء التحقق وإدخاله مرة أخرى",
+ resendCode: "إعادة إرسال الرمز",
+ retryAfter: "إعادة المحاولة بعد",
+ loginBtn: "تسجيل الدخول",
+ addToCart: "أضف إلى السلة",
+ customize: "تخصيص",
+ optional: "اختياري",
+ required: "مطلوب",
+ specialInstructions: "تعليمات خاصة",
+ anySpecific: "هل لديك تفضيلات معينة؟ أخبر المطعم.",
+ selectVariation: "اختر التباين",
+ closed: "مغلق",
+ new: "جديد",
+ orderCancelled: "تم إلغاء طلبك",
+ orderCompleted: "تم إكمال الطلب بنجاح. شكرًا لك على طلبك",
+ reorder: "إعادة الطلب",
+ review: "مراجعة",
+ subTitle: " اختر ١",
+ placeholder: "على سبيل المثال، بدون مايونيز",
+ phoneNumMissing: "الرقم الهاتفي مفقود",
+ updatePhone: "قم بتحديث هاتفك",
+ number: "الرقم؟",
+ secureAcc: "نحتاج هذا لتأمين حسابك",
+ verifyPhone: "تحقق من هاتفك",
+ skipNow: "تخطى الآن",
+ favouriteListUpdated: "تم تحديث قائمة المفضلات",
+ pendingText: "في انتظار الرد من",
+ acceptedText: "الوقت المقدر للتحضير",
+ orderLateText: "آسف! طلبك متأخر قليلاً.",
+ riderPickText: "سيقوم سائقك بالحصول عليه عندما يكون جاهزًا.",
+ orderIs: "طلبك هو",
+ orderAssigned: "تم تعيينه للسائق",
+ orderAssignedToRider:
+ "تم تعيين طلبك لسائقنا، سيتم استلام الطلب عندما يكون جاهزًا.",
+ riderOnWay: "سائقك في الطريق.",
+ orderHasBeen: "تم طلبك",
+ enjoyYourMeal: "استمتع بوجبتك!",
+ cancelled: "تم الإلغاء",
+ personalDetail: "التفاصيل الشخصية",
+ voucherCode: "رمز القسيمة",
+ pickUp: "استلام",
+ warning: "تحذير",
+ warningText: "أحد العناصر غير متاح",
+ },
+};
+export default ar;
diff --git a/enatega-multivendor-web/src/translations/de.js b/enatega-multivendor-web/src/translations/de.js
new file mode 100644
index 0000000..ab33e1d
--- /dev/null
+++ b/enatega-multivendor-web/src/translations/de.js
@@ -0,0 +1,214 @@
+const de = {
+ translation: {
+ selectLanguage: "Sprache auswählen",
+ saveButton: "speichern",
+ footerText:
+ "Enatega ist eine Open-Source-Liefermanagementplattform für Zukunft. Wir legen Wert auf Innovation, Flexibilität und Erschwinglichkeit. und bieten Sie eine skalierbare, anpassbare Lösung, die Ihre Prozesse optimiert Lieferprozesse.",
+ footerLinkHome: "Startseite",
+ footerLinkPP: "Datenschutzbestimmungen",
+ footerLinkTC: "Geschäftsbedingungen",
+ footerEndText: "Enatega - © 2022 Alle Rechte vorbehalten",
+ followUs: "Folge uns",
+ poweredBy: "Angetrieben von",
+ linksTitle: "Verknüpfungen",
+ subTotal: "Zwischensumme",
+ deliveryFee: "Liefergebühr",
+ haveVoucher: "Hast du einen Gutschein?",
+ remove: "Entfernen",
+ change: "Veränderung",
+ taxFee: "Steuerbelastungen",
+ total: "Gesamt",
+ tip: "Tipp",
+ discount: "Rabatt",
+ name: "Name",
+ phone: "Telefon",
+ email: "Email",
+ address: "Adresse",
+ changeAddress: "Adresse ändern",
+ contactInfo: "Kontaktinformationen",
+ paymentMethod: "Zahlungsmethode",
+ orderBtn: "Bestellung aufgeben",
+ deliveryTime: "Lieferzeit",
+ delivery: "Lieferung",
+ searchRestaurantPlaceholder: "Suche nach Restaurants und Küchen",
+ allRestaurant: "Alle Restaurants",
+ pending: "Ausstehend",
+ accepted: "Akzeptiert",
+ assigned: "Zugewiesen",
+ picked: "Abgeholt",
+ delivered: "Geliefert",
+ completed: "Abgeschlossen",
+ titleOrders: "meine Bestellungen",
+ titleSettings: "Einstellungen",
+ titleProfile: "Profiel",
+ titleHelp: "Hilfe",
+ titleChat: "Plaudern",
+ titleLogout: "Ausloggen",
+ passwordInfo: "Passwortinformationen",
+ myAddresses: "Meine Adressen",
+ edit: "Bearbeiten",
+ creditDebitCard: "Kredit- / Debitkarte",
+ paypal: "Paypal",
+ cash: "Bargeld",
+ deliverTo: "Liefern an",
+ ASSIGNED: "zugewiesen",
+ PENDING: "ausstehend",
+ PICKED: "abgeholt",
+ ACCEPTED: "akzeptiert",
+ DELIVERED: "geliefert",
+ COMPLETED: "abgeschlossen",
+ orderPlaced: "Bestellung aufgegeben",
+ "Order ID": "Auftragsnummer",
+ "Order status: PENDING": "Bestellstatus: AUSSTEHEND",
+ "Order status: ACCEPTED": "Bestellstatus: AKZEPTIERT",
+ "Order status: ASSIGNED": "Bestellstatus: ZUGEWIESEN",
+ "Order status: PICKED": "Bestellstatus: AUSGEWÄHLT",
+ "Order status: DELIVERED": "Bestellstatus: GELIEFERT",
+ "Order status: Order Placed": "Bestellstatus: Bestellung aufgegeben",
+ deliveryAddress: "Lieferadresse",
+ orderDetail: "Bestelldetails",
+ orderFrom: "Ihre Bestellung von",
+ orderNo: "Ihre Bestellnummer",
+ findRestaurants: "Restaurants finden",
+ putUsInYourPocket: "Steck uns in deine Tasche.",
+ containerText:
+ "Alles liegt in deiner Handfläche – die Restaurants, die du liebst. Finde das richtige Essen, um deine Stimmung zu treffen, und mache den ersten Bissen zum Erlebnis. Los, lade uns herunter.",
+ findingAddress: "Adresse finden mit GPS-Integration",
+ zonesFunctionality: "Zonenfunktion für Restaurants und Fahrer",
+ multipleRestaurants: "Funktion zum Hinzufügen mehrerer Restaurants",
+ realTimeOrder: "Echtzeitaktualisierungen zum Bestellempfang",
+ differentSections:
+ "Funktion für verschiedene Abschnitte zur Förderung von Restaurants",
+ previousOrder:
+ "Vorherige Bestellhistorie und Hinzufügen von Lieblingsrestaurants",
+ ourDelivery: "Unser Liefersystem ist für die Zukunft konzipiert",
+ builtOnCommunity: "Auf gemeinschaftsgetriebenen Prinzipien aufgebaut",
+ yourCart: "Ihr Warenkorb",
+ startAdding: "Beginnen Sie damit, Artikel in Ihren Warenkorb zu legen",
+ goToCheckout: "ZUR KASSE GEHEN",
+ activeOrders: "Aktive Bestellungen",
+ pastOrders: "Vergangene Bestellungen",
+ deliveringTo: "Lieferung an",
+ restaurantDeliver:
+ "Wir fragen das Restaurant, wie lange es dauern wird, um Ihr Essen zu liefern",
+ riderDeliver:
+ "Wir fragen den Fahrer, wie lange es dauern wird, um Ihr Essen zu liefern",
+ orderPending: "Ihre Bestellung ist noch ausstehend",
+ areYouSure: "Bist du sicher?",
+ clearCartText:
+ "Durch den Wechsel des Restaurants werden die Artikel in deinem Warenkorb gelöscht",
+ ok: "OK",
+ cancel: "Abbrechen",
+ submit: "einreichen",
+ titleFavourite: "Favoritin",
+ titleEmptyFav: "Keine Favoriten gespeichert",
+ emptyFavDesc:
+ "Hier sehen Sie alle Ihre Favoriten, um die Bestellung noch schneller zu machen.",
+ emptyFavBtn: "Lassen Sie uns einige Favoriten finden",
+ exactLocation: "Ist dies dein genauer Standort?",
+ yourArea: "Gib deine Region ein",
+ currentLocation: "Aktuellen Standort verwenden",
+ deliveryDetails: "Erforderliche Angaben, z. Boden / Gebäude",
+ deliveryDetailError: "Lieferdetails sind erforderlich",
+ currentPassword: "Aktuelles Passwort",
+ newPassword: "Neues Passwort",
+ deliver: "Lieferung",
+ time: "Zeit",
+ pickup: "Abholung",
+ selectTime: "Zeit auswählen",
+ am: "vormittags",
+ pm: "nachmittags",
+ set: "Einstellen",
+ apply: "Anwenden",
+ applyAVoucher: "Gutschein anwenden",
+ readAll: "Alles lesen",
+ readMore: "Mehr lesen",
+ demo: "Demo",
+ getQuote: "Angebot erhalten",
+ restaurantCloseText:
+ "Das Restaurant ist derzeit geschlossen. Schauen Sie sich andere offene Restaurants an oder werfen Sie einen Blick auf die Speisekarte für Ihre nächste Mahlzeit.",
+ seeOtherRestaurants: "ANDERE RESTAURANTS ANZEIGEN",
+ goToMenu: "Zur Speisekarte",
+ deliveryHours: "Lieferzeiten",
+ about: "ÜBER",
+ reviews: "BEWERTUNGEN",
+ closedAllDay: "Den ganzen Tag geschlossen",
+ minute: "Minute",
+ welcome: "Willkommen!",
+ signUpOrLogin: "Registrieren oder anmelden, um fortzufahren",
+ signInWithGoogle: "MIT GOOGLE FORTFAHREN",
+ or: "oder",
+ continueWithEmail: "MIT E-MAIL FORTFAHREN",
+ terms: "Allgemeine Geschäftsbedingungen",
+ privacyPolicy: "Datenschutzrichtlinie",
+ bySigningUp: "Durch die Registrierung stimmst du unseren ",
+ and: " und ",
+ whatsYourEmail: "Was ist deine E-Mail-Adresse?",
+ checkAccount: "Wir überprüfen, ob du ein Konto hast",
+ continue: "Weiter",
+ invalidEmail: "Ungültige E-Mail-Adresse",
+ letsGetStarted: "Lass uns anfangen!",
+ createAccount: "Erstelle dein Enatega-Konto",
+ firstnameErr1: "Vorname ist erforderlich!",
+ firstnameErr2: "Ungültiger Vorname!",
+ lastnameErr1: "Nachname ist erforderlich!",
+ lastnameErr2: "Ungültiger Nachname!",
+ mobileErr1: "Telefonnummer ist erforderlich!",
+ mobileErr2: "Ungültige Telefonnummer!",
+ emailErr2: "Ungültige E-Mail-Adresse",
+ passwordErr1:
+ "Ungültiges Passwort. Das Passwort muss mindestens 1 Großbuchstaben, 1 Kleinbuchstaben und 1 Zahl enthalten.",
+ passwordErr2: "Ungültiges Passwort",
+ generalErr: "Etwas fehlt",
+ verifyEmail: "Bestätigen Sie Ihre E-Mail",
+ enterOtp:
+ "Bitte geben Sie den OTP ein, den wir an Ihre aktualisierte E-Mail gesendet haben",
+ enterOtpPhone: "Bitte geben Sie den OTP ein, den wir an Ihre aktualisierte Telefonnummer gesendet haben",
+ invalidCode: "Ungültiger Code, bitte überprüfen und erneut eingeben",
+ resendCode: "Code erneut senden",
+ retryAfter: "Erneuter Versuch nach",
+ loginBtn: "Anmeldung",
+ addToCart: "in den Warenkorb legen",
+ customize: "Anpassen",
+ optional: "Optional",
+ required: "Erforderlich",
+ specialInstructions: "Besondere Anweisungen",
+ anySpecific:
+ "Irgendwelche spezifischen Vorlieben? Lassen Sie es das Restaurant wissen.",
+ selectVariation: "Variation auswählen",
+ closed: "Geschlossen",
+ new: "NEU",
+ orderCancelled: "Ihre Bestellung wurde storniert",
+ orderCompleted:
+ "Bestellung erfolgreich abgeschlossen. Vielen Dank für Ihre Bestellung",
+ reorder: "NEUBESTELLEN",
+ review: "Überprüfung",
+ subTitle: "Auswahl 1",
+ placeholder: "z.B. Keine Mayo",
+ phoneNumMissing: "Telefonnummer fehlt",
+ updatePhone: "Aktualisieren Sie Ihr Telefon",
+ number: "Nummer?",
+ secureAcc: "Wir brauchen das, um Ihr Konto zu sichern",
+ verifyPhone: "Überprüfen Sie Ihr Telefon",
+ skipNow: "Jetzt überspringen",
+ favouriteListUpdated: "Favoritenliste aktualisiert",
+ pendingText: "Warten auf Antwort von",
+ acceptedText: "Geschätzte Zubereitungszeit",
+ orderLateText: "Entschuldigung! Ihre Bestellung kommt etwas spät.",
+ riderPickText: "Ihr Fahrer wird es abholen, sobald es bereit ist.",
+ orderIs: "Ihre Bestellung ist",
+ orderAssigned: "Dem Fahrer zugewiesen",
+ orderAssignedToRider:
+ "Ihre Bestellung wurde unserem Fahrer zugewiesen und wird abgeholt, sobald sie bereit ist.",
+ riderOnWay: "Ihr Fahrer ist unterwegs.",
+ orderHasBeen: "Ihre Bestellung wurde",
+ enjoyYourMeal: "Guten Appetit!",
+ cancelled: "Abgebrochen",
+ personalDetail: "Persönliche Angaben",
+ voucherCode: "Gutscheincode",
+ pickUp: "Abholung",
+ warning: "Warnung",
+ warningText: "Ein oder mehrere Elemente sind nicht verfügbar",
+ },
+};
+export default de;
diff --git a/enatega-multivendor-web/src/translations/en.js b/enatega-multivendor-web/src/translations/en.js
new file mode 100644
index 0000000..267c596
--- /dev/null
+++ b/enatega-multivendor-web/src/translations/en.js
@@ -0,0 +1,209 @@
+const en = {
+ translation: {
+ selectLanguage: "Select Language",
+ saveButton: "Save",
+ footerText:
+ "Enatega is an open-source delivery management platform for the future. We prioritize innovation, flexibility, and affordability, and offer a scalable, customizable solution that streamlines your delivery processes.",
+ footerLinkHome: "Home",
+ footerLinkPP: "Privacy Policy",
+ footerLinkTC: "Terms and Conditions",
+ footerEndText: "Enatega – © 2022 All Rights Reserved",
+ followUs: "Follow Us",
+ poweredBy: "Powered By",
+ linksTitle: "Links",
+ subTotal: "SubTotal",
+ deliveryFee: "Delivery Fee",
+ haveVoucher: "Do you have a voucher ?",
+ remove: "Remove",
+ change: "Change",
+ taxFee: "Tax Charges",
+ total: "Total",
+ tip: "Tip",
+ discount: "Discount",
+ name: "Name",
+ phone: "Phone",
+ email: "Email",
+ address: "Address",
+ changeAddress: "Change Address",
+ contactInfo: "Contact Information",
+ paymentMethod: "Payment Method",
+ orderBtn: "Place order",
+ deliveryTime: "Delivery Time",
+ delivery: "Delivery",
+ searchRestaurantPlaceholder: "Search for restaurant and cuisines",
+ allRestaurant: "All Restaurants",
+ pending: "PENDING",
+ accepted: "ACCEPTED",
+ assigned: "ASSIGNED",
+ picked: "PICKED",
+ delivered: "DELIVERED",
+ completed: "COMPLETED",
+ titleOrders: "My Orders",
+ titleProfile: "Profile",
+ titleSettings: "Settings",
+ titleHelp: "Help",
+ titleChat: "Chat",
+ titleLogout: "Logout",
+ passwordInfo: "Password Info",
+ myAddresses: "My Addresses",
+ edit: "Edit",
+ creditDebitCard: "Credit / Debit Card",
+ paypal: "Paypal",
+ cash: "Cash",
+ deliverTo: "Deliver to",
+ ASSIGNED: "ASSIGNED",
+ PENDING: "PENDING",
+ PICKED: "PICKED",
+ ACCEPTED: "ACCEPTED",
+ DELIVERED: "DELIVERED",
+ COMPLETED: "COMPLETED",
+ orderPlaced: "Order Placed",
+ "Order ID": "Order ID",
+ "Order status: PENDING": "Order status: PENDING",
+ "Order status: ACCEPTED": "Order status: ACCEPTED",
+ "Order status: ASSIGNED": "Order status: ASSIGNED",
+ "Order status: PICKED": "Order status: PICKED",
+ "Order status: DELIVERED": "Order status: DELIVERED",
+ "Order status: Order Placed": "Order status: Order Placed",
+ deliveryAddress: "Delivery Address",
+ orderDetail: "Order Detail",
+ orderFrom: "Your Order From",
+ orderNo: "Your Order No.",
+ findRestaurants: "Find Restaurants",
+ putUsInYourPocket: "Put us in your pocket",
+ containerText:
+ "It's all at your fingertips -- the restaurants you love. Find the right food to suit your mood, and make the first bite last. Go ahead, download us.",
+ findingAddress: "Finding address using GPS integration",
+ zonesFunctionality: "Zones functionality for Restaurants and Riders",
+ multipleRestaurants: "Multiple Restaurant adding feature",
+ realTimeOrder: "Real-time order receiving updates",
+ differentSections: "Different sections feature for promoting restaurants",
+ previousOrder: "Previous order history and adding favorite restaurants",
+ ourDelivery: "Our delivery management system is designed for the future.",
+ builtOnCommunity: "Built on community-driven principles.",
+ yourCart: "Your Cart",
+ startAdding: "Start adding items to your cart",
+ goToCheckout: "GO TO CHECKOUT",
+ activeOrders: "ACTIVE ORDERS",
+ pastOrders: "PAST ORDERS",
+ deliveringTo: "DELIVERING TO",
+ restaurantDeliver:
+ "We are asking the restaurant how long it will take to deliver your food",
+ riderDeliver:
+ "We are asking the rider how long it will take to deliver your food",
+ orderPending: "Your order is still pending",
+ areYouSure: "Are you sure?",
+ clearCartText:
+ "By changing restaurant, the items you`ve added to cart will be cleared",
+ ok: "OK",
+ cancel: "CANCEL",
+ submit: "Submit",
+ titleFavourite: "Favourites",
+ titleEmptyFav: "No Favourites Saved",
+ emptyFavDesc:
+ "You'll see all your favourites here, to make ordering even faster.",
+ emptyFavBtn: "Let's find some favourites",
+ exactLocation: "Is this your exact location?",
+ yourArea: "Enter Your Area",
+ currentLocation: "Use current location",
+ deliveryDetails: "Required details -e.g. floor/ building",
+ deliveryDetailError: "Delivery details is required",
+ currentPassword: "Current Password",
+ newPassword: "New Password",
+ deliver: "Delivery",
+ time: "Time",
+ pickup: "Pickup",
+ selectTime: "Select Time",
+ am: "AM",
+ pm: "PM",
+ set: "Set",
+ apply: "Apply",
+ applyAVoucher: "Apply a voucher",
+ readAll: "Read All",
+ readMore: "Read More",
+ demo: "Demo",
+ getQuote: "Get Quote",
+ restaurantCloseText:
+ "The restaurant is closed right now. Check out others that are open or take a look at the menu to plan for your next meal.",
+ seeOtherRestaurants: "SEE OTHER RESTAURANTS",
+ goToMenu: "Go To Menu",
+ deliveryHours: "Delivery hours",
+ about: "ABOUT",
+ reviews: "REVIEWS",
+ closedAllDay: "Closed all day",
+ minute: "Minute",
+ welcome: "Welcome!",
+ signUpOrLogin: "Sign up or log in to continue",
+ signInWithGoogle: "CONTINUE WITH GOOGLE",
+ or: "or",
+ continueWithEmail: "CONTINUE WITH EMAIL",
+ terms: "Terms and Conditions",
+ privacyPolicy: "Privacy Policy",
+ bySigningUp: "By signing up, you agree to our ",
+ and: " and ",
+ whatsYourEmail: "What's your Email?",
+ checkAccount: "We'll check if you've an account",
+ continue: "Continue",
+ invalidEmail: "Invalid Email",
+ letsGetStarted: "Let's get started!",
+ createAccount: "Create your Enatega Account",
+ firstnameErr1: "Firstname is required!",
+ firstnameErr2: "Invalid First Name!",
+ lastnameErr1: "Lastname is required!",
+ lastnameErr2: "Invalid Last Name!",
+ mobileErr1: "Phone number is required!",
+ mobileErr2: "Invalid Phone number",
+ emailErr2: "Invalid Email",
+ passwordErr1:
+ "Invalid Password. Password must contain at least 1 capital letter, 1 small letter, and 1 number.",
+ passwordErr2: "Invalid Password",
+ generalErr: "Something is missing",
+ verifyEmail: "Verify your email",
+ enterOtp: "Please enter the OTP we sent to your updated email",
+ enterOtpPhone : "Please enter the OTP we sent to your updated Phone Number",
+ invalidCode: " Invalid code, please check and enter again",
+ resendCode: "Resend code",
+ retryAfter: "Retry after",
+ loginBtn: "Login",
+ addToCart: "Add to Cart",
+ customize: "Customize",
+ optional: "OPTIONAL",
+ required: "REQUIRED",
+ specialInstructions: "Special Instructions",
+ anySpecific: "Any specific preferances? Let the restaurant know.",
+ selectVariation: "Select Variation",
+ closed: "Closed",
+ new: "NEW",
+ orderCancelled: "Your order has been cancelled",
+ orderCompleted: "Order completed successfully. Thankyou for placing order",
+ reorder: "REORDER",
+ review: "Review",
+ subTitle: "Select 1",
+ placeholder: "e.g. No mayo",
+ phoneNumMissing: "Phone Number is missing",
+ updatePhone: "Update your phone",
+ number: "number?",
+ secureAcc: "We need this to secure your account",
+ verifyPhone: "Verify your phone",
+ skipNow: "Skip now",
+ favouriteListUpdated: "Favourite list updated",
+ pendingText: "Waiting response from",
+ acceptedText: "Estimated preparation time",
+ orderLateText: "Sorry! Your order is bit late.",
+ riderPickText: "Your rider will pick it up once its ready",
+ orderIs: "Your order is",
+ orderAssigned: "assigned to the rider",
+ orderAssignedToRider:
+ "Your order is assigned to our rider, order will be picked once its ready.",
+ riderOnWay: "Your rider is on the way.",
+ orderHasBeen: "Your order has been",
+ enjoyYourMeal: "Enjoy your meal!",
+ cancelled: "Cancelled",
+ personalDetail: "Personal Detail",
+ voucherCode: "Voucher code",
+ pickUp: "Pickup",
+ warning: "warning",
+ warningText: "One or more item is not available",
+ },
+};
+export default en;
diff --git a/enatega-multivendor-web/src/translations/fr.js b/enatega-multivendor-web/src/translations/fr.js
new file mode 100644
index 0000000..f8dce3a
--- /dev/null
+++ b/enatega-multivendor-web/src/translations/fr.js
@@ -0,0 +1,216 @@
+const fr = {
+ translation: {
+ selectLanguage: "Choisir la langue",
+ saveButton: "sauvegarder",
+ footerText:
+ "Enatega est une plateforme open source de gestion des livraisons pour le avenir. Nous accordons la priorité à l innovation, à la flexibilité et à l abordabilité, et offrez une solution évolutive et personnalisable qui rationalise votre processus de livraison.",
+ footerLinkHome: "Accueil",
+ footerLinkPP: "Politique de confidentialité",
+ footerLinkTC: "Conditions générales",
+ footerEndText: "Enatega - © 2022 Tous droits réservés",
+ followUs: "Suivez-nous",
+ poweredBy: "Propulsé par",
+ linksTitle: "Liens",
+ subTotal: "Total",
+ deliveryFee: "Frais de livraison",
+ haveVoucher: "Avez-vous un bon",
+ remove: "Retirer",
+ change: "Changement",
+ taxFee: "charges fiscales",
+ total: "Total",
+ tip: "Pourboire",
+ discount: "Remise",
+ name: "prénom",
+ phone: "Téléphone",
+ email: "Email",
+ address: "Adresse",
+ changeAddress: "Changer l adresse",
+ contactInfo: "Informations de contact",
+ paymentMethod: "Mode de paiement",
+ orderBtn: "Passer la commande",
+ deliveryTime: "Heure de livraison",
+ delivery: "Livraison",
+ searchRestaurantPlaceholder: "Recherche de restaurants et de cuisines",
+ allRestaurant: "Tous les restaurants",
+ pending: "En attente",
+ accepted: "Accepté(e)",
+ assigned: "Assigné(e)",
+ picked: "Ramassé(e)",
+ delivered: "Livré(e)",
+ completed: "Terminé(e)",
+ titleOrders: "Mes commandes",
+ titleProfile: "Profil",
+ titleHelp: "Aidez-moi",
+ titleSettings: "Setting",
+ titleChat: "Bavarder",
+ titleLogout: "Connectez - Out",
+ passwordInfo: "Informations de mot de passe",
+ myAddresses: "Mes adresses",
+ edit: "Modifier",
+ creditDebitCard: "Carte de crédit / débit",
+ paypal: "Paypal",
+ cash: "Espèces / Liquide",
+ deliverTo: "Livrer à",
+ ASSIGNED: "attribué",
+ PENDING: "en attente",
+ PICKED: "choisi",
+ ACCEPTED: "accepté",
+ DELIVERED: "livré",
+ COMPLETED: "terminé",
+ orderPlaced: "Commande passée",
+ "Order ID": "Numéro de commande",
+ "Order status: PENDING": "Suivi de commande: En attente",
+ "Order status: ACCEPTED": "Statut de la commande : ACCEPTÉ",
+ "Order status: ASSIGNED": "Statut de la commande : ATTRIBUÉ",
+ "Order status: PICKED": "Statut de la commande : CHOISI",
+ "Order status: DELIVERED": "Statut de la commande : LIVRÉ",
+ "Order status: Order Placed": "Statut de la commande : Commande passée",
+ deliveryAddress: "Adresse de livraison",
+ orderDetail: "Détails de la commande",
+ orderFrom: "Votre commande de",
+ orderNo: "Votre numéro de commande",
+ findRestaurants: "Trouver des restaurants",
+ putUsInYourPocket: "Mettez-nous dans votre poche",
+ containerText:
+ "Tout est à portée de main - les restaurants que vous adorez. Trouvez la nourriture idéale pour satisfaire vos envies et faites durer le plaisir dès la première bouchée. Allez-y, téléchargez-nous.",
+ findingAddress: "Trouver une adresse en utilisant l'intégration GPS",
+ zonesFunctionality:
+ "Fonctionnalité de zones pour les restaurants et les livreurs",
+ multipleRestaurants: "Fonctionnalité d'ajout de plusieurs restaurants",
+ realTimeOrder: "Mises à jour en temps réel de la réception des commandes",
+ differentSections:
+ "Fonctionnalité de différentes sections pour promouvoir les restaurants",
+ previousOrder:
+ "Historique des commandes précédentes et ajout de restaurants favoris",
+ ourDelivery:
+ "Notre système de gestion des livraisons est conçu pour l'avenir",
+ builtOnCommunity: "Basé sur des principes communautaires",
+ yourCart: "Votre panier",
+ startAdding: "Commencez à ajouter des articles à votre panier",
+ goToCheckout: "ALLER À LA CAISSE",
+ activeOrders: "Commandes en cours",
+ pastOrders: "Commandes passées",
+ deliveringTo: "Livraison à",
+ restaurantDeliver:
+ "Nous demandons au restaurant combien de temps il faudra pour livrer votre nourriture.",
+ riderDeliver:
+ "Nous demandons au livreur combien de temps il faudra pour livrer votre nourriture",
+ orderPending: "Votre commande est toujours en attente",
+ areYouSure: "Êtes-vous sûr ?",
+ clearCartText:
+ "En changeant de restaurant, les articles que vous avez ajoutés au panier seront supprimés",
+ ok: "OK",
+ cancel: "ANNULER",
+ submit: "Soumettre",
+ titleFavourite: "favorite",
+ titleEmptyFav: "Aucun favori enregistré",
+ emptyFavDesc:
+ "Vous verrez tous vos favoris ici, pour rendre la commande encore plus rapide.",
+ emptyFavBtn: "Trouvons quelques favoris",
+ exactLocation: "Est-ce votre emplacement exact ?",
+ yourArea: "Entrez votre région",
+ currentLocation: "Utiliser l'emplacement actuel",
+ deliveryDetails: "Détails requis -e.g. étage / bâtiment",
+ deliveryDetailError: "Les détails de livraison sont requis",
+ currentPassword: "Mot de passe actuel",
+ newPassword: "Nouveau mot de passe",
+ deliver: "Livraison",
+ time: "Temps",
+ pickup: "Ramassage",
+ selectTime: "Sélectionner l'heure",
+ am: "AM",
+ pm: "PM",
+ set: "Définir",
+ apply: "Appliquer",
+ applyAVoucher: "Appliquer un bon",
+ readAll: "Tout lire",
+ readMore: "Lire plus",
+ demo: "Démo",
+ getQuote: "Obtenir un devis",
+ restaurantCloseText:
+ "Le restaurant est actuellement fermé. Découvrez les autres restaurants ou consultez le menu pour planifier votre prochain repas.",
+ seeOtherRestaurants: "VOIR LES AUTRES RESTAURANTS",
+ goToMenu: "Aller au menu",
+ deliveryHours: "Heures de livraison",
+ about: "À PROPOS DE",
+ reviews: "AVIS",
+ closedAllDay: "Fermé toute la journée",
+ minute: "Minute",
+ welcome: "Bienvenue !",
+ signUpOrLogin: "Inscrivez-vous ou connectez-vous pour continuer",
+ signInWithGoogle: "CONTINUER AVEC GOOGLE",
+ or: "ou",
+ continueWithEmail: "CONTINUER AVEC EMAIL",
+ terms: "Conditions générales",
+ privacyPolicy: "Politique de confidentialité",
+ bySigningUp: "En vous inscrivant, vous acceptez notre ",
+ and: " et ",
+ whatsYourEmail: "Quelle est votre adresse e-mail ?",
+ checkAccount: "Nous vérifierons si vous avez un compte",
+ continue: "Continuer",
+ invalidEmail: "Adresse e-mail invalide",
+ letsGetStarted: "Commençons !",
+ createAccount: "Créez votre compte Enatega",
+ firstnameErr1: "Le prénom est requis !",
+ firstnameErr2: "Prénom invalide !",
+ lastnameErr1: "Le nom de famille est requis !",
+ lastnameErr2: "Nom de famille invalide !",
+ mobileErr1: "Le numéro de téléphone est requis !",
+ mobileErr2: "Numéro de téléphone invalide !",
+ emailErr2: "E-mail invalide",
+ passwordErr1:
+ "Mot de passe invalide. Le mot de passe doit contenir au moins 1 lettre majuscule, 1 lettre minuscule et 1 chiffre.",
+ passwordErr2: "Mot de passe invalide",
+ generalErr: "Quelque chose manque",
+ verifyEmail: "Vérifiez votre e-mail",
+ enterOtp:
+ "Veuillez entrer le code OTP que nous avons envoyé à votre e-mail mis à jour",
+ enterOtpPhone : "Veuillez entrer le code OTP que nous avons envoyé à votre numéro de numéro mis à jour",
+ invalidCode: "Code invalide, veuillez vérifier et entrer à nouveau",
+ resendCode: "Renvoyer le code",
+ retryAfter: "Réessayer après",
+ loginBtn: "S'identifier",
+ addToCart: "Ajouter au panier",
+ customize: "Personnaliser",
+ optional: "Facultatif",
+ required: "Obligatoire",
+ specialInstructions: "Instructions spéciales",
+ anySpecific:
+ "Des préférences spécifiques ? Faites-le savoir au restaurant.",
+ selectVariation: "Sélectionner la variation",
+ closed: "Fermé",
+ new: "NOUVEAU",
+ orderCancelled: "Votre commande a été annulée",
+ orderCompleted:
+ "Commande complétée avec succès. Merci d'avoir passé commande",
+ reorder: "RECOMMANDER",
+ review: "Critique",
+ subTitle: "Sélectionner 1",
+ placeholder: "par exemple, sans mayonnaise",
+ phoneNumMissing: "Numéro de téléphone manquant",
+ updatePhone: "Mettez à jour votre téléphone",
+ number: "numéro ?",
+ secureAcc: "Nous avons besoin de ceci pour sécuriser votre compte",
+ verifyPhone: "Vérifiez votre téléphone",
+ skipNow: "Passer maintenant",
+ favouriteListUpdated: "Liste de favoris mise à jour",
+ pendingText: "En attente d'une réponse de",
+ acceptedText: "Temps de préparation estimé",
+ orderLateText: "Désolé ! Votre commande est un peu en retard.",
+ riderPickText: "Votre livreur la récupérera une fois prête.",
+ orderIs: "Votre commande est",
+ orderAssigned: "Assignée au livreur",
+ orderAssignedToRider:
+ "Votre commande a été assignée à notre livreur, elle sera récupérée une fois prête.",
+ riderOnWay: "Votre livreur est en chemin.",
+ orderHasBeen: "Votre commande a été",
+ enjoyYourMeal: "Bon appétit !",
+ cancelled: "Annulée",
+ personalDetail: "Détail personnel",
+ voucherCode: "Code de réduction",
+ pickUp: "Ramassage",
+ warning: "Avertissement",
+ warningText: "Un ou plusieurs éléments ne sont pas disponibles",
+ },
+};
+export default fr;
diff --git a/enatega-multivendor-web/src/translations/km.js b/enatega-multivendor-web/src/translations/km.js
new file mode 100644
index 0000000..34ee96b
--- /dev/null
+++ b/enatega-multivendor-web/src/translations/km.js
@@ -0,0 +1,214 @@
+const km = {
+ translation: {
+ selectLanguage: "ជ្រើសរើសភាសា",
+ saveButton: "រក្សាទុក",
+ footerText:
+ "Enatega គឺជាវេទិកាគ្រប់គ្រងការចែកចាយប្រភពបើកចំហសម្រាប់ អនាគត។ យើងផ្តល់អាទិភាពដល់ការច្នៃប្រឌិត ភាពបត់បែន និងតម្លៃសមរម្យ។ និងផ្តល់ជូននូវដំណោះស្រាយដែលអាចធ្វើមាត្រដ្ឋានបាន និងអាចប្ដូរតាមបំណងបាន ដែលសម្រួលដល់ដំណើរការរបស់អ្នក។ ដំណើរការចែកចាយ។",
+ footerLinkHome: "ទំព័រដើម",
+ footerLinkPP: "គោលគ្រឿងបទនិងលក្ខខណ្ឌ",
+ footerLinkTC: "លក្ខខណ្ឌ និងលក្ខណៈ",
+ footerEndText: "Enatega - © 2022 រក្សាសិទ្ធិទាំងអស់",
+ followUs: "តាមដានពួកយើង",
+ poweredBy: "ដោនឡូតដោយ",
+ linksTitle: "តំណ",
+ subTotal: "សរុបរង",
+ deliveryFee: "ថ្លៃសេវាដឹកជញ្ជូន",
+ haveVoucher: "តើអ្នកមានប័ណ្ណទូទាត់ទេ?",
+ remove: "យកចេញ",
+ change: "ផ្លាស់ប្តូរ",
+ taxFee: "ការគិតពន្ធ",
+ total: "សរុប",
+ tip: "គុណភាព",
+ discount: "បញ្ចុះតម្លៃ",
+ name: "ឈ្មោះ",
+ phone: "ទូរស័ព្ទ",
+ email: "អ៊ីមែល",
+ address: "អាសយដ្ឋាន",
+ changeAddress: "ផ្លាស់ប្តូរអាសយដ្ឋាន",
+ contactInfo: "ព័ត៌មានទំនាក់ទំនង",
+ paymentMethod: "វិធីសាស្រ្តទូទាត់",
+ orderBtn: "ដាក់បញ្ជាទិញ",
+ deliveryTime: "ពេលវេលាដឹកជញ្ជូន",
+ delivery: "ការដឹកជញ្ជូន",
+ searchRestaurantPlaceholder: "ស្វែងរកភោជនីយដ្ឋាន និងម្ហូប",
+ allRestaurant: "ភោជនីយដ្ឋានទាំងអស់។",
+ pending: "កំពុងរង់ចាំ",
+ accepted: "បានទទួលយក",
+ assigned: "បានបញ្ជាក់",
+ picked: "បានយក",
+ delivered: "បានដឹកជញ្ជូន",
+ completed: "បានបញ្ចប់",
+ titleOrders: "ការបញ្ជាទិញរបស់ខ្ញុំ",
+ titleProfile: "ប្រវត្តិរូប",
+ titleSettings: "ការកំណត់",
+ titleHelp: "ជំនួយ",
+ titleChat: "ជជែក",
+ titleLogout: "ចាកចេញ",
+ passwordInfo: "ព័ត៌មានពាក្យសម្ងាត់",
+ myAddresses: "អាសយដ្ឋានរបស់ខ្ញុំ",
+ edit: "កែប្រែ",
+ creditDebitCard: "ប័ណ្ណឥណទាន / ប័ណ្ណសម្រាប់បង់ប្រាក់",
+ paypal: "ប៉ាយប៉ាល់",
+ cash: "សាច់ប្រាក់",
+ deliverTo: "ដឹកជញ្ជូនទៅ",
+ ASSIGNED: "បានគោរព",
+ PENDING: "កំពុងរងចាំ",
+ PICKED: "បានយក",
+ ACCEPTED: "បានទទួលយក",
+ DELIVERED: "បានដឹកជញ្ជូន",
+ COMPLETED: "បានបញ្ចប់",
+ orderPlaced: "បានបញ្ជាទិញ",
+ "Order ID": "លេខលំដាប់",
+ "Order status: PENDING": "ស្ថានភាពការបញ្ជាទិញ៖ កំពុងរង់ចាំ",
+ "Order status: ACCEPTED": "ស្ថានភាពការបញ្ជាទិញ៖ យល់ព្រម",
+ "Order status: ASSIGNED": "ស្ថានភាពបញ្ជាទិញ៖ បានកំណត់",
+ "Order status: PICKED": "ស្ថានភាពការបញ្ជាទិញ៖ ជ្រើសរើស",
+ "Order status: DELIVERED": "ស្ថានភាពការបញ្ជាទិញ៖ ប្រគល់",
+ "Order status: Order Placed": "ស្ថានភាពបញ្ជាទិញ៖ បញ្ជាទិញ",
+ deliveryAddress: "អាស័យដ្ឋានសំរាប់ការដឹកជញ្ជូន",
+ orderDetail: "លំអិតលំដាប់",
+ orderFrom: "ការបញ្ជាទិញរបស់អ្នកពី",
+ orderNo: "លេខកូដបញ្ជាទិញរបស់អ្នក",
+ findRestaurants: "ស្វែងរកភោជនីយដ្ឋាន",
+ putUsInYourPocket: "ដាក់យើងក្នុងការណែនាំរបស់អ្នក។",
+ containerText:
+ "ទាំងអស់គឺនៅក្នុងជំហានរបស់អ្នក - ភោជនីយដ្ឋានដែលអ្នកចូលចិត្ត។ ស្វែងរកអាហារត្រឹមត្រូវដើម្បីប្រវត្តិរូបសង្ខេបរបស់អ្នក និងធ្វើឲ្យភាពជឿជាក់ដែលចាប់ផ្តើមត្រូវនៅមកហើយ។ ទៅមើលអ្នកអាចទាញយកយើងហើយតែសូម។",
+ findingAddress: "រកអាសយដ្ឋានដោយប្រើប្រាស់ការបញ្ចូលទីតាំង GPS",
+ zonesFunctionality: "អនុគមន៍តំបន់សម្រាប់ភោជនីយដ្ឋាន និងអ្នកបើកបរ",
+ multipleRestaurants: "មុខងារបន្ថែមភោជនីយដ្ឋានច្រើន",
+ realTimeOrder: "ការធ្វើបច្ចុប្បន្នភាពការទទួលបានការអាប់ដេតនាពេលវេលាពេលព្រឹក",
+ differentSections: "មុខងារជំពាក់សំណួរសំខាន់សម្រាប់ការអាប់ដេតភោជនីយដ្ឋាន",
+ previousOrder: "ប្រវត្តិការបញ្ជាទិញចាស់ និងបន្ថែមភោជនីយដ្ឋានដែលចូលចិត្ត",
+ ourDelivery:
+ "ប្រព័ន្ធគ្រប់គ្រងការដឹកជញ្ជូនរបស់យើងត្រូវបានរចនាសម្រាប់អនាគតពីអសន្និរក",
+ builtOnCommunity: "បានស្នើរស្នេហ៍លើប្រភេទគោលបំណងដែលបានទាក់ទងដោយសហគម",
+ yourCart: "រទេះរបស់អ្នក",
+ startAdding: "ចាប់ផ្តើមបន្ថែមធាតុទៅក្នុងរទេះរបស់អ្នក",
+ goToCheckout: "ទៅកាន់ការបង់ប្រាក់",
+ activeOrders: "ប្រវត្តិការដែលកំពុងដំណើរការ",
+ pastOrders: "ប្រវត្តិការណែនាំចាស់",
+ deliveringTo: "កំពង់ទុកទៅ",
+ restaurantDeliver:
+ "យើងខុសស្នើសុំទៅកាន់ភោជនីយដ្ឋានដើម្បីស្វែងយល់ថាតើការដឹកជញ្ជូនអាហាររបស់អ្នកនឹងចំនួនប៉ុន្មាន។",
+ riderDeliver:
+ "យើងខុសស្នើសុំទៅកាន់អ្នកបើកបរដើម្បីស្វែងយល់ថាតើការដឹកជញ្ជូនអាហាររបស់អ្នកនឹងចំនួនប៉ុន្មាន។",
+ orderPending: "ការបញ្ជាទិញរបស់អ្នកនៅលើកំពុងរងចាំ។",
+ areYouSure: "តើអ្នកប្រាកដឬទេ?",
+ clearCartText:
+ "ដោយផ្លាស់ប្តូរភោជនីយដ្ឋានភ្ជាប់, វានឹងត្រូវបានលុបចោលពីកន្លែងទំនិញដែលអ្នកបានបន្ថែមទៅក្នុងរទេះ",
+ ok: "ព្រម",
+ cancel: "បោះបង់",
+ submit: "ដាក់ស្នើ",
+ titleFavourite: "ចូលចិត្ត",
+ titleEmptyFav: "មិនមានរក្សាទុកសំណព្វ",
+ emptyFavDesc:
+ "អ្នកនឹងឃើញចំណូលចិត្តទាំងអស់របស់អ្នកនៅទីនេះដើម្បីធ្វើឱ្យការបញ្ជាទិញកាន់តែលឿន។",
+ emptyFavBtn: "តោះស្វែងរកចំនូលចិត្តមួយចំនួន",
+ exactLocation: "តើនេះគឺជាទីតាំងរបស់អ្នកដែរទេ?",
+ yourArea: "បញ្ចូលតំបន់របស់អ្នក",
+ currentLocation: "ប្រើទីតាំងបច្ចុប្បន្ន",
+ deliveryDetails: "ព័ត៌មានលម្អិតចាំបាច់ -e. ជាន់ / អាគារ",
+ deliveryDetailError: "តម្រូវឲ្យមានព័ត៌មានការដឹកជូន",
+ currentPassword: "ពាក្យសម្ងាត់បច្ចុប្បន្ន",
+ newPassword: "ពាក្យសម្ងាត់ថ្មី",
+ deliver: "ដឹកជូន",
+ time: "ពេល",
+ pickup: "ជ្រើសរើសពេល",
+ selectTime: "ព្រឹក",
+ am: "ព្រឹក",
+ pm: "ល្ងាច",
+ set: "កំណត់",
+ apply: "អនុវត្ត",
+ applyAVoucher: "អនុវត្តប័ណ្ណ",
+ readAll: "អានទាំងអស់",
+ readMore: "អានបន្ត",
+ demo: "បង្ហាញលក្ខណៈ",
+ getQuote: "ទទួលសេចក្ដីបញ្ជា",
+ restaurantCloseText:
+ "ភោជនីយដ្ឋាននេះបិទហើយ។ ពិភាក្សាផ្សារផ្សេងទៀតដែលត្រូវបានបើកឬទិញស្វែងរកមុខម្ហូបដូចជាមូលហេតុអាហាររបស់អ្នកបន្តឬសិស្សបន្តរបស់អ្នក។",
+ seeOtherRestaurants: "មើលភោជនីយដ្ឋានផ្សេងទៀត",
+ goToMenu: "ទៅកាន់ម៉ឺន",
+ deliveryHours: "ម៉ោងដឹកជូន",
+ about: "អំពី",
+ reviews: "ពិនិត្យឡើង",
+ closedAllDay: "បិទលក់រាល់ថ្ងៃ",
+ minute: "នាទី",
+ welcome: "សូមស្វាគមន៍!",
+ signUpOrLogin: "ចុះឈ្មោះ ឬ ចូលគណនីដើម្បីបន្ត",
+ signInWithGoogle: "បន្តជាមួយគម្រោង Google",
+ or: "ឬ",
+ continueWithEmail: "បន្តជាមួយអ៊ីម៉ែល",
+ terms: "លក្ខខណ្ឌ និង លក្ខណៈអនុញ្ញាត",
+ privacyPolicy: "គោលការណ៍ភាពឯកជន",
+ bySigningUp: "ដោយការចុះឈ្មោះអ្នកទទួលស្គាល់ថាអ្នកទទួលយកទិន្នន័យរបស់យើងយើង",
+ and: " និង ",
+ whatsYourEmail: "អ្នកមានអ៊ីមែលអ្វីខ្លះ?",
+ checkAccount: "យើងនឹងពិនិត្យមើលថាអ្នកមានគណនីឬឬទេ",
+ continue: "បន្ត",
+ invalidEmail: "អ៊ីម៉ែលមិនត្រឹមត្រូវ",
+ letsGetStarted: "តោះចាប់ផ្តើម!",
+ createAccount: "បង្កើតគណនីរបស់អ្នកនៅលើ Enatega",
+ firstnameErr1: "ទីតាំងគោលត្រាចាំបាច់!",
+ firstnameErr2: "ឈ្មោះជានិច្ចរាយ!",
+ lastnameErr1: "នាមត្រកូលត្រាចាំបាច់!",
+ lastnameErr2: "នាមជានិច្ចរាយ!",
+ mobileErr1: "លេខទូរស័ព្ទត្រូវបានចាំបាច់!",
+ mobileErr2: "លេខទូរស័ព្ទមិនត្រឹមត្រូវ!",
+ emailErr2: "អ៊ីម៉ែលមិនត្រឹមត្រូវ",
+ passwordErr1:
+ "លេខសំងាត់មិនត្រឹមត្រូវ។ លេខសំងាត់ត្រូវតែមានតួអក្សរធំ 1 តួអក្សរតូច 1 និងលេខ 1 យ៉ាងតិច។",
+ passwordErr2: "លេខសំងាត់មិនត្រឹមត្រូវ",
+ generalErr: "មានអ្វីខុសប្រូហ្វាល",
+ verifyEmail: "ធ្វើអោយអ៊ីម៉ែលរបស់អ្នកត្រូវបានផ្ទៀងផ្ទាត់",
+ enterOtp: "សូមបញ្ចូល OTP ដែលយើងបានផ្ញើទៅអ៊ីម៉ែលរបស់អ្នកដោយប្រើទម្រង់ថ្មី",
+ enterOtpPhone : "សូមបញ្ចូល OTP ដែលយើងបានផ្ញើទៅអ៊ីម៉ែលរបស់អ្នកដោយប្រើទម្រង់ថ្មី",
+ invalidCode: "កូដមិនត្រឹមត្រូវ។ សូមពិនិត្យមើលហើយបញ្ចូលម្ដងទៀត",
+ resendCode: "ផ្ញើម្ដងទៀតកូដ",
+ retryAfter: "ព្រមានម្ដងទៀត បន្ទាប់ពី",
+ loginBtn: "ចូល",
+ addToCart: "បន្ថែមទៅកន្ត្រក",
+ customize: "កំណត់ប្រៀបធៀប",
+ optional: "ជ្រើសរើសបាន",
+ required: "ត្រូវការ",
+ specialInstructions: "ការណែនាំពិសេស",
+ anySpecific:
+ "មានចង់អនុញ្ញាតអ្វីមួយទៀតដែរទេ? ឲ្យមើលពិសេសទៅបានគឺបាន។",
+ selectVariation: "ជ្រើសរើសការផ្លាស់ប្ដូរ",
+ closed: "បិទ",
+ new: "ថ្មី",
+ orderCancelled: "ការបញ្ជាទិញរបស់អ្នកត្រូវបានលុបចោល",
+ orderCompleted:
+ "ការបញ្ជាទិញបានបញ្ចប់ដោយជោគជ័យ។ សូមអរគុណចំពោះការបញ្ជាទិញរបស់អ្នក",
+ reorder: "កម្មវិធីការបញ្ជាទិញឡើងវិញ",
+ review: "ពិនិត្យឡើងវិញ",
+
+ subTitle: "ជ្រើសរើស ១",
+ placeholder: "ឧបករណ៍ មិនមាចវ៉ាអ៊ី",
+ phoneNumMissing: "លេខទូរស័ព្ទបានខុសបាត់",
+ updatePhone: "ធ្វើបច្ចុប្បន្នភាពទូរស័ព្ទរបស់អ្នក",
+ number: "លេខទំនេរ?",
+ secureAcc: "យើងត្រូវការវាយបញ្ចូលនេះដើម្បីបង្កើតគណនីរបស់អ្នក",
+ verifyPhone: "ផ្ទៀងផ្ទាត់ទូរស័ព្ទរបស់អ្នក",
+ skipNow: "រំលងឥឡូវនេះ",
+ favouriteListUpdated: "បានធ្វើឲ្យបានបន្ថែមចំនួនរបស់អ្នកបញ្ជាទិញបានទំនិញទើប",
+ pendingText: "កំពុងរង់ចាំការឆ្លើយពី",
+ acceptedText: "ពេលធ្វើរការពិសេស",
+ orderLateText: "សុំទោស! ការបញ្ជាទិញរបស់អ្នកមានតម្រូវជាមួយនៅរយះពេល។",
+ riderPickText:
+ "អ្នកប៊ូរសំអាតហើយនឹងយកវាឡើងសំរាប់អ្នកនៅពេលដែលវារួចហើយ។",
+ orderIs: "ការបញ្ជាទិញរបស់អ្នកគឺ",
+ orderAssigned: "បានផ្ដល់ទៅមកអ្នកប៊ូរ",
+ orderAssignedToRider:
+ "ការបញ្ជាទិញរបស់អ្នកត្រូវបានផ្ដល់ទៅលើបដិសណ្ឋានរបស់យើងហើយនឹងត្រូវបានយកឡើងសំរាប់អ្នកនៅពេលដែលវារួចហើយ។",
+ riderOnWay: "អ្នកប៊ូររបស់អ្នកគឺនៅលើផ្លូវ។",
+ orderHasBeen: "ការបញ្ជាទិញរបស់អ្នកត្រូវបាន",
+ enjoyYourMeal: "សូមស្រស់ស្អាត!",
+ cancelled: "បោះបង់",
+ personalDetail: "ព័ត៌មានផ្ទាល់ខ្លួន",
+ voucherCode: "លេខកូដប៉ាន់ស្សារ",
+ pickUp: "យកមកដល់",
+ warning: "ប្រុងប្រយ័ត្ន",
+ warningText: "មានមួយឬច្រើនធាតុមួយចំនួនមិនមានទេ",
+ },
+};
+export default km;
diff --git a/enatega-multivendor-web/src/translations/zh.js b/enatega-multivendor-web/src/translations/zh.js
new file mode 100644
index 0000000..5b4489a
--- /dev/null
+++ b/enatega-multivendor-web/src/translations/zh.js
@@ -0,0 +1,204 @@
+const zh = {
+ translation: {
+ selectLanguage: "选择语言",
+ saveButton: "节省",
+ footerText:
+ "Enatega 是一个开源交付管理平台 未来。我们优先考虑创新、灵活性和可承受性,并提供可扩展、可定制的解决方案,简化您的 交付流程",
+ footerLinkHome: "主页",
+ footerLinkPP: "隐私政策",
+ footerLinkTC: "条款和条件",
+ footerEndText: "Enatega - © 2022 版权所有",
+ followUs: "关注我们",
+ poweredBy: "由...提供动力",
+ linksTitle: "链接",
+ subTotal: "小计",
+ deliveryFee: "快递费",
+ haveVoucher: "你有优惠券吗",
+ remove: "去掉",
+ change: "更改",
+ taxFee: "税费",
+ total: "总",
+ tip: "小费",
+ discount: "折扣",
+ name: "名称",
+ phone: "电话",
+ email: "电子邮件",
+ address: "地址",
+ changeAddress: "更改地址",
+ contactInfo: "联系信息",
+ paymentMethod: "付款方法",
+ orderBtn: "下订单",
+ deliveryTime: "送货时间",
+ delivery: "送货",
+ searchRestaurantPlaceholder: "搜索餐厅和菜系",
+ allRestaurant: "所有餐厅",
+ pending: "待定",
+ accepted: "已接受",
+ assigned: "已分配",
+ picked: "已接",
+ delivered: "已送达",
+ completed: "已完成",
+ titleOrders: "我的订单",
+ titleProfile: "轮廓",
+ titleHelp: "救命",
+ titleSettings: "设置",
+ titleChat: "聊",
+ titleLogout: "登出",
+ passwordInfo: "密码信息",
+ myAddresses: "我的地址",
+ edit: "编辑",
+ creditDebitCard: "信用卡 / 借记卡",
+ paypal: "贝宝",
+ cash: "现金",
+ deliverTo: "递送至",
+ ASSIGNED: "已分配",
+ PENDING: "待定",
+ PICKED: "已取货",
+ ACCEPTED: "已接受",
+ DELIVERED: "已交付",
+ COMPLETED: "已完成",
+ orderPlaced: "订单已下达",
+ "Order ID": "订单号",
+ "Order status: PENDING": "订单状态:待处理",
+ "Order status: ACCEPTED": "订单状态:已接受",
+ "Order status: ASSIGNED": "订单状态:已分配",
+ "Order status: PICKED": "订单状态:已挑选",
+ "Order status: DELIVERED": "订单状态:已交付",
+ "Order status: Order Placed": "订单状态:已下订单",
+ deliveryAddress: "邮寄地址",
+ orderDetail: "订单详情",
+ orderFrom: "您的订单来自",
+ orderNo: "您的订单号",
+ findRestaurants: "寻找餐厅",
+ putUsInYourPocket: "把我们装进你的口袋里",
+ containerText:
+ "一切尽在掌握之中 - 你喜爱的餐厅。找到适合你心情的美食,让第一口持续留香。来吧,下载我们",
+ findingAddress: "使用GPS集成找地址",
+ zonesFunctionality: "针对餐厅和骑手的区域功能",
+ multipleRestaurants: "多个餐厅添加功能",
+ realTimeOrder: " 实时订单接收更新",
+ differentSections: "为推广餐厅设置不同板块功能",
+ previousOrder: "查看以往订单历史和添加喜爱餐厅",
+ ourDelivery: "我们的送货管理系统是为未来设计的",
+ builtOnCommunity: "基于社区驱动的原则构建",
+ yourCart: "您的购物车",
+ startAdding: "开始将商品加入购物车",
+ goToCheckout: "去结账",
+ activeOrders: "活跃订单",
+ pastOrders: "历史订单",
+ deliveringTo: "送货至",
+ restaurantDeliver: "我们正在询问餐厅送餐需要多长时间",
+ riderDeliver: "我们正在询问骑手送餐需要多长时间",
+ orderPending: "您的订单仍在等待中",
+ areYouSure: "你确定吗?",
+ clearCartText: "更改餐厅将清除您添加到购物车的物品",
+ ok: "好的",
+ cancel: "取消",
+ submit: "提交",
+ titleFavourite: "喜爱",
+ titleEmptyFav: "没有收藏夹",
+ emptyFavDesc: "您会在这里看到所有收藏夹,以加快订购速度。",
+ emptyFavBtn: "让我们找到一些最爱",
+ exactLocation: "这是您的确切位置吗?",
+ yourArea: "输入您的地区",
+ currentLocation: "使用当前位置",
+ deliveryDetails: "必填详细信息-例如 楼层/建筑物",
+ deliveryDetailError: "需要送货详情",
+ currentPassword: "当前密码",
+ newPassword: "新密码",
+ deliver: "送货",
+ time: "时间",
+ pickup: "取货",
+ selectTime: "选择时间",
+ am: "上午",
+ pm: "下午",
+ set: "设置",
+ apply: "申请",
+ applyAVoucher: "使用优惠券",
+ readAll: "阅读全部",
+ readMore: "阅读更多",
+ demo: "演示",
+ getQuote: "获取报价",
+ restaurantCloseText:
+ "该餐厅目前已关闭。查看其他开放的餐厅或浏览菜单,计划下一餐。",
+ seeOtherRestaurants: "查看其他餐厅",
+ goToMenu: "进入菜单",
+ deliveryHours: "送货时间",
+ about: "关于",
+ reviews: "评价",
+ closedAllDay: "全天关闭",
+ minute: "分钟",
+ welcome: "欢迎!",
+ signUpOrLogin: "注册或登录以继续",
+ signInWithGoogle: "继续使用 Google",
+ or: "或者",
+ continueWithEmail: "继续使用电子邮件",
+ terms: "条款和条件",
+ privacyPolicy: "隐私政策",
+ bySigningUp: "通过注册,您同意我们的",
+ and: " 和 ",
+ whatsYourEmail: "你的电子邮件是什么?",
+ checkAccount: "我们会检查你是否有账户",
+ continue: "继续",
+ invalidEmail: "无效的电子邮件",
+ letsGetStarted: "让我们开始吧!",
+ createAccount: "创建您的 Enatega 账户",
+ firstnameErr1: "名字是必填项!",
+ firstnameErr2: "无效的名字!",
+ lastnameErr1: "姓氏是必填项!",
+ lastnameErr2: "无效的姓氏!",
+ mobileErr1: "电话号码是必填项!",
+ mobileErr2: "无效的电话号码!",
+ emailErr2: "无效的电子邮件",
+ passwordErr1:
+ "无效的密码。密码必须至少包含1个大写字母、1个小写字母和1个数字。",
+ passwordErr2: "无效的密码",
+ generalErr: "有东西缺失",
+ verifyEmail: "验证您的电子邮件",
+ enterOtp: "请输入我们发送到您更新的电子邮件的OTP",
+ enterOtpPhone : "请输入我们发送到您更新的电话号码的OTP",
+ invalidCode: "无效的代码,请检查并重新输入",
+ resendCode: "重新发送代码",
+ retryAfter: "稍后重试",
+ loginBtn: "登录",
+ addToCart: "添加到购物车",
+ customize: "自定义",
+ optional: "可选的",
+ required: "必需的",
+ specialInstructions: "特别说明",
+ anySpecific: "有什么特别的喜好吗?告诉餐厅。",
+ selectVariation: "选择变体",
+ closed: "关闭",
+ new: "新",
+ orderCancelled: "您的订单已取消",
+ orderCompleted: "订单已成功完成。感谢您的订购",
+ reorder: "重新订购",
+ review: "评论",
+ subTitle: "选择 1",
+ placeholder: "例如,不要蛋黄酱",
+ phoneNumMissing: "电话号码缺失",
+ updatePhone: "更新您的电话",
+ number: "号码?",
+ secureAcc: "我们需要这个来保护您的账户",
+ verifyPhone: "验证您的电话",
+ skipNow: "现在跳过",
+ favouriteListUpdated: "收藏列表已更新",
+ pendingText: "等待来自的回复",
+ acceptedText: "预计准备时间",
+ orderLateText: "抱歉!您的订单有点晚了。",
+ riderPickText: "您的骑手会在准备好后取货。",
+ orderIs: "您的订单是",
+ orderAssigned: "分配给骑手",
+ orderAssignedToRider: "您的订单已分配给我们的骑手,订单准备好后将被取货。",
+ riderOnWay: "您的骑手正在路上。",
+ orderHasBeen: "您的订单已",
+ enjoyYourMeal: "享用您的餐点!",
+ cancelled: "已取消",
+ personalDetail: "个人详情",
+ voucherCode: "优惠码",
+ pickUp: "取件",
+ warning: "警告",
+ warningText: "一个或多个项目不可用",
+ },
+};
+export default zh;
diff --git a/enatega-multivendor-web/src/utils/analytics.js b/enatega-multivendor-web/src/utils/analytics.js
new file mode 100644
index 0000000..257da3f
--- /dev/null
+++ b/enatega-multivendor-web/src/utils/analytics.js
@@ -0,0 +1,70 @@
+/* eslint-disable import/no-anonymous-default-export */
+import amplitude from "amplitude-js";
+//import ConfigurableValues from "../config/constants";
+let isInitialized = false;
+// const { AMPLITUDE_API_KEY } = ConfigurableValues();
+const { AMPLITUDE_API_KEY } = "2114f5db4c014dc7ad4ed2ad747341b5";
+const apiKey = AMPLITUDE_API_KEY;
+
+export const events = {
+ USER_LOGGED_IN: "USER_LOGGED_IN",
+ USER_CREATED_ACCOUNT: "USER_CREATED_ACCOUNT",
+ USER_LOGGED_OUT: "USER_LOGGED_OUT",
+ ADD_TO_CART: "ADD_TO_CART",
+ ORDER_PLACED: "ORDER_PLACED",
+ NAVIGATE_TO_HOME: "NAVIGATE_TO_HOME",
+ NAVIGATE_TO_FAVOURITES: "NAVIGATE_TO_FAVOURITES",
+ NAVIGATE_TO_FORGOT_PASSWORD: "NAVIGATE_TO_FORGOT_PASSWORD",
+ NAVIGATE_TO_RESTAURANTS: "NAVIGATE_TO_RESTAURANTS",
+ NAVIGATE_TO_RESTAURANTS_DETAIL: "NAVIGATE_TO_RESTAURANTS_DETAIL",
+ NAVIGATE_TO_ORDER: "NAVIGATE_TO_ORDER",
+ NAVIGATE_TO_ORDER_DETAIL: "NAVIGATE_TO_ORDER_DETAIL",
+ NAVIGATE_TO_TERMS: "NAVIGATE_TO_TERMS",
+ NAVIGATE_TO_PRIVACY_POLICY: "NAVIGATE_TO_PRIVACY_POLICY",
+ NAVIGATE_TO_PROFILE: "NAVIGATE_TO_PROFILE",
+ NAVIGATE_TO_STRIPE: "NAVIGATE_TO_STRIPE",
+ NAVIGATE_TO_PAYPAL: "NAVIGATE_TO_PAYPAL",
+};
+export async function initialize() {
+ if (isInitialized || !apiKey) {
+ return;
+ }
+
+ await amplitude.getInstance().init(apiKey);
+ isInitialized = true;
+}
+
+export async function identify(options, userId) {
+ initialize();
+ // eslint-disable-next-line no-undef
+ const properties = options;
+
+ if (!apiKey) return;
+ if (userId) {
+ await amplitude.setUserId(userId);
+ }
+ if (properties) {
+ await amplitude.getInstance().setUserProperties(properties);
+ } else {
+ await amplitude.getInstance().clearUserProperties();
+ }
+}
+export async function track(event, options) {
+ initialize();
+ const properties = options;
+
+ if (!apiKey) return;
+
+ if (properties) {
+ await amplitude.getInstance().logEvent(event, properties);
+ } else {
+ await amplitude.getInstance().logEvent(event);
+ }
+}
+
+export default {
+ events,
+ initialize,
+ identify,
+ track,
+};
diff --git a/enatega-multivendor-web/src/utils/constantValues.js b/enatega-multivendor-web/src/utils/constantValues.js
new file mode 100644
index 0000000..7c54167
--- /dev/null
+++ b/enatega-multivendor-web/src/utils/constantValues.js
@@ -0,0 +1,8 @@
+
+const ACTIVE_STATUS = ["PENDING", "PICKED", "ACCEPTED", "ASSIGNED"];
+const INACTIVE_STATUS = ["DELIVERED", "COMPLETED", "CANCELLED"];
+const ORDER_STATUS = ["PENDING", "ACCEPTED"];
+const DAYS = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
+
+
+export { ACTIVE_STATUS, INACTIVE_STATUS, ORDER_STATUS, DAYS };
diff --git a/enatega-multivendor-web/src/utils/currencies.js b/enatega-multivendor-web/src/utils/currencies.js
new file mode 100644
index 0000000..8aaa748
--- /dev/null
+++ b/enatega-multivendor-web/src/utils/currencies.js
@@ -0,0 +1,166 @@
+export const stripeCurrencies = [
+ { currency: 'USD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AED', currency_symbol: 'د.إ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AFN', currency_symbol: '؋', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ALL', currency_symbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AMD', currency_symbol: '֏', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ANG', currency_symbol: 'ƒ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AOA', currency_symbol: 'Kz', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ARS', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AUD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AWG', currency_symbol: 'ƒ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'AZN', currency_symbol: '₼', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BAM', currency_symbol: 'BAM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BBD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BDT', currency_symbol: '৳', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BGN', currency_symbol: 'лв', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BIF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'BMD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BND', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BOB', currency_symbol: 'Bs.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BRL', currency_symbol: 'R$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BSD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BWP', currency_symbol: 'P', multiplier: 100, type: 'STRIPE' },
+ { currency: 'BZD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CAD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CDF', currency_symbol: 'Fr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CHF', currency_symbol: 'Fr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CLP', currency_symbol: '$', multiplier: 1, type: 'STRIPE' },
+ { currency: 'CNY', currency_symbol: '¥', multiplier: 100, type: 'STRIPE' },
+ { currency: 'COP', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CRC', currency_symbol: '₡', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CVE', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'CZK', currency_symbol: 'Kč', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DJF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'DKK', currency_symbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DOP', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'DZD', currency_symbol: 'د.ج', multiplier: 100, type: 'STRIPE' },
+ { currency: 'EGP', currency_symbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ETB', currency_symbol: 'Br', multiplier: 100, type: 'STRIPE' },
+ { currency: 'EUR', currency_symbol: '€', multiplier: 100, type: 'STRIPE' },
+ { currency: 'FJD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'FKP', currency_symbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GBP', currency_symbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GEL', currency_symbol: '₾', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GIP', currency_symbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GMD', currency_symbol: 'D', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GNF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'GTQ', currency_symbol: 'Q', multiplier: 100, type: 'STRIPE' },
+ { currency: 'GYD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HKD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HNL', currency_symbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HRK', currency_symbol: 'kn', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HTG', currency_symbol: 'G', multiplier: 100, type: 'STRIPE' },
+ { currency: 'HUF', currency_symbol: 'Ft', multiplier: 100, type: 'STRIPE' },
+ { currency: 'IDR', currency_symbol: 'Rp', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ILS', currency_symbol: 'ع.د', multiplier: 100, type: 'STRIPE' },
+ { currency: 'INR', currency_symbol: '₹', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ISK', currency_symbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'JMD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'JPY', currency_symbol: '¥', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KES', currency_symbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KGS', currency_symbol: 'с', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KHR', currency_symbol: '៛', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KMF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KRW', currency_symbol: '₩', multiplier: 1, type: 'STRIPE' },
+ { currency: 'KYD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'KZT', currency_symbol: '₸', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LAK', currency_symbol: '₭', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LBP', currency_symbol: 'ل.ل', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LKR', currency_symbol: 'Rs', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LRD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'LSL', currency_symbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MAD', currency_symbol: 'د.م.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MDL', currency_symbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MGA', currency_symbol: 'Ar', multiplier: 1, type: 'STRIPE' },
+ { currency: 'MKD', currency_symbol: 'ден', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MMK', currency_symbol: 'Ks', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MNT', currency_symbol: '₮', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MOP', currency_symbol: 'P', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MRO', currency_symbol: 'UM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MUR', currency_symbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MVR', currency_symbol: '.ރ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MWK', currency_symbol: 'MK', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MXN', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MYR', currency_symbol: 'RM', multiplier: 100, type: 'STRIPE' },
+ { currency: 'MZN', currency_symbol: 'MT', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NAD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NGN', currency_symbol: '₦', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NIO', currency_symbol: 'C$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NOK', currency_symbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NPR', currency_symbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'NZD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PAB', currency_symbol: 'B/.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PEN', currency_symbol: 'S/.', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PGK', currency_symbol: 'K', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PHP', currency_symbol: '₱', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PKR', currency_symbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PLN', currency_symbol: 'zł', multiplier: 100, type: 'STRIPE' },
+ { currency: 'PYG', currency_symbol: '₲', multiplier: 1, type: 'STRIPE' },
+ { currency: 'QAR', currency_symbol: 'ر.ق', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RON', currency_symbol: 'lei', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RSD', currency_symbol: 'дин', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RUB', currency_symbol: '₽', multiplier: 100, type: 'STRIPE' },
+ { currency: 'RWF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'SAR', currency_symbol: 'ر.س', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SBD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SCR', currency_symbol: '₨', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SEK', currency_symbol: 'kr', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SGD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SHP', currency_symbol: '£', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SLL', currency_symbol: 'Le', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SOS', currency_symbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SRD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'STD', currency_symbol: 'Db', multiplier: 100, type: 'STRIPE' },
+ { currency: 'SZL', currency_symbol: 'L', multiplier: 100, type: 'STRIPE' },
+ { currency: 'THB', currency_symbol: '฿', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TJS', currency_symbol: 'ЅМ', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TOP', currency_symbol: 'T$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TRY', currency_symbol: '₺', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TTD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TWD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'TZS', currency_symbol: 'Sh', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UAH', currency_symbol: '₴', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UGX', currency_symbol: 'Sh', multiplier: 1, type: 'STRIPE' },
+ { currency: 'UYU', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'UZS', currency_symbol: 'сўм', multiplier: 100, type: 'STRIPE' },
+ { currency: 'VND', currency_symbol: '₫', multiplier: 1, type: 'STRIPE' },
+ { currency: 'VUV', currency_symbol: 'Vt', multiplier: 1, type: 'STRIPE' },
+ { currency: 'WST', currency_symbol: 'T', multiplier: 100, type: 'STRIPE' },
+ { currency: 'XAF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'XCD', currency_symbol: '$', multiplier: 100, type: 'STRIPE' },
+ { currency: 'XOF', currency_symbol: 'Fr', multiplier: 1, type: 'STRIPE' },
+ { currency: 'XPF', currency_symbol: '₣', multiplier: 1, type: 'STRIPE' },
+ { currency: 'YER', currency_symbol: '﷼', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ZAR', currency_symbol: 'Rs', multiplier: 100, type: 'STRIPE' },
+ { currency: 'ZMW', currency_symbol: 'ZK', multiplier: 100, type: 'STRIPE' }
+ ]
+
+ export const paypalCurrencies = [
+ { currency: 'AUD', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'BRL', currency_symbol: 'R$', type: 'PAYPAL' },
+ { currency: 'CAD', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'CZK', currency_symbol: 'Kč', type: 'PAYPAL' },
+ { currency: 'DKK', currency_symbol: 'kr', type: 'PAYPAL' },
+ { currency: 'EUR', currency_symbol: '€', type: 'PAYPAL' },
+ { currency: 'HKD', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'HUF', currency_symbol: 'Ft', type: 'PAYPAL' },
+ { currency: 'INR', currency_symbol: '₹', type: 'PAYPAL' },
+ { currency: 'ILS', currency_symbol: 'ع.د', type: 'PAYPAL' },
+ { currency: 'JPY', currency_symbol: '¥', type: 'PAYPAL' },
+ { currency: 'MYR', currency_symbol: 'RM', type: 'PAYPAL' },
+ { currency: 'MXN', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'TWD', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'NZD', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'NOK', currency_symbol: 'kr', type: 'PAYPAL' },
+ { currency: 'PHP', currency_symbol: '₱', type: 'PAYPAL' },
+ { currency: 'PLN', currency_symbol: 'zł', type: 'PAYPAL' },
+ { currency: 'GBP', currency_symbol: '£', type: 'PAYPAL' },
+ { currency: 'RUB', currency_symbol: '₽', type: 'PAYPAL' },
+ { currency: 'SGD', currency_symbol: '$', type: 'PAYPAL' },
+ { currency: 'SEK', currency_symbol: 'kr', type: 'PAYPAL' },
+ { currency: 'CHF', currency_symbol: 'Fr', type: 'PAYPAL' },
+ { currency: 'THB', currency_symbol: '฿', type: 'PAYPAL' },
+ { currency: 'USD', currency_symbol: '$', type: 'PAYPAL' }
+ ]
+
\ No newline at end of file
diff --git a/enatega-multivendor-web/src/utils/customFunction.js b/enatega-multivendor-web/src/utils/customFunction.js
new file mode 100644
index 0000000..e1020f4
--- /dev/null
+++ b/enatega-multivendor-web/src/utils/customFunction.js
@@ -0,0 +1,42 @@
+function isValidEmailAddress(address) {
+ return !!address.match(/.+@.+/);
+}
+
+const cartItemQuantity = (items) => {
+ return items.map((item) => `${item.quantity}x ${item.title}${
+ item.variation.title ? `(${item.variation.title})` : ""
+ }`).join("\n");
+};
+
+function calculatePrice(food) {
+ var foodPrice = food.variation.price;
+ food.addons.forEach((addons) => {
+ addons.options.forEach((addon) => {
+ foodPrice += addon.price;
+ });
+ });
+ return foodPrice;
+}
+
+function calculateDistance(latS, lonS, latD, lonD)
+{
+ var R = 6371; // km
+ var dLat = toRad(latD-latS);
+ var dLon = toRad(lonD-lonS);
+ var lat1 = toRad(latS);
+ var lat2 = toRad(latD);
+
+ var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
+ Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
+ var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
+ var d = R * c;
+ return d;
+}
+
+// Converts numeric degrees to radians
+function toRad(Value)
+{
+ return Value * Math.PI / 180;
+}
+
+export { isValidEmailAddress, cartItemQuantity, calculatePrice, calculateDistance };
diff --git a/enatega-multivendor-web/src/utils/theme.js b/enatega-multivendor-web/src/utils/theme.js
new file mode 100644
index 0000000..2be7805
--- /dev/null
+++ b/enatega-multivendor-web/src/utils/theme.js
@@ -0,0 +1,269 @@
+import { blue } from "@mui/material/colors";
+import { createTheme } from "@mui/material/styles";
+
+const theme = createTheme({
+ breakpoints: {
+ keys: ["xs", "sm", "md", "lg", "xl"],
+ values: { xs: 0, sm: 600, md: 900, lg: 1200, xl: 1400 },
+ },
+ overrides: {
+ MuiPickersToolbar: {
+ toolbar: {
+ backgroundColor: blue.A200,
+ },
+ },
+ MuiPickersCalendarHeader: {
+ switchHeader: {
+ // backgroundColor: blue.A200,
+ // color: "white",
+ },
+ },
+ MuiPickersDay: {
+ day: {
+ color: blue.A700,
+ },
+ daySelected: {
+ backgroundColor: blue["400"],
+ },
+ dayDisabled: {
+ color: blue["100"],
+ },
+ current: {
+ color: blue["900"],
+ },
+ },
+ MuiPickersModal: {
+ dialogAction: {
+ color: blue["400"],
+ },
+ },
+ },
+ typography: {
+ fontFamily: ["Poppins", "Open Sans", "sans-serif"].join(),
+ htmlFontSize: 16,
+ fontSize: 14,
+ fontWeightLight: 300,
+ fontWeightRegular: 400,
+ fontWeightMedium: 500,
+ fontWeightBold: 700,
+ fontWeightBolder: 800,
+ h1: {
+ fontWeight: 300,
+ fontSize: "6rem",
+ lineHeight: 1.167,
+ letterSpacing: "-0.01562em",
+ },
+ h2: {
+ fontWeight: 300,
+ fontSize: "3.75rem",
+ lineHeight: 1.2,
+ letterSpacing: "-0.00833em",
+ },
+ h3: {
+ fontWeight: 400,
+ fontSize: "3rem",
+ lineHeight: 1.167,
+ letterSpacing: "0em",
+ },
+ h4: {
+ fontWeight: 400,
+ fontSize: "2.125rem",
+ lineHeight: 1.235,
+ letterSpacing: "0.00735em",
+ },
+ h5: {
+ fontWeight: 400,
+ fontSize: "1.5rem",
+ lineHeight: 1.334,
+ letterSpacing: "0em",
+ },
+ h6: {
+ fontWeight: 500,
+ fontSize: "1.25rem",
+ lineHeight: 1.6,
+ letterSpacing: "0.0075em",
+ },
+ subtitle1: {
+ fontWeight: 400,
+ fontSize: "1rem",
+ lineHeight: 1.75,
+ letterSpacing: "0.00938em",
+ },
+ subtitle2: {
+ fontWeight: 500,
+ fontSize: "0.875rem",
+ lineHeight: 1.57,
+ letterSpacing: "0.00714em",
+ },
+ body1: {
+ fontWeight: 400,
+ fontSize: "1rem",
+ lineHeight: 1.5,
+ letterSpacing: "0.00938em",
+ },
+ body2: {
+ fontWeight: 400,
+ fontSize: "1rem",
+ lineHeight: 1.5,
+ letterSpacing: "0.00938em",
+ },
+ button: {
+ fontWeight: 500,
+ fontSize: "0.875rem",
+ lineHeight: 1.75,
+ letterSpacing: "0.02857em",
+ textTransform: "uppercase",
+ },
+ caption: {
+ fontWeight: 400,
+ fontSize: "0.75rem",
+ lineHeight: 1.66,
+ letterSpacing: "0.03333em",
+ },
+ overline: {
+ fontWeight: 400,
+ fontSize: "0.75rem",
+ lineHeight: 2.66,
+ letterSpacing: "0.08333em",
+ textTransform: "uppercase",
+ },
+ shape: {
+ borderRadius: 4,
+ },
+ zIndex: {
+ mobileStepper: 1000,
+ speedDial: 1050,
+ appBar: 1100,
+ drawer: 1200,
+ modal: 1300,
+ snackbar: 1400,
+ tooltip: 1500,
+ },
+ },
+ palette: {
+ mode: "light",
+ common: {
+ black: "#000",
+ blackShade: "#0000008c",
+ lightBlack: "#00000040",
+ darkBlack: "#0000005e",
+ white: "#fff",
+ whiteShade: "#E5EDEF",
+ },
+ primary: {
+ main: "#90EA93",
+ light: "#fff",
+ lightest: "#cfcfcf",
+ dark: "#F4F4F4",
+ darkest: "#C4C4C4",
+ contrastText: "#fff",
+ },
+ secondary: {
+ main: "#FAFAFA",
+ light: "#333333",
+ lightest: "#2d6734",
+ dark: "#949393",
+ darkest: "#959191",
+ contrastText: "#fff",
+ },
+ success: {
+ main: "#1DB20D",
+ light: "#6FCF97",
+ lightest: "#f1f1f1",
+ dark: "#F0F0F0",
+ darkest: "#E6EBEE",
+ contrastText: "#fff",
+ },
+ info: {
+ main: "rgba(39,111,191,0.8)",
+ light: "#E1E5E8",
+ lightest: "#CED8DA",
+ dark: "#CDD7D8",
+ darkest: " #FCFCFD",
+ contrastText: "#fff",
+ },
+ error: {
+ main: "#fe0000",
+ light: "#F1F3F3",
+ lightest: "#EBEBEB",
+ dark: "#131313",
+ darkest: "#C2C2C2",
+ contrastText: "#fff",
+ },
+ warning: {
+ main: "#FA7751",
+ light: "#FCC54C",
+ lightest: "#F7F7F7",
+ dark: "#DCDCDC",
+ darkest: "#888",
+ contrastText: "#fff",
+ },
+ button: {
+ main: "#3C8F7C",
+ light: "#0070ba",
+ lightest: "#8EE590",
+ dark: "#EFF4F7",
+ darkest: "#FBE7EF",
+ contrastText: "#fff",
+ },
+ shades: {
+ main: "#EDF1F2",
+ light: "#f0f0fd",
+ lightest: "#DFEAF6",
+ dark: "#BED3EB",
+ darkest: "#93B7DF",
+ contrastText: "#5D93CF",
+ },
+ shadows: {
+ main: "#FDE5EF",
+ light: "#1D3655",
+ lightest: "#1E3656",
+ dark: "#9D9D9D",
+ darkest: "#276FBF",
+ contrastText: "#178",
+ },
+ borders: {
+ main: "#FF5F00",
+ light: "#F79E1B",
+ lightest: "#222D65",
+ dark: "#EB001B",
+ darkest: "#253B80",
+ contrastText: "#179BD7",
+ },
+ grey: {
+ 50: "#fafafa",
+ 100: "#f5f5f5",
+ 200: "#eeeeee",
+ 300: "#e0e0e0",
+ 400: "#bdbdbd",
+ 500: "#9e9e9e",
+ 600: "#757575",
+ 700: "#616161",
+ 800: "#424242",
+ 900: "#212121",
+ A100: "#d5d5d5",
+ A200: "#aaaaaa",
+ A400: "#303030",
+ A700: "#616161",
+ },
+ contrastThreshold: 3,
+ tonalOffset: 0.2,
+ text: {
+ primary: "#fff",
+ secondary: "#212121",
+ success: "#D5146D",
+ disabled: "#5A5858",
+ hint: "#FFF",
+ },
+ divider: "rgba(0, 0, 0, 0.12)",
+ background: {
+ primary: "#153759",
+ secondary: "#5C92CE",
+ success: "#90B4DC",
+ paper: "#FAFAFA",
+ default: "#fff",
+ },
+ },
+});
+
+export default theme;